空陌 发表于 2013-5-31 21:06:48

转移地址在内存中的call指令

在10.6中,例题:
mov sp,10h
mov ax,0123h
mov ds:,ax
mov word ptr ds:,0
call dword ptr ds:
书中说:执行后,(CS)=0,(IP)=0123H,(SP)=0CH
这说明转移地址为内存单元地址时,转移的目的地址是内存单元中的内容,即(ds:)=0123h,(ds:)=0

可是在检测点10.5中,
assume cs:codestack segment   dw 8 dup (0)stack endscode segmentstart:   mov ax,stack   mov ss,ax   mov sp,16   mov ds,ax   mov ax,0   call word ptr ds:   inc ax   inc ax   inc ax   mov ax,4c00h   int 21hcode endsend start call word ptr ds:,根据答案的意思,应该是转移的目的地址直接就是call后所显示的内存地址。这样就很矛盾了啊,谁能给解释哈?

空陌 发表于 2013-5-31 21:14:23

原来已经有人问过这个问题了,在他们的帮助下弄明白了,以后发帖得先搜搜以解决

bafengao 发表于 2013-6-1 06:24:23

无回帖,不论坛,这才是人道。
页: [1]
查看完整版本: 转移地址在内存中的call指令