Adressierung von array-Elementen in nasm
Ich bin sehr neu auf Montage und NASM, und es gibt einen code:
SECTION .data
array db 89, 10, 67, 1, 4, 27, 12, 34, 86, 3
wordvar dw 123
SECTION .text
global main
main:
mov eax, [wordvar]
mov ebx, [array+1]
mov ebx,0
mov eax,1
int 0x80
Dann habe ich die ausführbare Datei ausführen, durch GDB eax-register wird auf den Wert 123 als gedacht, aber in ebx es gibt einige Verwirrung, anstatt der array-Elemente Wert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da bist du be-32-bit-Werte aus dem Speicher, Sie sollten erklären
array
undwordvar
mitdd
eher alsdb
/dw
so dass jeder Eintrag bekommt vier bytes:Auch die Indizierung im folgenden ist falsch:
Du wohl gemeint:
movzx eax, word [wordvar]
undmovzx ebx, byte [array+1]