如何在Assembly中添加两个解除引用的指针?

jexiocij  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(104)

我正在尝试掌握汇编类的窍门。所以对于这个C代码:

int a = 10;
int b = 20;
int *aPtr = &a;
int *bPtr = &b;
b += a;
*aPtr = *aPtr + *bPtr; //dereference
printf(“aPtr points to value: %d\n”, *aPtr);

***更新

我在Assembly中尝试过:

.data
    var1 DWORD 10
    var2 DWORD 20
    var3 DWORD ?
.code
    main PROC 
        mov eax, 10
        mov ebx, 20
        add ebx, eax
        mov var3, ebx
        mov eax, offset var1
        mov ebx, offset var3
        mov ecx, [eax]
        mov edx, [ebx]
        add ecx, edx
        mov var3, ecx
        INVOKE ExitProcess, 0
    main endp
end

但是我知道指针不能像那样简单地被引用和加在一起。我们也不能使用lea,所以我不知道如何在Assembly中将一个解除引用的值添加到另一个解除引用的值;我也不知道如何正确地转换printf语句。我能得到一些帮助吗?

ctrmrzij

ctrmrzij1#

您的程式码尚未使用作业的结果更新 aB 变数。
第一章,绪论。

相关问题