16位汇编语言寄存器及指令整理(小结)

寄存器

通用寄存器

8位寄存器 16位寄存器 32位寄存器 寄存器名称
AH,AL AX EAX 累加寄存器
BH,BL BX EBX 基地址寄存器
CH,CL CX ECX 计数器寄存器
DH,DL DX EDX 数据寄存器
SI ESI 源变址寄存器
DI EDI 源目标寄存器
DH,DL DX EDX 基地址寄存器
DH,DL DX EDX 栈顶寄存器

段寄存器

标号 名称
CS 代码段
DS 数据段
SS 栈段
ES 附加数据段
GS,FS 附加数据段(+80386)

专用寄存器

标号 名称
IP,EIP 指令指针
Flags EFlags

微机CPU指令系统

数据传送指令

  1. 传送指令 MOV
  2. 传送-填充指令 MOVSX/MOVZX
  3. 交换指令 XCHG
  4. 进栈操作指令 PUSH,PUSHA(80286+),PUSHAD(80386+)
  5. 出栈操作指令 POP,POPA(80286+),POPAD((80386+))
  6. 转换指令 XLAT
  7. 取有效地址指令 LEA
  8. 取段寄存器指令 LDS
  9. 字节交换指令 BSWP

算数运算指令

加法指令

  1. 加法指令 ADD
  2. 带进位加法指令 ADC
  3. 加一指令 INC
  4. 交换相加指令 XADD

减法指令

  1. 减法指令 SUB
  2. 带错位减(目的操作数-源操作数-标志位CF) SBB
  3. 减一指令 DEC
  4. 求补指令(改变正负) NEG

乘法指令

  1. 无符号乘法指令 MUL
乘数位数 隐含被乘数 存储寄存器
8位 AL AX MUL BL
16位 AX DX-AX MUL BX
32位 EAX EDX-EAX MUL ECX

2. 有符号数乘法指令 IMUL(80286-)同上

除法指令

  1. 无符号数除法指令 DIV
除数位数 隐含被除数 余数 例子
8位 AX AL AH DIV BH
16位 DX-AX AX DX DIV BX
32位 EDX-EAX EAX EDX DIV ECX

2. 有符号数的除法指令IDIV

类型转换指令

  1. 字节->字 CBW:AL中符号数->AH
  2. 字->双字 CWD:AX符号位->DX
  3. 字变双字CWDE;80386+:AX符号位->EAX
  4. 双字->四字:CDQ;80386+:EAX->EDX

逻辑运算指令

  1. 逻辑与 AND
  2. 逻辑或 OR
  3. 逻辑非 NOT
  4. 逻辑异或 XOR

移位操作指令

  1. 算数位移指令SAL(左)/SAR(右)
  2. 逻辑移位指令(补零) SHL/SHR
  3. 循环右移指令(带进位) ROL/ROR

处理机制指令

