Я написал это базовое linux x86 сборка приложения. Я ожидаю, что он вернется когда я сделаю echo $?
однако статус всегда . Что я делаю не так?basic linux x86 минимальное число сборки неверно
.section .data
data_items:
.long 3,67,34,222,45,2,54,34,44,33,22,11,66,0
.section .text
.global _start
_start:
movl $0, %edi
movl data_items(,%edi,4), %eax
movl %eax, %ebx
start_loop:
cmpl $0, %eax
je loop_exit
incl %edi
movl data_items(,%edi,4), %eax
cmpl %ebx, %eax
jge start_loop
movl %eax, %ebx
jmp start_loop
loop_exit:
movl $1, %eax
int $0x80
Примечание: %ebx
всегда содержит код состояния, и он должен содержать минимальное значение по времени выхода.
Исправлено:
_start:
movl $0, %edi
movl data_items(,%edi,4), %ebx
start_loop:
incl %edi
movl data_items(, %edi, 4), %eax
cmpl $0, %eax
je loop_exit
cmpl %ebx, %eax
jge start_loop
movl %eax, %ebx
Вы, конечно, правы! Я надеюсь, что прочитанная мной книга скоро отлаживает отладки. – sprocket12