(1)
assume cs:codesgcodesg segmentmov ax, 0mov ds, axmov bx, 200H ;ds:bx数据区mov cx, 40hmov dl, 0
s: mov ds:[bx], dl ;dl中间变量inc bxinc dlloop smov ax, 4c00h
int 21hcodesg ends
end
实验结果:
(2)
考虑(1)代码中哪里可以精简?
0:200~0:23F,其实就是绝对地址[200~23F],也可以解释为[20:0~20:3F],这样的话代码可以精简为:
assume cs:codesgcodesg segmentmov ax, 20hmov ds, axmov bx, 0 ;ds:bx数据区mov cx, 40h
s: mov ds:[bx], bx ;dl中间变量inc bxloop smov ax, 4c00h
int 21hcodesg ends
end
(3)
assume cs:code
assume cs:codecode segmentsStart: mov ax, csmov ds, ax ;ds:bxmov ax, 0020hmov es, axmov bx, 0 ;es:bxmov cx, offset sEnd - offset sStart
s: mov al, [bx]mov es:[bx], alinc bxloop ssEnd: mov ax, 4c00hint 21hcode ends
end sStart
实验结果: