-A Y ;汇编一条指令 1271:0100 MOVAX,1234 1271:0103 T=100女 ;执行该指令 AX=1234BX=0000CX=0000DX=0000SP= FFEE BP=0000SI0000DI=0000 DS=1271ES=1271SS=1271CS=1271IP=0103 NVUP EIPL NZ NA PO NC 1271:0103E9C300JMP01C9 R女 查看指令执行后结果 AX=1234BX=0000CX=0000DX=0000SP= FFEE BP=00sI=0000DI=0000 DS=1271ES=1271SS=1271CS=1271IP=0103 NVUP EIPL NZNA PO NC Q 退出 DEBUG D:
7 -A Ý ;汇编一条指令 1271:0100 MOV AX,1234 1271:0103 -T =100 Ý ;执行该指令 AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1271 ES=1271 SS=1271 CS=1271 IP=0103 NV UP EI PL NZ NA PO NC 1271:0103 E9C300 JMP 01C9 -R Ý ;查看指令执行后结果 AX=1234 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1271 ES=1271 SS=1271 CS=1271 IP=0103 NV UP EI PL NZ NA PO NC -Q Ý ;退出DEBUG D:\>
3.42算术运算指令 1.加法指令 2.减法指令 3.乘法指令 4.除法指令
8 3.4.2 算术运算指令 1.加法指令 2.减法指令 3.乘法指令 4.除法指令
(3)加1指令INC(单操作数指令) 格式: INc reg INc reg/mem 例: INC AL INC BYTE PTR [BX+41 本指令除CF外对其余标志均有影响 (4)BCD码的加法十进制调正指令AAA和DAA ◆AA本指令对在AL中的由两个未组合的BCD码 相加后的结果进行调正,得到一个正确的未组 合的BCD码
9 (3) 加1指令INC(单操作数指令) 单操作数指令) 格式: INC reg INC reg/mem 例: INC AL INC BYTE PTR[BX+4] 本指令除CF外对其余标志均有影响。 (4)BCD码的加法十进制调正指令AAA和DAA AAA 本指令对在AL中的由两个未组合的BCD码 相加后的结果进行调正,得到一个正确的未组 合的BCD码
例1 MOV AL, 08 00001000 ADD AL,09+00001001 00010001 结果应为17,而计算机相加为11H,原因在 于运算过程中,如遇到低4位往高4位产生进位时 (此时AF=1)按逢十六进一的规则,但BCD码要 求逢十进一,因此只要产生进位就会丢掉一个6, 这就要进行加6调正
10 例1: MOV AL,08 0000 1000 ADD AL,09 +0000 1001 0001 0001 结果应为17,而计算机相加为11H,原因在 于运算过程中,如遇到低4位往高4位产生进位时 (此时AF=1)按逢十六进一的规则,但BCD码要 求逢十进一,因此只要产生进位就会丢掉一个6, 这就要进行加6调正
实际上当低4位的结果>9(即A~F之间)时, 也应进行加6调正。 如上面的结果进行加6得: 00010001 +00000110 00010111
11 实际上当低4位的结果>9(即A~F之间)时, 也应进行加6调正。 如上面的结果进行加6得: 0001 0001 + 0000 0110 0001 0111