Yo sé que el código de C:
Código
unsigned int a; int main() { a = 1; return 0; }
Se puede traducir a asm i386 como:
a dw 0
jmp start
start:
mov a, 1
ret
Pero un código así:
Código
unsigned int a; int main() { int b = 0; b = 1; a = 1; return 0; }
Si las variables globales se declaran
<Nombre> dw <valor>
Como se declara una local ya que se declara metiéndola en el stack?, Así?:
A dw 0
jmp start
start:
mov a, 0
;Así se declararía la variable (b)?
mov ax, 0
push ax
;Y cuando se quisiera acceder a ella se haría algo asi?:
mov ss:[bp+sp], 1; b = 1
Pd: necesito aprender sobre compiladores...
Saludos