马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 loop 于 2011-4-20 01:33 编辑
问题7.2。关于寄存器DI和SI
用寄存器SI和DI实现将字符串‘welcome to masm!’复制到它后面的数据区中。assume cs:codesg,ds:datasg
datasg segment
db 'welcome to masm!'
db '................'
datasg ends
codesg segment
start: mov ax,datasg
mov ds,ax
mov si,0
mov di,16
mov cx,8
s: mov ax,[si]
mov [di],ax
add si,2
add di,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
关于为什么循环八次的问题(我觉得十六次)。。。老师给出的解释是因为DI和SI只能做16位寄存器不能拆成两个八位寄存器使用。不懂啊,换句话说,就是我把“s:mov ax,[si]"换成"s:mov al,[si]"循环十六次不行吗?这和十六位寄存器能不能分成八位的寄存器有神马关系啊。。。我好笨。。 |