微机原理及应用CH3 8086的寻址方式及指令系统.ppt

微机原理及应用CH3 8086的寻址方式及指令系统.ppt

格 式:DAA 执行的操作:把AL中的和调整为压缩的BCD码格式并保存到AL中,这条指令之前必须执行ADD或ADC指令。该指令的调整方法如下: 如果AF标志为1或者AL的低4位是十六进制的A~F,则AL的内容加06H,且将AF位置1; 如果CF标志为1或者AL的高4位是十六进制的A~F,则AL的内容加60H,并将CF位置1。 DAA指令对OF标志没有定义,但影响其他所有状态标志。 (1)DAA 加法十进制调整指令 格 式:DAS 执行的操作:把AL中的差调整为压缩的BCD码格式并保存到AL中,这条指令之前必须执行SUB或SBB指令,减法指令必须把两个压缩的BCD码相减,并把结果存在AL寄存器中。该指令的调整方法如下: 如果AF标志为1或者AL的低4位是十六进制的A~F,则AL的内容减06H,且将AF位置1; 如果CF标志为1或者AL的高4位是十六进制的A~F,则AL的内容减60H,并将CF位置1。 DAS指令对OF标志没有定义,但影响其他所有状态标志。 (2)DAS 减法十进制调整指令 格 式:AAA 执行的操作: (AL)←把AL中的和调整为非压缩的BCD码格式 (AH)←(AH)+调整产生的进位值 该指令执行之前必须执行ADD或ADC指令,加法指令必须把两个非压缩的BCD码相加,并把结果放在AL中。该指令的调整方法如下: ① 如AL的低4位在0~9之间,且AF位为0,则跳过第②步,执行第③步; ② 如AL的低4位在十六进制数A~F之间或AF位为1,则AL的内容加6,AH的内容加1,并将AF位置1; ③ 清除AL的高4位; ④ AF位的值送CF位。 (3)AAA 加法十进制调整指令 格 式:AAS 执行的操作: (AL)←把AL中的差调整为非压缩的BCD码格式 (AH)←(AH)-调整产生的借位值 该指令执行之前必须执行SUB或SBB指令,减法指令必须把两个非压缩的BCD码相减,并把结果放在AL中。该指令的调整方法如下: (4)AAS 减法十进制 调整指令 ① 如AL的低4位在0~9之间,且AF位为0,则跳过第②步,执行第③步; ② 如AL的低4位在十六进制数A~F之间或AF位为1,则AL的内容减6,AH的内容减1,并将AF位置1; ③ 清除AL的高4位; ④ AF位的值送CF位。 格式:AAM 执行的操作: (AX)←把AL中的乘积调整为非压缩的BCD码格式 该指令执行之前必须执行MUL指令,乘法指令必须把两个非压缩的BCD码相乘(此时要求高4位为0),并把结果放在AL中。该指令的调整方法是:把AL的内容除以0AH,商放到AH中,余数放到AL中。该指令根据AL的内容设置SF、ZF、PF,对OF、CF、AF没有定义。 (5)AAM 乘法十进制调整指令 格 式:AAD 执行的操作是: (AL)←(AH)×0AH+(AL) (AH)←0 该指令根据AL的内容设置SF、ZF、PF,对OF、CF、AF没有定义。 (6)AAD 除法十进制调整指令 3.2.3 逻辑运算和移位指令 8086指令系统提供了对8位数和16位数的逻辑操作指令。这些指令分为两类:一类是逻辑运算指令;另一类是逻辑移位指令。 (1)AND 逻辑“与”指令 格 式:AND dest, src 执行的操作:(dest)←(dest)∧(src) 该指令对指定的两个操作数按位进行逻辑“与”运算,即只有相与的两位全为1,“与”运算的结果才为1;否则“与”运算的结果才为0。 注意以下三点: ① “与”指令中操作数不能同时为存储器; ② 该指令执行后CF=OF=0,AF未定义,SF、ZF、PF根据运算结果设置; ③ “与”指令一般用来对一个数据的指定位清0,而其余位保持不变。 1.逻辑运算指令 (2)TEST (测试指令) 格 式:TEST dest , src 执行的操作:(dest)∧(src) 本指令完成AND指令同样的操作,但不送回“与”操作结果,只是使结果反映在标志位上。 TEST指令常常用来检测指定位是1还是0。 ① “或”指令中操作数不能同时为存储器; ② 该指令执行后CF=OF=0,AF未定义,SF、ZF、PF根据运算结果设置; ③ “或”指令一般用来对一个数据的指定位置1,而其余位保持不变。 使用OR指令,注意以下三点: (3)OR 逻辑“或”指令 格 式:OR dest, src 执行的操作:(dest)←(dset)∨(src) 该指令对指定的两个操作数按位进行逻辑“或”运算,即进行“或”

文档评论(0)

1亿VIP精品文档

相关文档