我有一个数字8 717 809 4592,存储在寄存器edx,eax中。这些值是这样的edx = x14 eax = 4c382800所以基本上edx具有高阶,而eax具有低阶。如何将此号码保存为ascii字符串' 87178094592'不使用函数调用?
答案 0 :(得分:1)
使用div
将edx:eax
除以10并重复。
答案 1 :(得分:0)
您可以将扩展精度分红除以32位除数。从edx = 0开始,eax =高阶红利,除以10,高阶红利= eax,eax =低阶红利,除以10,低阶红利= eax,最低有效数字=余数= edx。重复直到dividend = 0.你得到相反顺序的数字,所以你可能想把它们推到一个堆栈上,弹出它们以获得正向顺序的数字,或者将数字存储到一个字符串数组中,从字符串的结尾(为尾随零留下空间)。