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 封锁

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

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。