Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何将包含32位数字的字符串拆分为两个16位寄存器_Assembly_Bit Manipulation - Fatal编程技术网

Assembly 如何将包含32位数字的字符串拆分为两个16位寄存器

Assembly 如何将包含32位数字的字符串拆分为两个16位寄存器,assembly,bit-manipulation,Assembly,Bit Manipulation,我正在做一个项目,在16位算术汇编中计算两个32位数字的gcd。那么,如何将包含32位数字的字符串拆分为两个16位寄存器 例如: 1234567891->dx=0100 1001 1001 0110&ax=0000 0010 1101 0011您需要考虑使用一种称为任意精度的方法。这是一个非常常见的过程,用于计算比处理器处理能力更大的数字 看看前面的stackoverflow问题,因为它有一个很好的答案来解释如何实现这一点 请注意,如果将两个32位数字相乘,则可能需要一个64位数字来存储结果 您

我正在做一个项目,在16位算术汇编中计算两个32位数字的gcd。那么,如何将包含32位数字的字符串拆分为两个16位寄存器

例如:
1234567891->dx=0100 1001 1001 0110&ax=0000 0010 1101 0011

您需要考虑使用一种称为任意精度的方法。这是一个非常常见的过程,用于计算比处理器处理能力更大的数字

看看前面的stackoverflow问题,因为它有一个很好的答案来解释如何实现这一点


请注意,如果将两个32位数字相乘,则可能需要一个64位数字来存储结果

您需要考虑使用一种称为“任意精度”的方法。这是一个非常常见的过程,用于计算比处理器处理能力更大的数字

看看前面的stackoverflow问题,因为它有一个很好的答案来解释如何实现这一点


请注意,如果将两个32位数字相乘,则可能需要一个64位数字来存储结果

是的,你是信任的,我知道你说的。我查阅了很多网站,如维基百科、StaskOffuyFuffes等,但我没有找到我期望的答案。换句话说,没有关于它的答案或源代码:最近我在C++中做了一个项目,像这个句柄无限的数字,但是在汇编中我不能这样做。换句话说,我知道该怎么办。但首先,我不知道如何将最多包含10位的ascii字符序列转换为一个数字,更重要的是将其拆分为两个16位寄存器,如ax:dx。如果可能的话,执行项目的其他部分也没有问题。我编写了一个16位版本的gcd finder,它可以正常工作,如图所示:`.model flat.stack 1024.data xdw 2620 y dw 3600.代码.启动push x push y呼叫gcd.退出gcd进程靠近push bp mov bp,sp mov bx,[bp+4]mov cx,[bp+6]cmp bx,0 je retern mov ax,cx xor dx,dx div bx push bx push dx呼叫gcd retern:mov dx,cx pop bp ret 2 gcd end`是的,我知道你说过。我查过很多网站,比如维基百科,StaskOffuyFuffes等,但我没有找到我的预期答案。换句话说,没有答案或源代码关于它:最近我做了一个项目在C++中,像这个句柄无限数字,但在装配我不能这样做。换句话说,我知道该怎么办,但首先,我不知道如何将最多包含10位的ascii字符序列转换为一个数字,更重要的是将其拆分为两个16位寄存器,如ax:dx。如果可能的话,执行项目的其他部分也没有问题。我编写了一个16位版本的gcd finder,它可以正常工作,如图所示:`.model flat.stack 1024.data xdw 2620 y dw 3600.代码.启动推送x推送y呼叫gcd.退出gcd proc近推送bp mov bp,sp mov bx,[bp+4]mov cx,[bp+6]cmp bx,0 je retern mov ax,cx xor dx,dx div bx推送bx推送dx呼叫gcd retern:mov dx,cx pop bp ret 2 gcd end`