我移植了良好的和我面臨以下組件86行: mov al, UNLOCK_DATA1 ; load al with byte for the first unlock write
db 67h ; use 32 bit addressing
mov ds:[esi], al ; write the command to flash
mov eax, FLASH_ADDRESS ; load
我收到此錯誤: loop AdderLoop
錯誤A2075:跳轉目標太遠:25字節( s) 這是一個加法器程序。 我還在學習pop和push所以也許我沒有做正確的事情,但是好像我的變量ARRAY_SIZE沒有被正確存儲? 我在過程開始時將ARRAY_SIZE存儲在哪個寄存器中,並在過程結束時將其彈回。 .386 ;identifies minimum CPU for this progra
當查看x86-64asm generated by GCC 7.1以下代碼時,我發現a的構造函數生成代碼,而b沒有構造函數的標籤。 class a {
public:
int aint;
a() { }
};
class b {
public:
int bint;
b() = default;
};
int main() {
a
我編譯: "
int x_add(int a, int b)
{
return a+b;
}
"
,並得到 "
push ebp
mov ebp,esp
mov edx,[ebp+08]
mov eax,[ebp+0c]
pop ebp
ret
"
我簡化了組裝到 "
mov eax,[esp+0c]
add eax,[esp+08]
ret
"