x86汇编--(六)一些指令的小结

本文总结了x86汇编中的几种跳转指令,包括jmp near ptr、jmp short、loop、ret、retf、call及call far ptr的使用方式和执行流程,详细解释了它们如何改变程序的执行路径,特别是涉及内存地址和栈操作的部分。
摘要由CSDN通过智能技术生成

offset 取得标号出的地址


jmp short 标号
对应机器指令没有包括目的地址,而是通过记录当前jmp指令结束位置到指定跳转位置的偏移地址,在编译程序的时候被算出
转移短指令:8位偏移最多向前跳转128,向后跳转127
jmp near ptr 标号
16位偏移
jmp far ptr 标号
对应指令包括了目的地址,
jmp word ptr 地址 内存单元地址 段内跳转
jmp dword ptr 地址 段间跳转,高16为表示段地址,低16位表示偏移地址

jcxz 有条件跳转指令 为短转移
cx=0的时候才进行跳转

loop 有条件跳转指令 为短转移
cx存放循环的次数


以下指令都是只涉及到位移,提高了程序的复用
如果超出跳转的最大限制,就会报错 jump destination too far by 1 byte(s)
jmp short 标号

jmp near ptr 标号

以下的程序说明了jmp short的执行方式

assume cs:codesg
codesg segment
	mov ax,4c00h
	int 21h
	
start:	mov ax,0
	s:	nop	;s2那边的指令拷贝到这里的时候,jmp s1编译后就变成了EBF6 跳到它前面10个字节处,到了程序开头 mov ax,4cooh那边
		nop
		
		mov di,offset s
		mov si,offset s2
		mov ax,cs:[si]
		mov cs:[di],ax
		
	s0:	jmp short s
	s1: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值