1
我讀過Fasm的文檔,但我弄不明白這一點。在NASM我第一次申報「的.bss」一個結構,然後在「數據」定義它:關於在Fasm程序集中聲明和初始化一個結構
section ".bss"
struc my_struct
.a resw 1
.b resw 1
.c resb 1
.d resb 1
endstruc
section ".data"
my_struct_var1 istruc my_struct
at my_struct.a, dw 123
at my_struct.b dw, 0x123
at my_struct.c db, "fdsfds"
at my_struct.d db 2222
endstruc
我怎樣才能做到這一點FASM到底是什麼?
; declaring
struct my_struct
.a rw 1
.b rw 1
.c rb 1
.d rb 1
ends
; or maybe this way?
; what's the difference between these 2?
struct my_struct
.a dw ?
.b dw ?
.c db ?
.d db ?
ends
1)首先,這是否正確?或者我應該使用宏「sturc {...}」如果是這樣,究竟如何?
2)其次,我該如何在「.data」中初始化它?
3)也有在我的代碼
注意一個問題,它是Linux的64
我會建議FASM mesage板的https://board.flatassembler .net可能更好的答案 – Slai
我不知道nasm,但通常「rb/rw/rd」只是「保留」一個字節/字/雙字,完全不觸及它(未初始化)。 「db?/ dw?/ dd?」也是一樣。要初始化它,你必須使用「db/dw/dd值」,例如'dw 2000'(單詞VALUE 2000)或'db 20'(字節20)。 'rw 2000'將保留一個2000字的塊 – Tommylee2k
@Torito我不是所有的屁股家庭,所以我沒有概括。我只能假設它們都是一樣的(大部分?) – Tommylee2k