比滑盯如C语言程序:
s=0
for (int i=0i<10++i)
{
s+=i
}
可能会编译为等效如下汇编代码的指令:
mov eax,0
mov ebx,0
loop1:
cmp ebx,10
jge out
add eax,ebx
add ebx,1
jmp loop1
out:
mov s,eax
这里jmp就和jge配嫌让态合使用
JMP指令包括桥皮相对转移和绝对跳转。
1.绝对转移是直接跳转到内存地址 。相对跳转是跳转到X字节后的位置在计算时候跳转指令和目的地址的数据都不计算在内。
2.日本主要港口相关搜索无条件转移指令包括JMP、子程序的调用和返回指令、中断的调用和返回指令等。下面只介绍无条件转移指令JMP指令的一般形式。
3.JMP是汇编语言中的无条件跳转指令。无告液条件跳转指令可转到内存中任何程序段。转移地址可在指令中给出,也可以在寄存器中给出,或在储存器中指出。
4.以便能正确地生成目的地址,在段内转移时,袜消物指令只要能提供目的地址的段内偏移量即够了。而在段间转移时,指令应能提供目的地址的段地址及段内偏移地址值。
无条件转移指令JMP格式: JMP OPRD
功能: JMP指令将睁迅搭无条件地控制程序转移到目的地址去执行.当目的地址仍在同一个代码段内,称为段内转移当目标地址不在同一个代码段内,则称为段间转移.这两种昌携情况都将产生不同的指令代码,以便能正确地生成目的地址,在 段内转移时,指令只要能提供目的地址的段 内偏移量即够了而在段间转移时,指令应能提供目的地址的段地址及段内偏移地址值.
说明:
1. 其中OPRD为转移的目的地址.程序转移到目的地址所指向的指令继续往下执行.
2. 本组指令对标志位无影响.
3. <1>段内直接转移指令: JMP NEAR 标号
<2>段内间接转移指令: JMP OPRD
<3>段间直接转移指令: JMP FAR 标号
<4>段间间接悉拿转移指令:JMP OPRD其中的OPRD为存储器双字 *** 作数.段间间接转移只能通过存储器 *** 作数来实现.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)