?: 发表于 2019-3-24 14:07:48

汇编串转移指令的问题

assume cs:code
data segment
        db 'Welcome to masm!'
        db 16 dup (0)
data ends

code segment
   start:
                mov ax,data
                mov ds,ax
                mov es,ax
                mov si,0
                mov di,16
                mov cx,16
               
                cld
                rep movsb
                mov ax,4c00h
                int 21h
code ends
end start

按照我的理解不应该是ds中有一行welcome,es有2行;但是结果是ds也有2行,不清楚为什么,还有为什么要mov es,ax,题目要求是将ds的第一行welcome复制到下一行。

jackz007 发表于 2019-3-24 14:41:44

本帖最后由 jackz007 于 2019-3-24 14:44 编辑

                mov ax,data
                mov ds,ax
                mov es,ax
      这 3 句的意思是,ds = es = ax,就是说,ds 和 es 使用的是同一个段,二者没有差别。于是,ds 有 2 行,es 也就有 2 行了。
      跟踪的时候注意观察一下,有 2 行的时候,ds 和 es 的值是否存在差别?

?: 发表于 2019-3-24 15:06:52

jackz007 发表于 2019-3-24 14:41
这 3 句的意思是,ds = es = ax,就是说,ds 和 es 使用的是同一个段,二者没有差别。于是,ds 有...

哦哦哦我懂了,我忽略了他们使用的是同一个段;谢谢大佬
页: [1]
查看完整版本: 汇编串转移指令的问题