Ich muss das leere 5-Integer-Array ersetzen, Xarr mit Zahlen 1-5. Der Code kompiliert und ich glaube, es ist korrekt, außer für diesen letzten Teil. Meine Ausgabe ist jetzt 12345, was ich brauche. Allerdings sollte ich die Druckfunktion nur einmal am Ende verwenden, und der Ausgang 12345 sollte vertikal sein (einzeln), nicht horizontal.Wie fügt man Werte in ein Array in Assembly 80386 ein?
.globl _asm_main
.section .data, ""
.section .bss, ""
xarr: .fill 5, 4, 0
.section .text, ""
_asm_main:
enter $0, $0 # set up stack frame
pusha # save registers
movl $1, %edi
movl %edi, xarr(, %edi, 4)
movl xarr(, %edi, 4), %eax
call print_int
incl %edi
movl %edi, xarr(, %edi, 4)
movl xarr(, %edi, 4), %eax
call print_int
incl %edi
movl %edi, xarr(, %edi, 4)
movl xarr(, %edi, 4), %eax
call print_int
incl %edi
movl %edi, xarr(, %edi, 4)
movl xarr(, %edi, 4), %eax
call print_int
incl %edi
movl %edi, xarr(, %edi, 4)
movl xarr(, %edi, 4), %eax
call print_int
popa # restore registers
movl $0, %eax # return program status in eax
leave # restore stack frame
ret
Bitte entschuldigen Sie nicht die Formatierung, sondern beheben Sie es. Wählen Sie den gesamten Code aus und klicken Sie auf die Schaltfläche {}. –
Danke für die triviale Hilfe. –
_8088_? Das sieht (mindestens) 80386 aus. Wie auch immer, ich sehe nicht, dass du irgendwo in deinem Code an "xarr" schreibst. – Michael