汇编器指令及命名规则(1)

SHORT

 在一条直接转移指令(如JMP POINT_A)中,汇编器只能采用2字节格式或3字节格式。所谓2字节格式就是第一个字节是操作码;第二个字节是一个带符号数的偏移量,当执行完JMP指令后,IP将会加上该偏移量并指向下一条指令。这个偏移量可以在-128~+127的范围内变动。负数表示向后JMP,正数表示向前JMP。所谓3字节格式就是第一个字节是操作码;后两个字节是带符号数的偏移量,这个偏移量可以在-32768~+32767的范围内变动。当编译一个程序时,汇编器将运行两次。第一次运行完一些给定的任务,剩下的任务在第二次运行过程中完成。在第一次运行过程中,汇编器采用3字节的JMP指令。当第一次运行完后,将找出目标地址并在第二个运行过程中写入。如果目标地址指示一个短转移(少于128字节的距离),那么它的最后一个字节将被置为NOP。此时通过SHORT指令可以告诉汇编器目标地址与当前地址相隔不到128个字节。使用SHORT指令表示JMP是一个2字节指令,而不是一个有1字节为NOP码的3字节指令。2字节的JMP指令需要的存储区少1个字节,而且运行速度更快。


当我在学习无条件跳转的时候,我读到:“在指令中添加伪指令“short”使得汇编之后的指令由2个字节组成,而不是3个字节,这样便提高了指令的效率”我很疑惑为什么从三个字节变成两个字节,所以查了以上的资料。做了这个笔记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值