J'ai lu la documentation de Fasm, mais je ne peux pas comprendre cela. Dans Nasm Je voudrais tout d'abord déclarer une struct dans « .bss » puis définir dans « .data »:A propos de la déclaration et de l'initialisation d'une structure dans Fasm assembly
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
Comment puis-je faire en FASM exactement?
; 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) Premièrement, est-ce correct? Ou devrais-je utiliser les macros "sturc {...}" Si oui, comment exactement?
2) Deuxièmement, comment puis-je l'initialiser dans ".data"?
3) aussi il y a une question dans mon code
Notez qu'il est une application pour Linux 64
Je recommande le conseil d'administration mesage FASM https: //board.flatassembler .net pour une meilleure réponse possible – Slai
Je ne sais pas nasm, mais habituellement "rb/rw/rd" ne "réserve" qu'un octet/mot/double mot, ne le touchant pas du tout (non initialisé). il en va de même pour "db?/dw?/dd?". Pour l'initialiser, vous devez utiliser "valeur db/dw/dd", par ex. 'dw 2000' (mot avec VALUE 2000) ou' db 20' (octet 20). 'rw 2000' réserverait un bloc de 2000 mots – Tommylee2k
@Torito Je ne suis pas familliar avec tous les assmblers, donc je ne généralise pas. Je ne peux que supposer que c'est la même chose pour tous (la plupart?) D'entre eux – Tommylee2k