Variableninitialisierung
-
Hallo,
ich habe folgenden sehr einfachen Code:
segment .data summand1 dw 0x31 segment .code ..start: mov ax, [summand1] mov al, 0 ;OS-Interrupt mov ah, 4Ch int 21h
Ich habe ja oben die Variable summand1 mit 0x31 initialisiert. Doch jedes mal wenn ich mir im Debug-Modus das Register ax nach dem Befehl mov ax, [summand1] anschaue, steht da irgendein Mist drin wie z.B. 20CD. Habe ich summand1 falsch initialisiert?
Ich kompiliere das Programm mit NASM unter Windows (32 bit) und alink als Linker.
-
Schreibt man einen Hexwer in Assembler nicht als 31h? Oder ist das egal?
-
oneill5000 schrieb:
Schreibt man einen Hexwer in Assembler nicht als 31h? Oder ist das egal?
Jaein. Das hängt vom Compiler ab. Bei NASM kannst du schon "0x" schreiben.
Versuch es mal so:
segment .data summand1 dw 0x31 segment .code ..start: mov ax, @data mov ds, ax mov ax, [ds:summand1] mov al, 0 ;OS-Interrupt mov ah, 4Ch int 21h
-
Danke, es funktioniert
Statt @data muss man in NASM wohl nur data schreiben.