指令 效果
CLC CF<-0
CMC CF<-{CF}
STC CF<- 1
CLD DF<- 0
STD DF<- 1
CLI IF<- 0
STI IF<- 1
NOP 无操作
HLT 停机
WAIT 等待
ESC 换码
LOCK 封锁

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 汇编语言之寄存器详解

    上图是cpu中三个组成部分:寄存器 运算器 控制器.其中寄存器是cpu中程序员用指令读取的唯一部件(调剂界面中的 寄存器窗口).如果是16位cpu,就是处理,传输,暂时存储的数据长度都是16位.所以16位的cpu,寄存器也是16位.<汇编语言>这本书中使用的是16位寄存器位例子来讲的,所以下面的内容也都是16位寄存器的. ps:查看处理器型号以及几核cpu,我现在的电脑4核64位 寄存器名字 16位的寄存器有:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW

  • 16位汇编语言寄存器及指令整理(小结)

    寄存器 通用寄存器 8位寄存器 16位寄存器 32位寄存器 寄存器名称 AH,AL AX EAX 累加寄存器 BH,BL BX EBX 基地址寄存器 CH,CL CX ECX 计数器寄存器 DH,DL DX EDX 数据寄存器 SI ESI 源变址寄存器 DI EDI 源目标寄存器 DH,DL DX EDX 基地址寄存器 DH,DL DX EDX 栈顶寄存器 段寄存器 标号 名称 CS 代码段 DS 数据段 SS 栈段 ES 附加数据段 GS,FS 附加数据段(+80386) 专用寄存器 标号

  • 图文详解通俗易懂的汇编语言寄存器

    目录 认识寄存器 计算机架构中的寄存器 通用寄存器 AX 寄存器 BX 寄存器 CX 寄存器 DX 寄存器 索引寄存器 状态和控制寄存器 物理地址 什么是段 段寄存器 CS 寄存器 什么是 Code Segment DS 寄存器 栈 栈和 SS 寄存器 栈顶越界问题 我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 下面我们就来介绍一下关于寄存器的相关内容.我们知道,寄存器是 CPU 内部的构造,它

  • 汇编语言入门汇编指令及寄存器详解教程

    目录 前言 什么是汇编语言 汇编语言产生的原因 汇编与二进制的关系 寄存器 寄存器作用 存取速度比较 寄存器分类 常用寄存器用途 寄存器EAX.AX.AH.AL的关系 汇编语言指令 数据传送指令 算术运算指令 逻辑运算指令 循环控制指令 转移指令 linux 和 windows 下汇编的区别 总结 前言 我们大都是被高级语言惯坏了的一代,源源不断的新特性正在逐步添加到各类高级语言之中,汇编作为最接近机器指令的低级语言,已经很少被直接拿来写程序了,不过我还真的遇到了一个,那是之前的一个同事,因为在

  • 汇编语言 寄存器内存访问原理解析

    这篇文章主要介绍了汇编语言 寄存器内存访问原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在内存中字的存储 这段话的主要意思是:一个字=2B=16bit,CPU中是用两个内存单元储存一个字(假如获取0地址存放的字型数据,就是获取它的高位字节0+1位和低位字节0位的数据,数据由高地址位向低地址位读) 问题: (1)0地址单元中存放的字节型数据是多少? # 20H (2)0地址字单元中存放的字型数据是多少? # 4e20H (3)2地址字单

  • 汇编语言:比较指令、跳转指令、JCC的使用

    一.JMP 指令:修改EIP 当前运行的下一条指令 JMP 寄存器/立即数        目标类似:  mov  EIP,寄存器/立即数 CALL指令:  调用函数  CALL 地址A/寄存器        等价:                 PUSH 地址B           :保存call的下一条指令地址,压栈,作为返回值,                MOV EIP,地址A/寄存器            : 将函数首地址作为EIP RET指令:        等价:LEA ESP,

  • 10大HBase常见运维工具整理小结

    摘要:HBase自带许多运维工具,为用户提供管理.分析.修复和调试功能.本文将列举一些常用HBase工具,开发人员和运维人员可以参考本文内容,利用这些工具对HBase进行日常管理和运维. HBase组件介绍 HBase作为当前比较热门和广泛使用的NoSQL数据库,由于本身设计架构和流程上比较复杂,对大数据经验较少的运维人员门槛较高,本文对当前HBase上已有的工具做一些介绍以及总结. 写在前面的说明: 1) 由于HBase不同版本间的差异性较大(如HBase2.x上移走了hbck工具),本文使用

  • 总结易语言MD5加密16位和32位方法

    以下是小编整理的方法内容: 取数据摘要 (到字节集 (文本)) 这个取到的是32位的 取文本中间 (取数据摘要 (到字节集 (文本)), 9, 16) 这个取到的是16位的 方法很简单,大家需要自己在程序中测试以下,感谢大家对我们的支持.

  • vue v-for 使用问题整理小结

    今天使用v-for指令的时候遇到一个错误 [Vue warn]: Error in render: "TypeError: Cannot read property 'children' of undefined" 页面使用代码 <template v-for="(c,i) in modelList.Course.children"> <div :key="i" class="course-block">

  • python生成13位或16位时间戳以及反向解析时间戳的实例

    我就废话不多说了,直接上代码吧! import datetime import time def get_float_time_stamp(): datetime_now = datetime.datetime.now() return datetime_now.timestamp() def get_time_stamp16(): # 生成16时间戳 eg:1540281250399895 -ln datetime_now = datetime.datetime.now() print(dat

  • 汇编语言 跳转指令与C语言的条件分支

    跳转指令 跳转指令也是一个组的指令,称为j组.其中jmp为无条件跳转,其余为条件跳转 上图为j组指令,可结合条件码访问指令加深理解 在机器指令水平上理解如何对跳转指令编码 如上图,通过反汇编软件得到机器指令与汇编语言,其中左边为机器指令编码,右边为对应汇编语言含义,最左边为每条机器指令地址 jmp指令的对应机器指令有两个字节:eb表示这是jmp指令,03描述跳转信息.值得注意的是,跳转指令进行编码时,采用相对位置编码,如03描述的就是偏移量 结合实例进行理解:在未执行jmp指令时,rip寄存器存

随机推荐