[计算机硬件及网络]微机原理与接口技术.pptVIP

  • 8
  • 0
  • 约1.97万字
  • 约 58页
  • 2021-11-05 发布于江苏
  • 举报

[计算机硬件及网络]微机原理与接口技术.ppt

§3-3 8086的指令系统 ——算术运算指令 讨论ADD对标志位的影响: ▲两个数的相加过程: 0101 1110 5EH = 94 + 0011 1100 即: + 3CH = 60 1001 1010 9AH = 154 运算后标志位:ZF=0,AF=1,CF=0,SF=l,PF=1,OF=1。 ▲对标志的解释(人为决定): ①两个加数都看成无符号数时,运算结果为9AH,即十进制数154。在这种情况下,SF和OF都没有意义,我们只关心ZF和CF标志,在BCD码运算或奇偶校验时才考虑AF或PF标志。 ②两个加数都当成带符号数时,符号标志SF和溢出标志OF很重要,而进位标志CF没有意义。 带符号数能表示的范围-128~+127,而本例中,两个正数94和60相加,其和为154,由于154超过了范围,即产生了溢出,OF=1 * * 第三十页,编辑于星期一:十四点 三十三分。 §3-3 8086的指令系统 ——算术运算指令 ⑶ INC增量指令(Increment) 指令格式:INC 目的 指令功能:目的← 目的 十1 操作数的要求:通用寄存器、内存。 注意: ▲这条指令主要用在循环程序中,对地址指针和循环计数器等进行修改; ▲指令执行后影响AF、OF、PF、SF和ZF,但不影响进位标志CF。 ▲该指令只有一个操作数时,如果要使内存单元的内容增1,程序中必须说明该存储单元是字还是字节。 例 INC BL ;BL寄存器中内容增1 INC CX ;CX寄存器中内容增1 INC BYTE PRR[BX] ;内存字节单元内容增1 INC WORD PTR[BX] ;内存字单元内容增1 其中,PTR为类型说明符,前面加BYTE说明操作数类型为字节,加WORD则说明操作数类型为字。 * * 第三十一页,编辑于星期一:十四点 三十三分。 §3-3 8086的指令系统 ——算术运算指令 ⑷ AAA加法的ASCII调整指令(ASCII Adjust for Addition) 指令格式:AAA 指令功能:在用ADD或ADC指令对两个非压缩十进制数或ASCII码表示的十进制数作加法后,运算结果已存在AL中,用此指令将AL寄存器中的运算结果调整为一位非压缩十进制数,仍保留在AL中。如果AF=1,表示向高位有进位,则进到AH寄存器中。 (注:非压缩十进制数的高4位为全0,低4位为十进制数字0~9。例如,将9表示成0000 1001) 调整过程: 若AL低4位>9或AF=1 则:①AL←AL十6 ②用与操作(∧)将AL高4位清0 ③AF置1,CF置1,AH←AH十l 否则,仅将AL寄存器的高4位清0。 * * 第三十二页,编辑于星期一:十四点 三十三分。 §3-3 8086的指令系统 ——算术运算指令 例 若AL=BCD 9,BL=BCD 5,求两数之和。 解:设AH=0,则运算过程如下: ASCII码表示的十进制数,高半字节均为3,运算时需用AND指令将它屏蔽。只要使用AAA指令,可以不必屏蔽高半字节,便能在AX中得到一个正确的非压缩十进制数。 ADD AL,BL ; 0000 1001…9 ; + 0000 0101…5 AAA ; 0000 1110…低4为9 ; + 0000 0110…加6调整 ; 0001 0100 ; ^ 0000 1111…清高4位 ; 0000 0100…AL=4 ; CF=1,AF=1,AH=1 ; 结果为AX=0104H,表示非压缩十进制数14

文档评论(0)

1亿VIP精品文档

相关文档