section .data
msg_pedir_numero db "Por favor, ingrese un numero:", 0
msg_positivo db "El numero es positivo", 0
msg_negativo db "El numero es negativo", 0
salto_linea db 10, 0 ; Salto de línea para formateo
section .bss
numero resb 1
section .text
global _start
_start:
; Mostrar el mensaje para pedir el número
mov eax, 4 ; syscall para escritura (sys_write)
mov ebx, 1 ; stdout
mov ecx, msg_pedir_numero ; mensaje
mov edx, 26 ; longitud del mensaje
int 0x80 ; llamada al sistema
; Leer el número del usuario
mov eax, 3 ; syscall para lectura (sys_read)
mov ebx, 0 ; stdin
mov ecx, numero ; almacenar en "numero"
mov edx, 1 ; leer un byte
int 0x80 ; llamada al sistema
; Insertar salto de línea después de la entrada
mov eax, 4
mov ebx, 1
mov ecx, salto_linea
mov edx, 1
int 0x80
; Convertir el número leído de ASCII a binario
mov al, byte [numero]
sub al, '0'
; Verificar si el número es positivo o negativo
cmp al, 0 ; comparar con 0
jl negativo ; si es menor, ir a negativo
; Si es positivo
mov eax, 4 ; syscall para escritura (sys_write)
mov ebx, 1 ; stdout
mov ecx, msg_positivo
mov edx, 19 ; longitud del mensaje
int 0x80 ; llamada al sistema
jmp fin ; saltar al final
negativo:
mov eax, 4 ; syscall para escritura (sys_write)
mov ebx, 1 ; stdout
mov ecx, msg_negativo
mov edx, 19 ; longitud del mensaje
int 0x80 ; llamada al sistema
fin:
; Salir del programa
mov eax, 1 ; syscall para salida (sys_exit)
xor ebx, ebx ; estado de salida 0
int 0x80 ; llamada al sistema
c2VjdGlvbiAuZGF0YQogICAgbXNnX3BlZGlyX251bWVybyBkYiAiUG9yIGZhdm9yLCBpbmdyZXNlIHVuIG51bWVybzoiLCAwCiAgICBtc2dfcG9zaXRpdm8gZGIgIkVsIG51bWVybyBlcyBwb3NpdGl2byIsIDAKICAgIG1zZ19uZWdhdGl2byBkYiAiRWwgbnVtZXJvIGVzIG5lZ2F0aXZvIiwgMAogICAgc2FsdG9fbGluZWEgZGIgMTAsIDAgICAgICAgICA7IFNhbHRvIGRlIGzDrW5lYSBwYXJhIGZvcm1hdGVvCgpzZWN0aW9uIC5ic3MKICAgIG51bWVybyByZXNiIDEKCnNlY3Rpb24gLnRleHQKICAgIGdsb2JhbCBfc3RhcnQKCl9zdGFydDoKICAgIDsgTW9zdHJhciBlbCBtZW5zYWplIHBhcmEgcGVkaXIgZWwgbsO6bWVybwogICAgbW92IGVheCwgNCAgICAgICAgICAgICAgICAgIDsgc3lzY2FsbCBwYXJhIGVzY3JpdHVyYSAoc3lzX3dyaXRlKQogICAgbW92IGVieCwgMSAgICAgICAgICAgICAgICAgIDsgc3Rkb3V0CiAgICBtb3YgZWN4LCBtc2dfcGVkaXJfbnVtZXJvICAgOyBtZW5zYWplCiAgICBtb3YgZWR4LCAyNiAgICAgICAgICAgICAgICAgOyBsb25naXR1ZCBkZWwgbWVuc2FqZQogICAgaW50IDB4ODAgICAgICAgICAgICAgICAgICAgIDsgbGxhbWFkYSBhbCBzaXN0ZW1hCgogICAgOyBMZWVyIGVsIG7Dum1lcm8gZGVsIHVzdWFyaW8KICAgIG1vdiBlYXgsIDMgICAgICAgICAgICAgICAgICA7IHN5c2NhbGwgcGFyYSBsZWN0dXJhIChzeXNfcmVhZCkKICAgIG1vdiBlYngsIDAgICAgICAgICAgICAgICAgICA7IHN0ZGluCiAgICBtb3YgZWN4LCBudW1lcm8gICAgICAgICAgICAgOyBhbG1hY2VuYXIgZW4gIm51bWVybyIKICAgIG1vdiBlZHgsIDEgICAgICAgICAgICAgICAgICA7IGxlZXIgdW4gYnl0ZQogICAgaW50IDB4ODAgICAgICAgICAgICAgICAgICAgIDsgbGxhbWFkYSBhbCBzaXN0ZW1hCgogICAgOyBJbnNlcnRhciBzYWx0byBkZSBsw61uZWEgZGVzcHXDqXMgZGUgbGEgZW50cmFkYQogICAgbW92IGVheCwgNAogICAgbW92IGVieCwgMQogICAgbW92IGVjeCwgc2FsdG9fbGluZWEKICAgIG1vdiBlZHgsIDEKICAgIGludCAweDgwCgogICAgOyBDb252ZXJ0aXIgZWwgbsO6bWVybyBsZcOtZG8gZGUgQVNDSUkgYSBiaW5hcmlvCiAgICBtb3YgYWwsIGJ5dGUgW251bWVyb10KICAgIHN1YiBhbCwgJzAnCgogICAgOyBWZXJpZmljYXIgc2kgZWwgbsO6bWVybyBlcyBwb3NpdGl2byBvIG5lZ2F0aXZvCiAgICBjbXAgYWwsIDAgICAgICAgICAgICAgICAgICAgOyBjb21wYXJhciBjb24gMAogICAgamwgbmVnYXRpdm8gICAgICAgICAgICAgICAgIDsgc2kgZXMgbWVub3IsIGlyIGEgbmVnYXRpdm8KCiAgICA7IFNpIGVzIHBvc2l0aXZvCiAgICBtb3YgZWF4LCA0ICAgICAgICAgICAgICAgICAgOyBzeXNjYWxsIHBhcmEgZXNjcml0dXJhIChzeXNfd3JpdGUpCiAgICBtb3YgZWJ4LCAxICAgICAgICAgICAgICAgICAgOyBzdGRvdXQKICAgIG1vdiBlY3gsIG1zZ19wb3NpdGl2bwogICAgbW92IGVkeCwgMTkgICAgICAgICAgICAgICAgIDsgbG9uZ2l0dWQgZGVsIG1lbnNhamUKICAgIGludCAweDgwICAgICAgICAgICAgICAgICAgICA7IGxsYW1hZGEgYWwgc2lzdGVtYQogICAgam1wIGZpbiAgICAgICAgICAgICAgICAgICAgIDsgc2FsdGFyIGFsIGZpbmFsCgpuZWdhdGl2bzoKICAgIG1vdiBlYXgsIDQgICAgICAgICAgICAgICAgICA7IHN5c2NhbGwgcGFyYSBlc2NyaXR1cmEgKHN5c193cml0ZSkKICAgIG1vdiBlYngsIDEgICAgICAgICAgICAgICAgICA7IHN0ZG91dAogICAgbW92IGVjeCwgbXNnX25lZ2F0aXZvCiAgICBtb3YgZWR4LCAxOSAgICAgICAgICAgICAgICAgOyBsb25naXR1ZCBkZWwgbWVuc2FqZQogICAgaW50IDB4ODAgICAgICAgICAgICAgICAgICAgIDsgbGxhbWFkYSBhbCBzaXN0ZW1hCgpmaW46CiAgICA7IFNhbGlyIGRlbCBwcm9ncmFtYQogICAgbW92IGVheCwgMSAgICAgICAgICAgICAgICAgIDsgc3lzY2FsbCBwYXJhIHNhbGlkYSAoc3lzX2V4aXQpCiAgICB4b3IgZWJ4LCBlYnggICAgICAgICAgICAgICAgOyBlc3RhZG8gZGUgc2FsaWRhIDAKICAgIGludCAweDgwICAgICAgICAgICAgICAgICAgICA7IGxsYW1hZGEgYWwgc2lzdGVtYQo=