|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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]"循环十六次不行吗?这和十六位寄存器能不能分成八位的寄存器有神马关系啊。。。我好笨。。 |
|