微处理器8086指令
1. 什么是汇编指令
-汇编指令是汇编语言中使用的一些操作符和助记符,还包括一些伪指令(如assume,end)。用于告诉汇编程序如何进行汇编的指令,它既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。
2. 汇编指令大全
2.1. MOV(传送)
- 用法:MOV {target},{source}
- 功能描述:把source的内容复制到target里
- 注意:
-
- T不可为CS(代码段寄存器),CS在操作的属性应该是R只可读,不可写。
-
- T和S不应同为内存和段寄存器(CS\DS\ES\SS\FS\GS)
-
- 不能将立即数传送给段寄存器
-
- 必须是相同类型,即字,双字
- 写法示例:MOV dl,01H; MOV eax,[bp]; eax =ss:[bp] 双字传送。
2.2. XCHG(交换)
- 用法:XCHG {OBJECT1},{OBJECT2}
- 功能描述:交换object1与object2的值
- 注意:
-
- 对于OBJECT1和OBJECT2不可以同为内存里的值
-
- OBJECT1 OBJECT2必须是通用寄存器(AX\BX\CX\DX)
-
- 类型匹配
2.3. PUSH(进栈)
- 写法:PUSH reg16(32)/seg/mem16(32)/imm
- 功能描述:将通用寄存器/段寄存器/内存数/立即数的值压入栈中
2.4. POP(出栈)
- POP reg16(32)/seg/mem16(32)【不能出栈到CS中】
- 功能描述:将堆栈口的16(32)位数据推出到通用寄存器/段寄存器/内存中
2.5. ADD(加法)
- 写法:ADD reg/mem reg/mem/imm
- 将后面的操作数加到前面的操作数中
2.6. ADC(带符号加法)
- 写法同ADD
2.7. INC (加一)
- 写法:INC reg\mem
- 作用:INC AX => AX++
2.8. SUB(减法)
- 写法:SUB reg/mem reg/mem/imm
- dest=dest-src;
2.9. SBB(带符号减法)
- 写法同SUB
2.10. DEC(减一)
- 用法:DEC reg\mem
- 作用:DEC AX => AX–
2.11. IN(输入指令)
- 用法:IN reg,A
- 其中A指端口地址,当端口地址是8位时,reg可以时AL(通用寄存器AX的低8位);当A时16位时,reg必须是DX;
- 作用:当发生寻址操作时,数据会通过AL的端口地址给到AH;
2.12. OUT(输出指令)
- 用法:OUT DX,AL
- 格式: OUT n,AL ;(n)<–(AL)
2.13. JMP(无条件转移指令)
- 用法:JMP OPRD
- 没有任何条件就转移到地址OPRD中
- 与之相对的有条件转移指令JBE/JNA(不高于时转移)JAE/JNB(不低于时转移)JNC(等于时转移)等等
3. 备注
- 2022/06/30:今天完成一部分笔记的电子化,有一些记忆模糊的地方参考了一些百度到的博文;