汇编语言 数字
-
数字
数值数据通常用二进制表示。算术指令对二进制数据进行操作。当数字显示在屏幕上或从键盘输入时,它们是ASCII形式。到目前为止,我们已经将该输入数据以ASCII形式转换为二进制以进行算术计算,并将结果转换回二进制。以下代码显示了这一点-编译并执行上述代码后,将产生以下结果-但是,此类转换会产生开销,并且汇编语言编程允许以更有效的方式以二进制形式处理数字。小数可以两种形式表示-- ASCII形式
- BCD或二进制编码的十进制形式
-
ASCII表示
在ASCII表示中,十进制数字存储为ASCII字符字符串。例如,十进制值1234存储为-其中,31H是1的ASCII值,32H是2的ASCII值,依此类推。有四个指令用于处理ASCII表示形式的数字-- AAA-加法后ASCII调整
- AAS-减法后的ASCII调整
- AAM-乘法后ASCII调整
- AAD-除法前ASCII调整
这些指令不使用任何操作数,并假定所需的操作数位于AL寄存器中。以下示例使用AAS指令演示概念-编译并执行上述代码后,将产生以下结果- -
BCD表示
BCD表示有两种类型-- 未包装的BCD表示
- 打包的BCD表示
在未压缩的BCD表示形式中,每个字节都存储一个十进制数字的二进制等效项。例如,数字1234存储为-有两个指令来处理这些数字-- AAM-乘法后ASCII调整
- AAD-除法前ASCII调整
四个ASCII调整指令AAA,AAS,AAM和AAD也可以与未打包的BCD表示一起使用。在打包的BCD表示中,每个数字使用四位存储。两个十进制数字打包成一个字节。例如,数字1234存储为-有两个指令来处理这些数字-- DAA-加法后的十进制调整
- DAS-减后的十进制调整
打包的BCD表示形式不支持乘法和除法。以下程序将两个5位十进制数字加起来并显示总和。它使用以上概念-编译并执行上述代码后,将产生以下结果-