汇编语言AAS指令:减法后的ASXII调整
32 位模式下,AAS(减法后的 ASCII 调整)指令紧随 SUB 或 SBB 指令之后,这两条指令执行两个非压缩十进制数的减法,并将结果保存到 AL 中。AAS 指令将 AL 转换为 ASCII 码的数字形式。
只有减法结果为负时,调整才是必需的。比如,下面的语句实现 ASCII 码 数字 8 减去 9:
只有减法结果为负时,调整才是必需的。比如,下面的语句实现 ASCII 码 数字 8 减去 9:
.data val1 BYTE '8' val2 BYTE '9' .code mov ah, 0 mov al,val1 ; AX = 0038h sub al,val2 ; AX = OOFFh aas ; AX = FF09h pushf ; 保存进位标志位 or al,30h ; AX = FF39h popf ; 恢复进位标志位执行 SUB 指令后,AX 等于 00FFh。AAS 指令将 AL 转换为 09h,AH 减 1 等于 FFh,并且把进位标志位置 1。