控制转移指令

这通信工程用的教材真垃圾,很多重要的东西一笔带过,什么玩意儿啊,这里面和伪指令有关的内容下一篇文章再叙述。
我翻遍了整本书关于call指令,它只有不到一页的内容!那么重要的指令CALL和RET,是C语言函数调用的根本,但这两条指令加起来只用了一页就讲完了。
当然这也不奇怪,毕竟所有的寄存器介绍和指令介绍,只有100页。人家王爽老师的《汇编语言》可是写了一本书啊。

功能:改变程序执行顺序(改变IP和CS)。
执行顺序由代码段寄存器和指令指针IP的内容确定,CS和IP结合起来,给出下一条指令在存储器中的位置。

对于转移指令:

  • 转移指令的实质:改变IP(或CS)的内容。
  • 所有转移指令不会影响标志位。
  • 分为无条件转移和条件转移两种。

过程调用和返回指令:

过程(子程序):一段具有特定功能的,供其它程序调用的公用程序。

  • 调用子程序时,IP(CS)的内容被压入堆栈栈顶。从子程序返回时,栈顶的内容又被弹出到IP(CS)。
  • 子程序执行结束后一般都要返回调用程序。
  • 一次定义,多次调用。
  • 可带参数调用(提前放到栈或寄存器中)。

段内:只会改变IP
段间:CS和IP都变
直接:地址由#imm给出
间接:地址由reg或mem给出

无条件转移指令

JMP

  • 段内直接转移: JMP #imm(8/16)
    指令中直接给出的8/16位的偏移量加到IPCS保持不变。
JMP SHORT #imm8      ; 段内直接短转移
; IP = IP + imm(8)
JMP #imm16            ; 段内直接近转移
JMP NEAR PTR #imm16   ; 
; IP 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值