当前位置: 首页 > 编程笔记 >

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

程胤运
2023-03-14
本文向大家介绍16位汇编语言寄存器及指令整理(小结),包括了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 封锁

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

 类似资料:
  • 本文向大家介绍汇编语言之寄存器详解,包括了汇编语言之寄存器详解的使用技巧和注意事项,需要的朋友参考一下 上图是cpu中三个组成部分:寄存器 运算器 控制器。其中寄存器是cpu中程序员用指令读取的唯一部件(调剂界面中的 寄存器窗口)。如果是16位cpu,就是处理,传输,暂时存储的数据长度都是16位。所以16位的cpu,寄存器也是16位。《汇编语言》这本书中使用的是16位寄存器位例子来讲的,所以下面的

  • 本文向大家介绍汇编语言 寄存器内存访问原理解析,包括了汇编语言 寄存器内存访问原理解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了汇编语言 寄存器内存访问原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在内存中字的存储 这段话的主要意思是:一个字=2B=16bit,CPU中是用两个内存单元储存一个字(假如获取0地址存放的字

  • 本文向大家介绍汇编语言之寄存器(详细介绍),包括了汇编语言之寄存器(详细介绍)的使用技巧和注意事项,需要的朋友参考一下 1、寄存器 32位寄存器有16个,分别是: 4个数据寄存器(EAX、EBX、ECX、EDX)。 2个变址和指针寄存器(ESI和EDI);2个指针寄存器(ESP和EBP)。 6个段寄存器(ES、CS、SS、DS、FS、GS)。 1个指令指针寄存器(EIP);1个标志寄存器(EFla

  • 本文向大家介绍汇编语言中的各种寄存器介绍,包括了汇编语言中的各种寄存器介绍的使用技巧和注意事项,需要的朋友参考一下 汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成

  • 我想知道以下内容: 是否有可能创建一组小的组装指令,这些指令一起可以完成所有可能的操作?或者可能会有不同的问题,关于任何架构,必须有哪些组装说明? (例如,Jump和Add是做任何事情所必需的) 我希望你们能帮助我! 提供一些背景信息:我正在尝试为我的编译器设计一种中间语言,我想使用尽可能少的指令(稍后可以用一堆这些指令代替特定架构的复杂指令)。但是当然,IL本身应该是可移植的。

  • x86的通用寄存器有eax、ebx、ecx、edx、edi、esi。这些寄存器在大多数指令中是可以任意选用的,比如movl指令可以把一个立即数传送到eax中,也可传送到ebx中。但也有一些指令规定只能用其中某些寄存器做某种用途,例如除法指令idivl要求被除数在eax寄存器中,edx寄存器必须是0,而除数可以在任意寄存器中,计算结果的商数保存在eax寄存器中,而原来的被除数被覆盖掉,余数保存在ed