我正在尝试掌握汇编类的窍门。所以对于这个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语句。我能得到一些帮助吗?
1条答案
按热度按时间ctrmrzij1#
您的程式码尚未使用作业的结果更新 a 和 B 变数。
第一章,绪论。