我想在程序集中編寫一個簡單的程序來添加和減去數字。我正在使用NASM來組裝程序。當我使用gdb評估程序時,寄存器沒有我期望的值,我無法弄清楚原因。這是我的代碼。現在,我只是想弄清楚如何將一個數字存儲到一個變量中,然後將該變量移動到一個寄存器中,因爲我的代碼甚至沒有這樣做。用匯編語言將一個數字存儲到一個變量中
SECTION .data
var1: db 0x1 ; assign 1 to var1
var2: db 0x2 ; assign 4 to var2
var3: db 0x4 ; assign 6 to var3
var4: db 0x8 ; assign 8 to var4
SECTION .bss
; empty for now
SECTION .text
global _start
_start:
nop ; keep gdb happy
mov eax, [var1] ; keep gdb happy
... more code ...
mov eax, 1 ; clean up
mov ebx, 0
int 80H
現在,當我在gdb打開我的計劃,並期待在eax中首次轉讓後,該值是0x10806,而不僅僅是爲0x1。這是爲什麼發生?
這麼簡單,然而卻是我逼瘋了一個小時...謝謝! – Sabien 2014-10-05 23:38:31