x86汇编如何从两个寄存器中打印大量数字?

时间:2014-03-22 22:57:21

标签: assembly x86 ascii

我有一个数字8 717 809 4592,存储在寄存器edx,eax中。这些值是这样的edx = x14 eax = 4c382800所以基本上edx具有高阶,而eax具有低阶。如何将此号码保存为ascii字符串' 87178094592'不使用函数调用?

2 个答案:

答案 0 :(得分:1)

使用divedx:eax除以10并重复。

答案 1 :(得分:0)

您可以将扩展精度分红除以32位除数。从edx = 0开始,eax =高阶红利,除以10,高阶红利= eax,eax =低阶红利,除以10,低阶红利= eax,最低有效数字=余数= edx。重复直到dividend = 0.你得到相反顺序的数字,所以你可能想把它们推到一个堆栈上,弹出它们以获得正向顺序的数字,或者将数字存储到一个字符串数组中,从字符串的结尾(为尾随零留下空间)。