; 转移地址在内存中的call指令
;转移地址在内存中的call指令有两种格式
;(1)call word ptr 内存单元地址
;用汇编语法来解释此种格式的call指令,则
; cpu 执行"call word ptr 内存单元地址"时,相当于进行:
;push IP
;jmp word ptr 内存单元地址
;
;eg
assume cs :code
code segment
mov sp 10h
mov ax,0123h
mov ds:[0],ax
call word ptr ds:[0]
code ends
end
;执行后(IP)=0123h ,(sp )=0Eh
(2)call dword ptr 内存单元地址
用汇编语法来解释此种格式的call指令,则
cpu执行“call dword ptr 内存单元" 时,相当于
push cs
push IP
jmp dword ptr 内存单元
eg
mov sp,10h
mov ax,0123h
mov ds:[0],ax
mov word ptr ds:[2],0
call dword ptr ds:[0]
执行后?
(cs)=0 ,
(IP)=0123h,
(sp)=0ch
;转移地址在内存中的call指令有两种格式
;(1)call word ptr 内存单元地址
;用汇编语法来解释此种格式的call指令,则
; cpu 执行"call word ptr 内存单元地址"时,相当于进行:
;push IP
;jmp word ptr 内存单元地址
;
;eg
assume cs :code
code segment
mov sp 10h
mov ax,0123h
mov ds:[0],ax
call word ptr ds:[0]
code ends
end
;执行后(IP)=0123h ,(sp )=0Eh
(2)call dword ptr 内存单元地址
用汇编语法来解释此种格式的call指令,则
cpu执行“call dword ptr 内存单元" 时,相当于
push cs
push IP
jmp dword ptr 内存单元
eg
mov sp,10h
mov ax,0123h
mov ds:[0],ax
mov word ptr ds:[2],0
call dword ptr ds:[0]
执行后?
(cs)=0 ,
(IP)=0123h,
(sp)=0ch