es gibt in ASM keine richtigen Varriablen. Du lädst die Offset der Speicherstelle in AX. Den inhalt musst du mit hilfe eines Pointers laden. Das Prinzip nochmal aufgedröselt:
Code:
varriable db 0
mov ax,varriable
Der Name "varriable" ist nur ein Label welches vom Assembler in eine Adresse (im Realmode Offset da segment

ffset) umwandelt. In ASM gibt es keine Varriablen nur Speicherstellen und Register. Wenn du den inhalt der speicherstelle "Varriable" in AX verschieben möchtest geht das so:
Code:
varriable db 'a'
mov ax,[varriable]
Jetzt ist ax='a'
vorhin beinhaltete AX eine adresse.
Zu dem >Rest aus der exe datei: Exe ist vom Aufbau sehr viel Komplexer als ein einfaches Binäres Format. Windows hat ein tool um exe in Binärdateien zu convertieren (exe2bin).
Diese bringt dir jedoch nix da du in deinem System (wenn ich das richtig verstanden habe ) a: noch im realmode bist und die Aktuell gängigen Windows Aplikationen 32bit code enthalten
b: Du in deinem OS die Windows API nicht implementiert hast.
Wenn du Infos zu OSdev oder ASM haben willst kannst dich auch dierekt bei mir per PM melden

LG
Linux best Friend