王爽汇编实验五
assume cs:codea segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
d segment
db 0,0,0,0,0,0,0,0
d ends
code segment
start: mov ax,a
mov ds,ax
mov ax,b
mov es,ax
mov bx,0
mov cx,7
s: mov dl,ds:
add es:,dl
inc bx
loop s
mov bx,0
mov ax,d
mov ds,ax
mov cx,7
s0: mov dx,es:
mov ,dx
inc bx
loop s0
mov ax,4c00H
int 21H
code ends
end start
把代码中
s: mov dl,ds:
add es:,dl
改成
s: mov dx,ds:
add es:,dx
结果就完全不同了,为什么???
把代码中
s: mov dl,ds:
add es:,dl
改成
s: mov dx,ds:
add es:,dx
dl是dx寄存器的一部分 。dx是16位寄存器 为了向下兼容
就有了dhdl两个八位寄存器。
因此adddl 和 add dx是不一样的 ,一个操作的是字节 另一个操作是双字节。
这个问题你没弄清楚其实可以倒回去看看四章那里重点讲的是单元的操作你可以看看 开始我也不是很明白 kklloo 发表于 2013-11-13 22:42 static/image/common/back.gif
这个问题你没弄清楚其实可以倒回去看看四章那里重点讲的是单元的操作你可以看看 开始我也不是很明白
谢谢........... 狼性刀锋 发表于 2013-11-12 22:33 static/image/common/back.gif
把代码中
s: mov dl,ds:
add es:,dl
谢谢....................
页:
[1]