汇编语言压缩十进制运算简介
本节讨论的指令仅用于 32 位编程模式。压缩十进制数的每个字节存放两个十进制数字,每个数字用 4 位表示。如果数字个数为奇数,则最高的半字节用零填充。存储大小可变:
1) 数据几乎可以包含任何个数的有效数字。这使得以很高的精度执行计算成为可能。
2) 实现压缩十进制数与 ASCII 码之间的相互转换相对简单。
DAA(加法后的十进制调整)和 DAS(减法后的十进制调整)这两条指令调整压缩十进制数加减法的结果。可惜的是,目前还没有与乘除法有关的相似指令。在这些情况下,相乘或相除的数必须是非压缩的,执行后再压缩。
下面分别对 DAA 指令和 DAS 指令做详细介绍:
《DAA 指令》
《DAS 指令》
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 指令》