有两种形式:
1.call word ptr 内存单元地址
执行这种形式时,相当于先进行 push IP,再执行jmp word ptr 内存单元地址,就是这种情况下,执行call word命令时,内存单元中的内容 仅 影响 IP 中的值(我是这样理解的)。
2.call dword ptr 内存单元地址
执行这种形式时,相当于先进行 push cs ,push IP,再执行jmp dword ptr 内存单元地址,看例:
mov sp,10h
mov ax,0123h
mov ds:[0],ax
mov word ptr ds:[2],0
call dword ptr ds:[0]
书上说,call dword ptr ds:[0]执行后,(CS)=0,(IP)=0123H,(SP)=0CH
我想知道:为何(CS)不等于0123H而等0 ? (IP)不等于0而等0123H ?
或者说默认情况下,高位内存的地址内容就改变CS中的内容,低位内存的地址内容就改变IP中的内容? |