- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 
                        查看更多
                        
                    
                南京邮电大学微机接口与原理课件第3章
                    2. 调整原理      以加法调整为例。          7                            0 1 1 1                       1 1 0 1  +     6                       +  0 1 1 0                  +   0 1 1 0      1 3                            1 1 0 1                       0 0 1 1                                           D              0 0 0 1  0 0 1 1                                                                     13 (H)       不同的运算指令的调整方法不同,但道理是一样的。                      1 3. 调整指令          加法:   DAA          组合BCD码十进制加法调整指令。                    AAA         未组合BCD码十进制加法调整指令。      减法:  DAS          组合BCD码十进制减法调整指令。                    AAS         未组合BCD码十进制减法调整指令。      乘法:  AAM        未组合BCD码十进制乘法调整指令。       除法:  AAD         未组合BCD码十进制除法调整指令。   笔算  CPU运算  加法调整        43   +   55        98               0100,0011  ADD)  0101,0101               1001,1000  C标=0,A标=0,高低四位均没有出现非法BCD码,结果正确,不修正        39   +   49        88                                     0011,1001  ADD)  0100,1001               1000,0010     +)             0110              1000,1000  低四位有进位,即A标=1,对运算结果加06H修正           63   +  54      117                 0110,0011  ADD)  0101,0100              1011,0111     +)     0110,0000           1,0001,0111  高四位出现非法BCD码数,对运算结果加60H修正            87   +  86      173                      1000,0111    ADD)  1000,0110           1,0000,1101     +)    0110,0110           1,0111,0011  因为C标=1,低四位出现非法BCD码,对运算结果加66H修正  笔算  CPU运算  加法调整  例:计算1234+5678=? 要求CPU完成的操作:加法                             指令:ADD 、ADC  代码段:    MOV     AL  ,   BYTE   PTR  N1     ADD     AL   ,   BYTE   PTR  N2     MOV    BYTE  PTR  SUM   ,   AL     MOV    AL  ,    BYTE   PTR  N1+1     ADC     AL  ,    BYTE   PTR  N2+1     MOV   BYTE  PTR  SUM+1   ,   AL 数据段:      N1      DW    1234      N2      DW    5678      SUM  DW    ? 方法一:二进制字节加 代码段:    MOV     AL  ,   BYTE   PTR  N1     ADD     AL   ,   BYTE   PTR  N2     DAA     MOV    BYTE  PTR  SUM   ,   AL     MOV    AL  ,    BYTE   PTR  N1+1     ADC     AL  ,    BYTE   PTR  N2+1     DAA     MOV   BY
                
原创力文档
                        

文档评论(0)