8086 CPU算术运算指令详解

需积分: 10 1 下载量 143 浏览量 更新于2024-08-22 收藏 47KB PPT 举报
"算术运算指令在微机原理中的应用" 微机原理是计算机科学的基础,它涉及计算机系统的核心组成部分和工作原理。算术运算指令是微处理器执行的基本操作,用于执行数学运算,如加法、减法、乘法、除法以及其它相关操作。在8086CPU这样的早期处理器中,这些指令对于程序的运行至关重要。 算术运算指令分为多个类别: A类指令包括加法和加带进位指令: 1. ADD DST, SRC:将源操作数SRC与目标操作数DST相加,并将结果存储在DST中。 2. ADC DST, SRC:类似于ADD,但还会加上当前的进位标志CF,用于处理溢出情况。 3. INC OPR:将操作数OPR的值增加1。 B类指令涉及减法和带借位减法: 1. SUB DST, SRC:从目标操作数DST中减去源操作数SRC,结果存储在DST中。 2. SBB DST, SRC:类似于SUB,但还会减去当前的进位标志CF,用于处理借位情况。 3. DEC OPR:将操作数OPR的值减少1。 4. NEG OPR:将操作数OPR取反,即加上其补码,相当于执行-OPR。 5. CMP OPR1, OPR2:比较OPR1和OPR2,但不改变它们的值,而是根据比较结果更新标志寄存器F。 C类指令涵盖乘法和除法: 1. MUL SRC:将AX或AX与BX/AX或CX/AX(取决于指令)中的源操作数SRC相乘,结果放在DX和AX中。 2. IMUL SRC:与MUL类似,但适用于带符号整数的乘法。 3. DIV SRC:用AX或DX:AX除以源操作数SRC,商在AL或AX中,余数在AH或DX中。 4. IDIV SRC:与DIV类似,但适用于带符号整数的除法。 D类指令涉及到字节和字的转换: 1. CBW:字节到字的转换,将AL的内容扩展到AX。 2. CWD:字到双字的转换,将AX的内容扩展到DX:AX。 E类指令用于辅助算术运算: 1. DAA:辅助加法指令,处理十六进制加法的进位和借位。 2. DAS:辅助减法指令,处理十六进制减法的进位和借位。 3. AAA:辅助加法,用于十进制调整,将AL中的两个低四位的BCD数字加在一起。 4. AAS:辅助减法,与AAA类似,但用于减法操作。 5. AAM:辅助乘法,将AL与10相乘并把结果分开到AL和AH中。 6. AAD:辅助除法,将AL和AH中的数字与10相加,用于十进制除法。 了解这些算术运算指令对于理解微处理器如何执行基本的算术运算至关重要。在编程时,正确使用这些指令可以提高程序的效率,同时避免因溢出和错误操作导致的问题。在8086CPU中,这些指令通过与ALU(算术逻辑单元)、标志寄存器和其他组件的交互来完成计算任务,进而执行更复杂的程序逻辑。