section .data
msg db 'Value of rcx: ', 0 ; Mensagem para ajudar na depuração
len equ $ - msg ; Tamanho da mensagem
section .text
global _start
_start:
; Comparação entre rax e rbx
mov rax, 4 ; Coloca 4 em rax
mov rbx, 4 ; Coloca 4 em rbx
cmp rax, rbx ; Compara rax com rbx
jz iguais ; Se forem iguais, salta para 'iguais'
mov rcx, 2 ; Se não forem iguais, coloca 2 em rcx
jmp fim ; Salta para 'fim'
iguais:
mov rcx, 7 ; Se forem iguais, coloca 7 em rcx
fim:
; Imprimir a mensagem
mov rax, 1 ; Syscall sys_write
mov rdi, 1 ; File descriptor 1 (stdout)
mov rsi, msg ; Mensagem a ser impressa
mov rdx, len ; Tamanho da mensagem
syscall ; Chama a syscall para imprimir a mensagem
; Verifica se rcx está entre 0 e 9 (é um número de 1 dígito)
cmp rcx, 9
jae erro ; Se rcx for maior que 9, vai para erro
; Converte rcx para o caractere ASCII correspondente
add rcx, '0' ; Converte o valor de rcx (0-9) para o caractere ASCII
; Exibe o valor de rcx na tela
mov rax, 1 ; Syscall sys_write
mov rdi, 1 ; File descriptor 1 (stdout)
mov rsi, rcx ; Passa o caractere a ser impresso (em rcx)
mov rdx, 1 ; Apenas 1 byte (caractere) será impresso
syscall ; Chama a syscall para imprimir o valor de rcx
; Final do programa
mov rax, 60 ; Syscall sys_exit
xor rdi, rdi ; Código de saída 0 (sucesso)
syscall ; Chama a syscall de saída
erro:
; Se rcx estiver fora do intervalo, imprima uma mensagem de erro
mov rsi, erro_msg
mov rdx, erro_len
mov rax, 1
mov rdi, 1
syscall
mov rax, 60 ; Syscall sys_exit
xor rdi, rdi ; Código de saída 1 (erro)
syscall
section .data
erro_msg db 'Error: rcx value is out of bounds (0-9)', 0
erro_len equ $ - erro_msg
c2VjdGlvbiAuZGF0YQogICAgbXNnIGRiICdWYWx1ZSBvZiByY3g6ICcsIDAgIDsgTWVuc2FnZW0gcGFyYSBhanVkYXIgbmEgZGVwdXJhw6fDo28KICAgIGxlbiBlcXUgJCAtIG1zZyAgICAgICAgICAgICA7IFRhbWFuaG8gZGEgbWVuc2FnZW0KCnNlY3Rpb24gLnRleHQKICAgIGdsb2JhbCBfc3RhcnQKCl9zdGFydDoKICAgIDsgQ29tcGFyYcOnw6NvIGVudHJlIHJheCBlIHJieAogICAgbW92IHJheCwgNCAgICAgICAgICAgICAgOyBDb2xvY2EgNCBlbSByYXgKICAgIG1vdiByYngsIDQgICAgICAgICAgICAgIDsgQ29sb2NhIDQgZW0gcmJ4CiAgICBjbXAgcmF4LCByYnggICAgICAgICAgICA7IENvbXBhcmEgcmF4IGNvbSByYngKICAgIGp6IGlndWFpcyAgICAgICAgICAgICAgIDsgU2UgZm9yZW0gaWd1YWlzLCBzYWx0YSBwYXJhICdpZ3VhaXMnCiAgICAKICAgIG1vdiByY3gsIDIgICAgICAgICAgICAgIDsgU2UgbsOjbyBmb3JlbSBpZ3VhaXMsIGNvbG9jYSAyIGVtIHJjeAogICAgam1wIGZpbSAgICAgICAgICAgICAgICAgIDsgU2FsdGEgcGFyYSAnZmltJwogICAgCmlndWFpczoKICAgIG1vdiByY3gsIDcgICAgICAgICAgICAgIDsgU2UgZm9yZW0gaWd1YWlzLCBjb2xvY2EgNyBlbSByY3gKCmZpbToKICAgIDsgSW1wcmltaXIgYSBtZW5zYWdlbQogICAgbW92IHJheCwgMSAgICAgICAgICAgICAgOyBTeXNjYWxsIHN5c193cml0ZQogICAgbW92IHJkaSwgMSAgICAgICAgICAgICAgOyBGaWxlIGRlc2NyaXB0b3IgMSAoc3Rkb3V0KQogICAgbW92IHJzaSwgbXNnICAgICAgICAgICAgOyBNZW5zYWdlbSBhIHNlciBpbXByZXNzYQogICAgbW92IHJkeCwgbGVuICAgICAgICAgICAgOyBUYW1hbmhvIGRhIG1lbnNhZ2VtCiAgICBzeXNjYWxsICAgICAgICAgICAgICAgICA7IENoYW1hIGEgc3lzY2FsbCBwYXJhIGltcHJpbWlyIGEgbWVuc2FnZW0KCiAgICA7IFZlcmlmaWNhIHNlIHJjeCBlc3TDoSBlbnRyZSAwIGUgOSAow6kgdW0gbsO6bWVybyBkZSAxIGTDrWdpdG8pCiAgICBjbXAgcmN4LCA5CiAgICBqYWUgZXJybyAgICAgICAgICAgICAgICA7IFNlIHJjeCBmb3IgbWFpb3IgcXVlIDksIHZhaSBwYXJhIGVycm8KCiAgICA7IENvbnZlcnRlIHJjeCBwYXJhIG8gY2FyYWN0ZXJlIEFTQ0lJIGNvcnJlc3BvbmRlbnRlCiAgICBhZGQgcmN4LCAnMCcgICAgICAgICAgICA7IENvbnZlcnRlIG8gdmFsb3IgZGUgcmN4ICgwLTkpIHBhcmEgbyBjYXJhY3RlcmUgQVNDSUkKCiAgICA7IEV4aWJlIG8gdmFsb3IgZGUgcmN4IG5hIHRlbGEKICAgIG1vdiByYXgsIDEgICAgICAgICAgICAgIDsgU3lzY2FsbCBzeXNfd3JpdGUKICAgIG1vdiByZGksIDEgICAgICAgICAgICAgIDsgRmlsZSBkZXNjcmlwdG9yIDEgKHN0ZG91dCkKICAgIG1vdiByc2ksIHJjeCAgICAgICAgICAgIDsgUGFzc2EgbyBjYXJhY3RlcmUgYSBzZXIgaW1wcmVzc28gKGVtIHJjeCkKICAgIG1vdiByZHgsIDEgICAgICAgICAgICAgIDsgQXBlbmFzIDEgYnl0ZSAoY2FyYWN0ZXJlKSBzZXLDoSBpbXByZXNzbwogICAgc3lzY2FsbCAgICAgICAgICAgICAgICAgOyBDaGFtYSBhIHN5c2NhbGwgcGFyYSBpbXByaW1pciBvIHZhbG9yIGRlIHJjeAoKICAgIDsgRmluYWwgZG8gcHJvZ3JhbWEKICAgIG1vdiByYXgsIDYwICAgICAgICAgICAgIDsgU3lzY2FsbCBzeXNfZXhpdAogICAgeG9yIHJkaSwgcmRpICAgICAgICAgICAgOyBDw7NkaWdvIGRlIHNhw61kYSAwIChzdWNlc3NvKQogICAgc3lzY2FsbCAgICAgICAgICAgICAgICAgOyBDaGFtYSBhIHN5c2NhbGwgZGUgc2HDrWRhCgplcnJvOgogICAgOyBTZSByY3ggZXN0aXZlciBmb3JhIGRvIGludGVydmFsbywgaW1wcmltYSB1bWEgbWVuc2FnZW0gZGUgZXJybwogICAgbW92IHJzaSwgZXJyb19tc2cKICAgIG1vdiByZHgsIGVycm9fbGVuCiAgICBtb3YgcmF4LCAxCiAgICBtb3YgcmRpLCAxCiAgICBzeXNjYWxsCiAgICBtb3YgcmF4LCA2MCAgICAgICAgICAgICA7IFN5c2NhbGwgc3lzX2V4aXQKICAgIHhvciByZGksIHJkaSAgICAgICAgICAgIDsgQ8OzZGlnbyBkZSBzYcOtZGEgMSAoZXJybykKICAgIHN5c2NhbGwKCnNlY3Rpb24gLmRhdGEKICAgIGVycm9fbXNnIGRiICdFcnJvcjogcmN4IHZhbHVlIGlzIG91dCBvZiBib3VuZHMgKDAtOSknLCAwCiAgICBlcnJvX2xlbiBlcXUgJCAtIGVycm9fbXNnCg==