寄存器
通用寄存器
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指令系统
数据传送指令
- 传送指令 mov
- 传送-填充指令 movsx/movzx
- 交换指令 xchg
- 进栈操作指令 push,pusha(80286 ),pushad(80386 )
- 出栈操作指令 pop,popa(80286 ),popad((80386 ))
- 转换指令 xlat
- 取有效地址指令 lea
- 取段寄存器指令 lds
- 字节交换指令 bswp
算数运算指令
加法指令
- 加法指令 add
- 带进位加法指令 adc
- 加一指令 inc
- 交换相加指令 xadd
减法指令
- 减法指令 sub
- 带错位减(目的操作数-源操作数-标志位cf) sbb
- 减一指令 dec
- 求补指令(改变正负) neg
乘法指令
- 无符号乘法指令 mul
乘数位数 | 隐含被乘数 | 存储寄存器 | 例 |
---|---|---|---|
8位 | al | ax | mul bl |
16位 | ax | dx-ax | mul bx |
32位 | eax | edx-eax | mul ecx |
2. 有符号数乘法指令 imul(80286-)同上
除法指令
- 无符号数除法指令 div
除数位数 | 隐含被除数 | 商 | 余数 | 例子 |
---|---|---|---|---|
8位 | ax | al | ah | div bh |
16位 | dx-ax | ax | dx | div bx |
32位 | edx-eax | eax | edx | div ecx |
2. 有符号数的除法指令idiv
类型转换指令
- 字节->字 cbw:al中符号数->ah
- 字->双字 cwd:ax符号位->dx
- 字变双字cwde;80386 :ax符号位->eax
- 双字->四字:cdq;80386 :eax->edx
逻辑运算指令
- 逻辑与 and
- 逻辑或 or
- 逻辑非 not
- 逻辑异或 xor
移位操作指令
- 算数位移指令sal(左)/sar(右)
- 逻辑移位指令(补零) shl/shr
- 循环右移指令(带进位) 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 | 封锁 |
以上就是本文的全部内容,希望对大家的学习有所帮助,