汇编语言ASCII和非压缩十进制运算

  • 内容
  • 评论
  • 相关

到目前为止,本教程讨论的整数运算处理的都是二进制数。虽然 CPU 用二进制运算,但是也可以执行 ASCII 十进制串的运算。使用后者进行运算,对用户而言既便于输入也便于在控制台窗口显示,因为不用进行二进制转换。

假设程序需要用户输入两个数,并将它们相加。若用户输入 3402 和 1256,则程序输出如下所示:

输入第一个数: 3402
输入第二个数: 1256
和数: 4658

有两种方法可以计算并显示和数:

1) 将两个操作数都转换为二进制,进行二进制加法,再将和数从二进制转换为 ASCII 数字串。

2) 直接进行数字串的加法,按序相加每对 ASCII 数字(2+6、0+5、4+2、3+1)。和数为 ASCII 数字串,因此可以直接显示在屏幕上。

第二种方法需要在执行每对 ASCII 数字相加后,用特殊指令来调整和数。有四类指令用于处理 ASCII 加法、减法、乘法和除法,如下所示:

AAA (执行加法后进行 ASCII 调整) AAM (执行乘法后进行 ASCII 调整)
AAS (执行减法后进行 ASCII 调整) AAD (执行除法前进行 ASCII 调整)

ASCII 十进制数和非压缩十进制数

非压缩十进制整数的高 4 位总是为零,而 ASCII 十进制数的高 4 位则应该等于 0011b。在任何情况下,这两种类型的每个数字都占用一个字节。

下面的例子展示了 3402 用这两种类型存放的格式:

本文标题:汇编语言ASCII和非压缩十进制运算

本文地址:https://www.hosteonscn.com/5414.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注