汇编串转移指令的问题
assume cs:codedata 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:44 编辑
mov ax,data
mov ds,ax
mov es,ax
这 3 句的意思是,ds = es = ax,就是说,ds 和 es 使用的是同一个段,二者没有差别。于是,ds 有 2 行,es 也就有 2 行了。
跟踪的时候注意观察一下,有 2 行的时候,ds 和 es 的值是否存在差别? jackz007 发表于 2019-3-24 14:41
这 3 句的意思是,ds = es = ax,就是说,ds 和 es 使用的是同一个段,二者没有差别。于是,ds 有...
哦哦哦我懂了,我忽略了他们使用的是同一个段;谢谢大佬
页:
[1]