section .data
msg db 'Valor de rcx: ', 0
section .bss
num resb 2 ; Reservando 2 bytes para armazenar o valor convertido (devido ao número com 2 dígitos possíveis)
section .text
global _start
_start:
mov rax, 5 ; Move o valor 5 para o registrador rax
mov rbx, 3 ; Move o valor 3 para o registrador rbx
cmp rax, rbx ; Compara rax com rbx
jz iguais ; Se rax for igual a rbx, salta para "iguais"
mov rcx, 9 ; Se não forem iguais, move o valor 9 para rcx
jmp fim ; Salta para o rótulo "fim"
iguais:
mov rcx, 0 ; Se forem iguais, move 0 para rcx
fim:
; Imprimir a mensagem
mov rax, 1 ; Número da chamada do sistema para escrever
mov rdi, 1 ; Identificador de saída padrão (stdout)
mov rsi, msg ; Endereço da mensagem
mov rdx, 14 ; Tamanho da mensagem
syscall ; Chama o sistema para escrever
; Converte rcx (valor entre 0 e 9) para caractere ASCII e armazena em 'num'
add rcx, '0' ; Converte o número para o caractere ASCII correspondente
mov [num], rcx ; Armazena o caractere convertido no buffer 'num'
; Agora imprimir o valor de rcx como caractere
mov rax, 1 ; Número da chamada do sistema para escrever
mov rdi, 1 ; Identificador de saída padrão (stdout)
mov rsi, num ; Endereço do valor convertido em 'num'
mov rdx, 1 ; Comprimento de 1 byte
syscall ; Chama o sistema para escrever
; Finaliza o programa
mov rax, 60 ; Número da chamada do sistema para sair
xor rdi, rdi ; Código de saída 0
syscall ; Chama o sistema para sair
c2VjdGlvbiAuZGF0YQogICAgbXNnIGRiICdWYWxvciBkZSByY3g6ICcsIDAKCnNlY3Rpb24gLmJzcwogICAgbnVtIHJlc2IgMiAgICAgICAgICA7IFJlc2VydmFuZG8gMiBieXRlcyBwYXJhIGFybWF6ZW5hciBvIHZhbG9yIGNvbnZlcnRpZG8gKGRldmlkbyBhbyBuw7ptZXJvIGNvbSAyIGTDrWdpdG9zIHBvc3PDrXZlaXMpCgpzZWN0aW9uIC50ZXh0CiAgICBnbG9iYWwgX3N0YXJ0Cgpfc3RhcnQ6CiAgICBtb3YgcmF4LCA1ICAgICAgICAgIDsgTW92ZSBvIHZhbG9yIDUgcGFyYSBvIHJlZ2lzdHJhZG9yIHJheAogICAgbW92IHJieCwgMyAgICAgICAgICA7IE1vdmUgbyB2YWxvciAzIHBhcmEgbyByZWdpc3RyYWRvciByYngKICAgIGNtcCByYXgsIHJieCAgICAgICAgOyBDb21wYXJhIHJheCBjb20gcmJ4CiAgICBqeiBpZ3VhaXMgICAgICAgICAgIDsgU2UgcmF4IGZvciBpZ3VhbCBhIHJieCwgc2FsdGEgcGFyYSAiaWd1YWlzIgogICAgbW92IHJjeCwgOSAgICAgICAgICA7IFNlIG7Do28gZm9yZW0gaWd1YWlzLCBtb3ZlIG8gdmFsb3IgOSBwYXJhIHJjeAogICAgam1wIGZpbSAgICAgICAgICAgICA7IFNhbHRhIHBhcmEgbyByw7N0dWxvICJmaW0iCgppZ3VhaXM6CiAgICBtb3YgcmN4LCAwICAgICAgICAgIDsgU2UgZm9yZW0gaWd1YWlzLCBtb3ZlIDAgcGFyYSByY3gKCmZpbToKICAgIDsgSW1wcmltaXIgYSBtZW5zYWdlbQogICAgbW92IHJheCwgMSAgICAgICAgICA7IE7Dum1lcm8gZGEgY2hhbWFkYSBkbyBzaXN0ZW1hIHBhcmEgZXNjcmV2ZXIKICAgIG1vdiByZGksIDEgICAgICAgICAgOyBJZGVudGlmaWNhZG9yIGRlIHNhw61kYSBwYWRyw6NvIChzdGRvdXQpCiAgICBtb3YgcnNpLCBtc2cgICAgICAgIDsgRW5kZXJlw6dvIGRhIG1lbnNhZ2VtCiAgICBtb3YgcmR4LCAxNCAgICAgICAgIDsgVGFtYW5obyBkYSBtZW5zYWdlbQogICAgc3lzY2FsbCAgICAgICAgICAgICA7IENoYW1hIG8gc2lzdGVtYSBwYXJhIGVzY3JldmVyCgogICAgOyBDb252ZXJ0ZSByY3ggKHZhbG9yIGVudHJlIDAgZSA5KSBwYXJhIGNhcmFjdGVyZSBBU0NJSSBlIGFybWF6ZW5hIGVtICdudW0nCiAgICBhZGQgcmN4LCAnMCcgICAgICAgIDsgQ29udmVydGUgbyBuw7ptZXJvIHBhcmEgbyBjYXJhY3RlcmUgQVNDSUkgY29ycmVzcG9uZGVudGUKICAgIG1vdiBbbnVtXSwgcmN4ICAgICAgOyBBcm1hemVuYSBvIGNhcmFjdGVyZSBjb252ZXJ0aWRvIG5vIGJ1ZmZlciAnbnVtJwoKICAgIDsgQWdvcmEgaW1wcmltaXIgbyB2YWxvciBkZSByY3ggY29tbyBjYXJhY3RlcmUKICAgIG1vdiByYXgsIDEgICAgICAgICAgOyBOw7ptZXJvIGRhIGNoYW1hZGEgZG8gc2lzdGVtYSBwYXJhIGVzY3JldmVyCiAgICBtb3YgcmRpLCAxICAgICAgICAgIDsgSWRlbnRpZmljYWRvciBkZSBzYcOtZGEgcGFkcsOjbyAoc3Rkb3V0KQogICAgbW92IHJzaSwgbnVtICAgICAgICA7IEVuZGVyZcOnbyBkbyB2YWxvciBjb252ZXJ0aWRvIGVtICdudW0nCiAgICBtb3YgcmR4LCAxICAgICAgICAgIDsgQ29tcHJpbWVudG8gZGUgMSBieXRlCiAgICBzeXNjYWxsICAgICAgICAgICAgIDsgQ2hhbWEgbyBzaXN0ZW1hIHBhcmEgZXNjcmV2ZXIKCiAgICA7IEZpbmFsaXphIG8gcHJvZ3JhbWEKICAgIG1vdiByYXgsIDYwICAgICAgICAgOyBOw7ptZXJvIGRhIGNoYW1hZGEgZG8gc2lzdGVtYSBwYXJhIHNhaXIKICAgIHhvciByZGksIHJkaSAgICAgICAgOyBDw7NkaWdvIGRlIHNhw61kYSAwCiAgICBzeXNjYWxsICAgICAgICAgICAgIDsgQ2hhbWEgbyBzaXN0ZW1hIHBhcmEgc2Fpcgo=