zoukankan      html  css  js  c++  java
  • 汇编学习笔记40

    二、未组合BCD码算术运算调整指令

    1.未组合BCD码的加法指令调整指令: AAA

    指令格式: AAA

    本指令对在AL中的由两个未组合BCD码相加后的结果进行调整,产生一个未组合BCD码

    调整方法如下:

    1) 如果AL中低4位在0~9之间,且AF=0,转入3)

    2) 如果AL的低4位在A~F之间,或AF=1,则(AL)=(AL)+6, (AH)=(AH)+1, AF=1

    3) 清除AL的高4位

    4) AF的值送入CF

    该指令影响标志位AF和CF,对其他标志位无定义。

    例:

    MOV AX, 7

    ADD AL, 6   ; AL=0DH, AH=00H, AF=0, CF=0

    AAA         ; AL=03H, AH=01H, AF=1, CF=1

    ADC AL, 5   ; AL=09H, AH=01H, AF=0, CF=0

    AAA         ; AL=09H, AH=01H, AF=0, CF=0

    ADD AL, 39H ; AL=42H, AH=01H, AF=1, CF=0

    AAA         ; AL=08H, AH=02H, AF=1, CF=1

    2. 未组合BCD码的减法指令调整指令 AAS

    指令格式: AAS

    本指令对在AL中的两个未组合BCD码相减所得的差进行调整,产生一个未组合BCD码

    调整方法如下:

    1) 如果AL中的低4位在0~9之间,且AF=0,则转入3)

    2) 如果AL中的低4位在A~F之间或AF=0,则 (AL)=(AL)-6, (AH)=(AH)-1, AF=1

    3) 清除AL的高4位

    4) AF的值送入CF

    该指令影响标志位AF和CF,对其他标志位无定义

    例:

    MOV AL, 34H

    SUB AL, 09H   ; AL=2BH, AF=1, CF=0

    AAS           ; AL=05H, AF=1, CF=1

    3. 未组合BCD码乘法指令调整指令  AAM

    指令格式: AAM

    本指令对存放在AL中的积(由两个未组合BCD码相乘产生)进行调整,产生两个未组合的BCD码。

    调整方法如下:

    把AL中的值除以10, 商放在AH中,余数放在AL中。

    该指令影响标志位SF, ZF, PF, 对其他标志位无影响。

    MOV AL, 03H

    MOV BL, 04H

    MUL BL         ; AL=0CH, AH=00H

    AAM            ; AL=02H, AH=01H

    4. 未组合BCD码除法指令调整指令 AAD

    指令格式: AAD

    本指令与其他调整指令在使用顺序上不同。本指令在调用除运算指令之前调用。把存放在AH和AL中的两位未组合BCD码调整为一个二进制数存放在AL中。

    调整方法为:

    (AL)=(AL)+10*(AH), (AH)=0

    由于上述调整,存放在AL和AH中的非组合BCD码的高4位应为0,该指令影响标志位SF, ZF, PF, 对其他标志位无影响

    例:

    MOV AH, 04H

    MOV AL, 03H

    MOV BL, 08H

    AAD           ; AL=2BH, AH=00H

    DIV BL        ; AL=05H, AH=03H

    例: 写出(DX)=UP1+UP2-UP3

    MOV AX, 0

    MOV AL, UP1

    ADD AL, UP2

    AAA

    MOV DL, AL

    MOV AL, UP1+1

    ADC AL, UP2+1

    AAA

    XCHG AL, DL

    SUB AL, UP3

    AAS

    XCHG AL, DL

    SBB AL, UP3+1

    AAS

    MOV DH, AL

  • 相关阅读:
    MS CRM 2011 RC中的新特性(4)——活动方面之批量编辑、自定义活动
    最近的一些有关MS CRM 2011的更新
    MS CRM 2011 RC中的新特性(6)——连接
    MS CRM 2011 RC中的新特性(7)—仪表板
    参加MS CRM2011深度培训课程——第一天
    MS CRM 2011插件调试工具
    MS CRM2011实体介绍(四)——目标管理方面的实体
    MS CRM 2011 RC中的新特性(3)——客户服务管理方面
    MS CRM 2011 RC中的新特性(8)—数据管理
    ExtAspNet 登陆
  • 原文地址:https://www.cnblogs.com/hailong/p/1934002.html
Copyright © 2011-2022 走看看