汇编语言转移的目的地址在指令中的call指令

"call far pt 标号”实现的是段间转移。

(1) (sp) = (sp) - 2
    ((ss) * 16 + (sp) = (CS)
    (sp) = (sp) - 2
    ((ss) * 16 + (sp) ) = (IP)
 
(2) (CS) - 标号所在段的段地址
    (IP) - 标号在段中的偏移地址

从上面的描述中可以看出,如果我们用汇编语法来解释此种格式的call指令,则:
CPU执行 “call far ptr 标号” 时,相当于进行:

push
push IP
jmp far ptr 标号

检测
下面的程序执行后,ax中的数值为多少?

内存地址          机器码               汇编指令                    
1000:  0          b8 00 00            mov ax,0                           
1000:  3          9A 09 00 00 10      call far ptr s                           
1000:  8          40                  inc ax            
1000:  9          58                  s:p0p    
                                      add ax,ax
                                      pop bx
                                      add ax,bx

执行后ax的数值为1010h


发布日期:

所属分类: 编程 标签:  


没有相关文章!