用于反转输入的字符串的程序

时间:2015-12-07 17:15:49

标签: linux assembly x86 nasm reverse

我需要创建一个程序,让用户逐个字符地输入字符串,然后反向打印。 space 表示输入结束( space 应由用户输入。)

section .bss
c : resb 1
section .text
global _start
_start :
mov ecx, 0
mov edx, 0
saisie :
    push ecx    
    push edx
    mov eax,3
    mov ebx,0
    mov ecx,c
    mov edx,1
    int 80h
    mov ecx,[c] ; put the entered value in ecx
    cmp ecx,32  ; compare ecx with space.
    je espace   ;
    pop edx 
    inc edx
    pop ecx
    jmp saisie
espace :
    pop edx
    cmp edx,0 ; if counter is 0 we exit if not we print what's in stack.
    je fin
    mov eax,4
    mov ebx,1
    pop ecx
    int 80h 
    dec edx
    jmp espace
fin :
mov eax, 1
mov ebx, 0
int 80h

当我在最后输入字符和 space 时,程序只是退出而没有错误,就像它完成了它的工作一样。

任何人都可以解释这种行为以及我如何纠正它吗?

0 个答案:

没有答案