I am very new to assembly and was trying to create a simple program which uses jg
. Here is the code-
BITS 64
section .text
global _start
_start:
mov rdi, 1
cmp rdi, 0
jg greater
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, msg_len
syscall
mov rax, 60
mov rdi, 0
syscall
greater:
mov rax, "More!!!"
mov rdx, 10
mov [msg], rax
mov [msg_len], rdx
section .bss
msg: resb 12
msg_len: resb 1
I don't see any kind of error in it. The program even works well if jg greater
not used. For example this program works well-
BITS 64
section .text
global _start
_start:
mov rdi, 1
cmp rdi, 0
; jg greater
mov rax, "More!!!"
mov rdx, 10
mov [msg], rax
mov [msg_len], rdx
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, msg_len
syscall
mov rax, 60
mov rdi, 0
syscall
greater:
mov rax, "More!!!"
mov rdx, 10
mov [msg], rax
mov [msg_len], rdx
section .bss
msg: resb 12
msg_len: resb 1
Where is the error then? I think I must have misunderstood some concept.
Thanks in advance.