%macro scall 4
	mov rax,%1
	mov rdi,%2
	mov rsi,%3
	mov rdx,%4
	syscall
%endmacro

section .data

	m1 db 10d,"Enter a string : ", 10d,13d
	l1 equ $-m1
	
	m2 db 10d,"String you entered is : "
	l2 equ $-m2
	
    m3 db "Reversed String : "
    l3 equ $-m4
	
section .bss
	string resb 20
    string2 resb 20
    char_ans resb 50

section .text
global _start

_start:
    scall 1,1,m1,l1
    scall 0,0,string,20
    scall 1,1,m2,l2
    scall 1,1,string,20
    scall 1,1,m3,l3

    mov rsi,string
    mov rcx, 0
    
loop:
    mov al,[rsi]
    cmp al,0Ah
    je next
    inc cx
    inc rsi
    jmp loop

next:
    mov rbp,string2
    dec rsi
    add rcx,2

loop2:    
    mov ax,[rsi]
    mov [rbp],ax
    inc rbp
    dec rsi
    dec rcx
    jnz loop2

    scall 1,1,string2,20

     mov rax,60
    mov rdi,0
    syscall

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: