2025年4月7日 星期一 乙巳(蛇)年 正月初八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 汇编

汇编语言AAM(乘法后的ASCII调整)和AAD(除法之前的ASCII调整)指令

时间:03-05来源:作者:点击数:64

32 位模式下,MUL 执行非压缩十进制乘法,AAM(乘法后的 ASCII 调整)指令转换由其产生的二进制乘积。乘法只能使用非压缩十进制数。

下面的例子实现 5 乘以 6,并调整 AX 中的结果。调整后,AX=0300h,非压缩十进制表示为 30:

  • .data
  • AscVal BYTE 05h, 06h
  • .code
  • mov bl, ascVal ;第一个操作数
  • mov al, [ascVal+1] ;第二个操作数
  • mul bl ;AX = 001Eh
  • aam ;AX = 0300h

同样在 32 位模式下,AAD(除法之前的 ASCII 调整)指令将 AX 中的非压缩十进制被除数转换为二进制,为执行 DIV 指令做准备。

下面的例子把非压缩 0307h 转换为二进制数,然后除以 5。DIV 指令在 AL 中生成商 07h,在 AH 中生成余数 02h:

  • .data
  • quotient BYTE ?
  • remainder BYTE ?
  • .code
  • mov ax, 0307h ; 被除数
  • aad ; AX = 0025h
  • mov bl, 5 ; 除数
  • div bl ; AX = 0207h
  • mov quotient,al
  • mov remainder,ah
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门