Assembly 汇编:将双字添加到双字

Assembly 汇编:将双字添加到双字,assembly,x86,Assembly,X86,所以我有一些家庭作业,这让我把头发扯下来 代码如下: VALUE1 DW 0153H DW 1624H VALUE2 DW 0328H DW 3C44H RESULT DW 0 DW 0 DW 0 DW 0 MOV SI,OFFSET VALUE1 MOV DI,OFFSET VALUE2 MOV AX,[SI] INC SI ADD AX,[SI] MOV BX,[DI] I

所以我有一些家庭作业,这让我把头发扯下来

代码如下:

VALUE1  DW  0153H
    DW  1624H
VALUE2  DW  0328H
    DW  3C44H
RESULT  DW  0
    DW  0
    DW  0
    DW  0

    MOV SI,OFFSET VALUE1
    MOV DI,OFFSET VALUE2
    MOV AX,[SI]
    INC SI
    ADD AX,[SI]
    MOV BX,[DI]
    INC DI
    ADD BX,[DI]

教授希望我们将以Value1开头的双字添加到以VALUE2开头的双字中,然后将其存储为结果之一。我一直试图在网上和书上寻找帮助,但我已经被困了一个多小时了。有什么帮助吗?代码是我在翻阅这本书时写的,我怀疑它是否正确,但它是我目前所拥有的

你必须先添加单词,然后再添加其他单词

请尝试使用以下代码:

d dd 1111111
d1 dd 2222222
d2 dd ?

lea bx,op1
mov ax,[bx]
mov dx,[bx+2]
lea bx,op2
add ax,[bx]
adc dx,[bx+2]  ;add two word and carry
lea bx,d
mov [bx],ax
mov 2[bx],dx

如果您只是在寻找提示:查找
ADC
(使用进位添加)并考虑值的地址(提示:
INC SI
/
INC DI
不太正确)。但是ADC命令不是添加了两个寄存器和进位吗?我有点搞不清楚这到底是怎么回事。让我困惑的是价值观的地址。我通常处理ex:Value1=0025H,value2=0026H,当它们都被抛出到同一个值中时,我不知道如何访问它们。这是我在classVALUE1期间从未理解的事情之一,它等于
16240153H
,并且作为字节值
53H
01H
24H
16H
(因为x86是一种体系结构)存储在内存中。这是你遇到困难的部分吗?嗯,把Value1称为MOV AX,[Value1]和MOV BX,[Value1+2]我应该把这两个值都放在不同的寄存器中,然后我想我可以随心所欲地处理它们