我在x86彙編中打印數組時出現問題。打印x86彙編列表
我想打印一個數組每行一行,並在每個循環結束時使用換行符,但似乎我嘗試使用的代碼是錯誤的。在這裏它是:
SECTION .data
Matrix:
db "00000"
db "00000"
db "01110"
db "00000"
db "00000",10
NewLine: db 10
SECTION .text
global _start
_start:
mov esi,2
mov eax,4
mov ebx,1
mov ecx,[Matrix+esi]
mov edx,5
int 80h
mov eax,4
mov ebx,1
mov ecx,NewLine
mov edx,1
int 80h
mov eax,1
mov ebx,0
int 80h
我在這個簡化的情況目的是打印矩陣的五個元素,一個換行和出口組成的第三行。我得到的輸出只是換行符。
我猜想,但我怎麼能把實際地址放在ecx中,並在改變「計數器」esi時改變它,以便分別打印不同的行? –
也許像'mov ecx,Matrix;添加ecx,esi'或'lea ecx,[Matrix + esi]'。 – MRAB
LEA正在工作,謝謝! –