该程序的目标是反转或反转阵列。例如,如果我有"你好,世界!"该程序应打印"!dlrow,olleH"。 但不是这样做,程序打印:"!dlrow world!"。有人可以向我解释原因吗?
到目前为止我的代码是:
.data
msg: .ascii "Hello, world!\n"
len = . - msg
_start:
movl $msg, %eax
movl $len, %ebx
dec %ebx
dec %ebx
save:
movb msg(%ebx), %dl
mov %dl, (%eax)
inc %eax
dec %ebx
jnz save
movl $len,%edx
movl $msg,%ecx
movl $1,%ebx
movl $WRITE,%eax # pedir write ao sistema
int $LINUX_SYSCALL # chama o sistema
movl $0,%ebx
movl $EXIT,%eax # pedir exit ao sistema
int $LINUX_SYSCALL # chama o sistema