如何反转ASCII字符数组?

时间:2016-04-15 19:24:19

标签: linux assembly x86 reverse gas

该程序的目标是反转或反转阵列。例如,如果我有"你好,世界!"该程序应打印"!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

0 个答案:

没有答案