小广哥 发表于 2011-4-18 15:33:23

第七章,问题7.2的一个简单的小疑惑

本帖最后由 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,
         mov ,ax
         add si,2
         add di,2
         loop s

         mov ax,4c00h
         int 21h
codesg ends
end start关于为什么循环八次的问题(我觉得十六次)。。。老师给出的解释是因为DI和SI只能做16位寄存器不能拆成两个八位寄存器使用。不懂啊,换句话说,就是我把“s:mov ax,"换成"s:mov al,"循环十六次不行吗?这和十六位寄存器能不能分成八位的寄存器有神马关系啊。。。我好笨。。

小广哥 发表于 2011-4-18 21:17:13

版主。。。。我懂啦!版主。。。我懂啦
页: [1]
查看完整版本: 第七章,问题7.2的一个简单的小疑惑