汇编指令的 疑惑 JMP 指令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编指令的 疑惑 JMP 指令相关的知识,希望对你有一定的参考价值。
ORG 100H
VAR1 DB 12H
VAR2 DB VAR1 - $ +1001H
VAR3 DD VAR2
假设(DS) = 1234H , (BX) = 1000H , (SI) = 0002H
下列 指令 执行 后 , CS,IP的 值 ?
JMP DWORD PTR VAR3 - 1
ORG 100H
VAR1 DB 12H
VAR2 DB VAR1 - $ +1001H ;100H-101H+1001H=1000H
因为VAR2定义为字节变量,所以,VAR2存储单元保存的是1000H的低字节值,即00H。
VAR3 DD VAR2 ;VAR2的地址值是101H,所以,VAR3存储单元的低位字是101H;高位字存放的是当前数据段段值。假设(DS) = 1234H,VAR3存储单元的值是:01H 01H 34H 12H。
VAR3-1=102H-1=101H,DWORD PTR VAR3-1存储单元,即101H所指的双字单元的值是:00H 01H 01H 34H
JMP DWORD PTR VAR3-1执行后,就是无条件跳转到DWORD PTR VAR3-1双字存储单元所指定的地址,即:00H 01H 01H 34H。所以,JMP DWORD PTR VAR3-1执行后,CS=3401H,IP=0100H 参考技术A 无异议!
汇编指令学习(CALL,JMP,RET)
一、JMP指令
无条件跳转,直接跳转到后面跟着的参数地址
jmp 0x0046B995

二、CALL指令
函数指令,可以理解为一个函数,当走到call指令的时候,按一下回车键,就可以看到call里面的内容,即函数内容,如果里面还有calll,说明函数里面套函数。

按回车后,跳转到call后面跟着的参数地址,此时,和jmp指令功能相同

实际运行的时候,首先保存了call下面的地址,到堆栈,然后call里面的语句执行完毕后,ret会返回到call下面的地址
我们按F7进入call,堆栈保存了call下面的地址,46B984,


三、RET指令
当执行到ret命令的时候,会返回到call下面的代码处
以上是关于汇编指令的 疑惑 JMP 指令的主要内容,如果未能解决你的问题,请参考以下文章