汇编语言压缩十进制运算简介

< 上一页AAM和AAD指令 DAA指令下一页 >

本节讨论的指令仅用于 32 位编程模式。压缩十进制数的每个字节存放两个十进制数字,每个数字用 4 位表示。如果数字个数为奇数,则最高的半字节用零填充。存储大小可变:

bcd1 QWORD 2345673928737285h        ;十进制数 2 345 673 928 737 285
bcd2 DWORD 12345678h                        ;十进制数 12 345 678
bcd3 DWORD 08723654h                        ;十进制数 8 723 654
bcd4 WORD 9345h                                  ;十进制数 9345
bcd5 WORD 0237h                                  ;十进制数 237
bcd6 BYTE 34h                                         ;十进制数 34

压缩十进制存储至少有两个优势:

1) 数据几乎可以包含任何个数的有效数字。这使得以很高的精度执行计算成为可能。

2) 实现压缩十进制数与 ASCII 码之间的相互转换相对简单。

DAA(加法后的十进制调整)和 DAS(减法后的十进制调整)这两条指令调整压缩十进制数加减法的结果。可惜的是,目前还没有与乘除法有关的相似指令。在这些情况下,相乘或相除的数必须是非压缩的,执行后再压缩。

下面分别对 DAA 指令和 DAS 指令做详细介绍:
DAA 指令
DAS 指令
< 上一页AAM和AAD指令 DAA指令下一页 >