空の5整数配列xarrを1から5の数字に置き換える必要があります。コードがコンパイルされ、この最後の部分を除いて正しいと思います。私の出力は12345で、これが私の必要なものです。しかし、私は最後に一度だけprint関数を使うことになっています。出力12345は水平ではなく、垂直(1度に1つ)でなければなりません。アセンブリー80386の配列に値を挿入する方法は?
.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
フォーマットをごめんね、申し訳ありません。すべてのコードを選択し、{}ボタンをクリックします。 –
ほんとうにありがとうございました。 –
_8088_?これは(少なくとも)80386のように見えます。とにかく、あなたのコードのどこにでも 'xarr'に書き込むことはありません。 – Michael