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