如何将包含 32 位数字的字符串拆分为两个 16 位寄存器
我正在开发一个项目来计算 16 位算术汇编中两个 32 位数字的 gcd。那么,如何将包含 32 位数字的字符串拆分为两个 16 位寄存器呢?
例如: “1234567891”-> dx=0100 1001 1001 0110 &斧头=0000 0010 1101 0011
I am working on a project to calculate gcd of two 32bit number in 16bit arithmetic assembly. So, how can I split a string containing a 32bit number into two 16bit register?
For example:
"1234567891" -> dx=0100 1001 1001 0110 & ax=0000 0010 1101 0011
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要考虑使用称为任意精度的东西。这是一个非常常见的过程,用于对大于处理器处理能力的数字进行计算。
看看
请注意,如果将两个 32 位数字相乘,则可能需要一个 64 位数字来存储结果!
You'll need to look at using something called arbitrary precision. Its quite a common process for making calculations on numbers that are larger than a processor may be able to handle.
Have a look at this previous stackoverflow question as it has a good answer to explain how this may be achieved.
Be aware that if you multiply two 32 bit numbers then you may need a 64 bit number to store the result!