电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

反汇编语言常用指令

33页
  • 卖家[上传人]:桔****
  • 文档编号:495709601
  • 上传时间:2023-05-18
  • 文档格式:DOCX
  • 文档大小:34.20KB
  • / 33 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、内容目录计算机寄存器分类简介 计算机寄存器常用指令一、常用指令二、算术运算指令三、逻辑运算指令四、串指令五、程序跳转指令计算机寄存器分类简介:32 位 CPU 所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6 个段寄存器(ES、CS、SS、DS、FS 和 GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。4个16位寄存器又可分割成8个独立的8位寄存器(AX: AH-AL、BX: BH-BL、CX: CH-CL、DX: DH-DL),每个寄存器都有自己的名称,可独立 存取。程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/ 字节的信息。寄存器EAX通常称为累加器(

      2、Accumulator),用累加器进行的操作可能需要更少时间。可用于乘、 除、输入/输出等操作,使用频率很高;寄存器EBX称为基地址寄存器(Base Regis ter)。它可作为存储器指针 来使用;寄存器ECX称为计数寄存器(Count Regis ter)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多 位时,要用 CL 来指明移位的位数;寄存器EDX称为数据寄存器(Da ta Regis ter)。在进行乘、除运算时, 它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。 在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来存放存 储单元的地址,在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、 暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器,所以,这些32位寄存器更具有通用性。2、变址寄存器32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响 高 16 位的数据。寄存器ESI、EDI、SI和DI称为变址寄存器(Index Regis ter)

      3、,它们主 要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问 存储单元提供方便。变址寄存器不可分割成8 位寄存器。作为通用寄存器,也可存储算术逻 辑运算的操作数和运算结果。它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对 它们有特定的要求,而且还具有特殊的功能。3、指针寄存器其低16位对应先前CPU中的BP和SP,对低16位数据的存取,不影响 高16位的数据。32位CPU有2个32位通用寄存器EBP和ESP。它们主要用于访问堆栈内的存储单元,并且规定:EBP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据;ESP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。寄存器EBP、ESP、BP和SP称为指针寄存器(Poin ter Regis ter),主要 用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问 存储单元提供方便。指针寄存器不可分割成8 位寄存器。作为通用寄存器,也可存储算术逻 辑运算的操作数和运算结果。4、段寄存器段寄存器是根据内存分段

      4、的管理模式而设置的。内存单元的物理地址由 段寄存器的值和一个偏移量组合而成 的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存 地址。CPU 内部的段寄存器:ECS代码段寄存器(Code Segment Regis ter),其值为代码段的段值;EDS数据段寄存器(Da ta Segment Regis ter),其值为数据段的段值;EES附加段寄存器(Ex tra Segmen t Regis ter),其值为附加数据段的段值;ESS堆栈段寄存器(St ack Segme nt Regis ter),其值为堆栈段的段值;EFS附加段寄存器(Ex tra Segmen t Regis ter),其值为附加数据段的段值;EGS附加段寄存器(Ex tra Segmen t Regis ter),其值为附加数据段的段值。在16位CPU系统中,它只有4个段寄存器,所以,程序在任何时刻至 多有 4个正在使用的段可直接访问;在32位 微机系统中,它有6个段寄存器,所以,在此环境下开发的程序最多可 同时访问6个段。32位CPU有两个不同的工作方式:实方式和保护方式。在每种方式下, 段寄存

      5、器的作用是不同的。有关规定简单描述如下:实方式:前4个段寄存器CS、DS、ES和SS与先前CPU中的所对应的 段寄存器的含义完全一致,内存单元的逻辑 地址仍为“段值:偏移量”的形式。为访问某内存段内的数据,必须使 用该段寄存器和存储单元的偏移量。保护方式: 在此方式下,情况要复杂得多,装入段寄存器的不再是段 值,而是称为“选择子”(Selector)的某个值。5、指令指针寄存器32位CPU把指令指针扩展到32位,并记作EIP, EIP的低16位与先前 CPU中的IP作用相同。指令指针EIP、IP(InstruetionPointer)是存放下次将要执行的指令在 代码段的偏移量。在具有预取指令功能的系统中,下次要执行的指令通常已被预取到指令 队列中,除非发生转移情况。所以,在理解它们的功能时,不考虑存在指令队列的情况。6、标志寄存器一、运算结果标志位1 、进位标志 CF(Carry Flag)进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的 最高位产生了一个进位或借位,那么,其值为 1 ,否则其值为 0。 使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比 较

      6、运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。2、奇偶标志 PF(Parity Flag)奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的 个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中, 为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位。3、辅助进位标志 AF(Auxiliary Carry Flag)在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:(1) 、在字操作时,发生低字节向高字节进位或借位时;(2) 、在字节操作时,发生低4 位向高 4 位进位或借位时。对以上6个运算结果标志位,在一般编程情况下,标志位CF、ZF、SF 和OF的使用频率较高,而标志位PF和AF的使用频率较低。4、零标志 ZF(Zero Flag)零标志 ZF 用来反映运算结果是否为 0。如果运算结果为 0,则其值为 1, 否则其值为 0。在判断运算结果是否为 0 时,可使用此标志位。5、符号标志 SF(Sign Flag)符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。 在微机

      7、系统中,有符号数采用码表示法,所以,SF也就反映运算结果的 正负号。运算结果为正数时,SF的值为0,否则其值为1。6、溢出标志 OF(Overflow Flag)溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算 结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1, 则,OF的值被清为0。“溢出”和“进位”是两个不同含义的概念,不要混淆。如果不太清楚的话,请查阅计算机组成原理课程中的有关章节。二、状态控制标志位状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。1、追踪标志 TF(Trap Flag)当追踪标志 TF 被置为 1 时, CPU 进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试。指令系统中没有专门的指令来改变标志位TF的值,但程序员可用其它办法来改变其值。2、中断允许标志 IF(Interrupt-enable Flag)中断允许标志IF是用来决定CPU是否响应CPU外部的可屏蔽中断发出 的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出 的中断请求,以及CP

      8、U内部产生的中断请求。具体规定如下:(1) 、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;(2) 、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。CPU的指令系统中也有专门的指令来改变标志位IF的值。3、方向标志 DF(Direction Flag)方向标志DF用来决定在串操作指令执行时有关指针寄存器发生调整的 方向。具体规定在第5.2.11 节字符串操作指令中给出。 在微机的指令系统中,还提供了专门的指令来改变标志位DF的值。三、32 位标志寄存器增加的标志位1、I/O 特权标志 IOPL(I/O Privilege Level)I/O特权标志用两位二进制位来表示,也称为I/O特权级字段。该字段 指定了要求执行I/O指令的特权级。如果当前的特权级别在数值上小于等于IOPL的值,那么,该I/O指令可执行,否则将发生一个保护异常。2、嵌套任务标志 NT(Nested Task)嵌套任务标志NT用来控制中断返回指令IRET的执行。具体规定如下:(1) 、当NT=0,用堆栈中保存的值恢复EFLAGS、CS和EIP,执行常规的 中断返回操作;(2) 、当

      9、NT=1,通过任务转换实现中断返回。3、重启动标志 RF(Restart Flag)重启动标志RF用来控制是否接受调试故障。规定:RF=0时,表示“接 受”调试故障,否则拒绝之。在成功执行完一条指令后,处理机把RF置为0,当接受到一个非调试故 障时,处理机就把它置为 1。4、虚拟 8086 方式标志 VM(Virtual 8086 Mode) 如果该标志的值为1,则表示处理机处于虚拟的8086方式下的工作状 态,否则,处理机处于一般保护方式下的工作状态。计算机寄存器常用指令 一、常用指令1. 通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把 AX,CX,DX,BX,SP,BP,SI,DI 依次压入堆栈.POPA 把 DI,SI,BP,SP,BX,DX,CX,AX 依次弹出堆栈.PUSHAD 把 EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI 依次压入堆栈.POPAD 把 EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX 依次弹出堆栈.BSWAP 交换32 位寄存器里字节的顺序XCHG 交换字或字节.( 至少有一个操作数为寄存器, 段寄存器不可作为 操作数)CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )XADD 先交换再累加.( 结果在第一个操作数里 )XLAT 字节查表转换.BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255, 即0-FFH); 返回 AL 为查表结果.

      《反汇编语言常用指令》由会员桔****分享,可在线阅读,更多相关《反汇编语言常用指令》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.