Assembly 在emu8086中添加两个64位数字

Assembly 在emu8086中添加两个64位数字,assembly,x86,addition,x86-16,Assembly,X86,Addition,X86 16,我搜索了大约一天,但找不到任何关于在assembly-emu8086中添加64位数字的信息 我该怎么做 我的寄存器只有16位,我有两个64位的数字。我使用的应用程序是emu8086。(用于学校项目)使用adc在单个16位加法之间传播进位。以下内容将从内存中的数字2添加到内存中的数字1: mov ax, [num1_bits0_15] add ax, [num2_bits0_15] mov [num1_bits0_15], ax mov ax, [num1_bits16_31] adc ax,

我搜索了大约一天,但找不到任何关于在assembly-emu8086中添加64位数字的信息

我该怎么做


我的寄存器只有16位,我有两个64位的数字。我使用的应用程序是emu8086。(用于学校项目)

使用
adc
在单个16位加法之间传播进位。以下内容将从内存中的数字2添加到内存中的数字1:

mov ax, [num1_bits0_15]
add ax, [num2_bits0_15]
mov [num1_bits0_15], ax

mov ax, [num1_bits16_31]
adc ax, [num2_bits16_31]
mov [num1_bits16_31], ax

mov ax, [num1_bits32_47]
adc ax, [num2_bits32_47]
mov [num1_bits32_47], ax

mov ax, [num1_bits48_63]
adc ax, [num2_bits48_63]
mov [num1_bits48_63], ax

使用
adc
在单个16位加法之间传播进位。以下内容将从内存中的数字2添加到内存中的数字1:

mov ax, [num1_bits0_15]
add ax, [num2_bits0_15]
mov [num1_bits0_15], ax

mov ax, [num1_bits16_31]
adc ax, [num2_bits16_31]
mov [num1_bits16_31], ax

mov ax, [num1_bits32_47]
adc ax, [num2_bits32_47]
mov [num1_bits32_47], ax

mov ax, [num1_bits48_63]
adc ax, [num2_bits48_63]
mov [num1_bits48_63], ax

基本上一次添加16位,然后在下一次添加中包含进位,例如添加ax、bx、adc cx、dx等。但是如何将数字拆分为16位寄存器?数字是否存储在内存中?你可以读,2字节乘2字节。一定很简单。我只需要声明它们并将结果存储在另一个64位数字中,比如说
sum
。我在集会上很无聊。这是我第一次尝试学习它。(我以前做过一个小应用程序,但只针对16位数字进行比较和跳转)基本上一次添加16位,然后在下一次添加中包括进位,例如添加ax、bx、adc cx、dx等。但是如何将数字拆分为16位寄存器?数字是否存储在内存中?你可以读,2字节乘2字节。一定很简单。我只需要声明它们并将结果存储在另一个64位数字中,比如说
sum
。我在集会上很无聊。这是我第一次尝试学习它。(我以前做过一个小应用程序,但只针对16位数字进行了比较和跳跃)非常感谢。哦,我明白了。所以在emu8086中,我不能使用DQ(用64位声明一个数字)。我只是在4个寄存器(每个16位)中声明,非常感谢。哦,我明白了。所以在emu8086中,我不能使用DQ(用64位声明一个数字)。我只是在4个寄存器中声明它(每个寄存器16位)