汇编的bt指令

栏目: 编程语言 · 发布时间: 7年前

内容简介:通过学习

通过学习 bt 指令,熟悉 gdb 的使用,和汇编指令的分析方法。

汇编的bt指令

汇编的bt指令

bt 指令从你指定的bit位置,把值拷贝到 carry flag 。那些flags,和各种跳转的指令有关,所以就实现了「判断-跳转」。跟carry flag有关的指令是各种jump指令:

汇编的bt指令

主要是这几个根据条件跳转的指令,都会根据carry flag的值来判断是否跳转。关于flag寄存器的说明:

汇编的bt指令

撰写测试代码:

汇编的bt指令

上面两行 bt 指令,一个会设置 carry flag ,一个会清空 carry flag 。因为对应的 eax 寄存器的值分别是 10 。实际编译和运行代码试试看,设置断点并执行:

汇编的bt指令

接下来的两行 bt 指令,可以看到 carry flag 拷贝了所指定的bit的值:

汇编的bt指令

汇编的bt指令

eflags 寄存器,里面每一个bit保存一个状态,都是有特殊含义的:

汇编的bt指令

因为cflag是eflags积存器的第一位,所以cf的设置或消除就是加减 1 。cpu就是拿这些状态做各种各样的条件判断。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ActionScript 3.0 Cookbook

ActionScript 3.0 Cookbook

Joey Lott、Darron Schall、Keith Peters / Adobe Dev Library / 2006-10-11 / GBP 28.50

Well before Ajax and Microsoft's Windows Presentation Foundation hit the scene, Macromedia offered the first method for building web pages with the responsiveness and functionality of desktop programs......一起来看看 《ActionScript 3.0 Cookbook》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试