; Programa para pedir 2 numeros de una cifra y realizar suma, resta, multiplicacion y division
section .data
msg1 db "Ingrese el primer numero: "
long1 equ $ - msg1
msg2 db "Ingrese el segundo numero: "
long2 equ $ - msg2
msg_suma db "Suma: "
long_suma equ $ - msg_suma
msg_resta db "Resta: "
long_resta equ $ - msg_resta
msg_mult db "Multiplicacion: "
long_mult equ $ - msg_mult
msg_div db "Division: "
long_div equ $ - msg_div
salto db 10
section .bss
entrada resb 2
num1 resb 1
num2 resb 1
salida resb 1
section .text
global _start
_start:
; 1. Pedir primer numero
mov eax, 4
mov ebx, 1
mov ecx, msg1
mov edx, long1
int 0x80
; 2. Leer primer numero
mov eax, 3
mov ebx, 0
mov ecx, entrada
mov edx, 2
int 0x80
; Convertir primer numero a entero
mov al, [entrada]
sub al, '0'
mov [num1], al
; 3. Pedir segundo numero
mov eax, 4
mov ebx, 1
mov ecx, msg2
mov edx, long2
int 0x80
; 4. Leer segundo numero
mov eax, 3
mov ebx, 0
mov ecx, entrada
mov edx, 2
int 0x80
; Convertir segundo numero a entero
mov al, [entrada]
sub al, '0'
mov [num2], al
; 5. OPERACION SUMA
mov al, [num1]
add al, [num2]
add al, '0'
mov [salida], al
; Imprimir texto suma
mov eax, 4
mov ebx, 1
mov ecx, msg_suma
mov edx, long_suma
int 0x80
; Imprimir resultado suma
mov eax, 4
mov ebx, 1
mov ecx, salida
mov edx, 1
int 0x80
; Imprimir salto de linea
mov eax, 4
mov ebx, 1
mov ecx, salto
mov edx, 1
int 0x80
; 6. OPERACION RESTA
mov al, [num1]
sub al, [num2]
add al, '0'
mov [salida], al
; Imprimir texto resta
mov eax, 4
mov ebx, 1
mov ecx, msg_resta
mov edx, long_resta
int 0x80
; Imprimir resultado resta
mov eax, 4
mov ebx, 1
mov ecx, salida
mov edx, 1
int 0x80
; Imprimir salto de linea
mov eax, 4
mov ebx, 1
mov ecx, salto
mov edx, 1
int 0x80
; 7. OPERACION MULTIPLICACION
mov al, [num1]
mov bl, [num2]
mul bl
add al, '0'
mov [salida], al
; Imprimir texto multiplicacion
mov eax, 4
mov ebx, 1
mov ecx, msg_mult
mov edx, long_mult
int 0x80
; Imprimir resultado multiplicacion
mov eax, 4
mov ebx, 1
mov ecx, salida
mov edx, 1
int 0x80
; Imprimir salto de linea
mov eax, 4
mov ebx, 1
mov ecx, salto
mov edx, 1
int 0x80
; 8. OPERACION DIVISION
mov al, [num1]
mov ah, 0
mov bl, [num2]
add al, '0'
mov [salida], al
; Imprimir texto division
mov eax, 4
mov ebx, 1
mov ecx, msg_div
mov edx, long_div
int 0x80
; Imprimir resultado division
mov eax, 4
mov ebx, 1
mov ecx, salida
mov edx, 1
int 0x80
; Imprimir salto de linea
mov eax, 4
mov ebx, 1
mov ecx, salto
mov edx, 1
int 0x80
; 9. Finalizar programa
mov eax, 1
mov ebx, 0
int 0x80
OyBQcm9ncmFtYSBwYXJhIHBlZGlyIDIgbnVtZXJvcyBkZSB1bmEgY2lmcmEgeSByZWFsaXphciBzdW1hLCByZXN0YSwgbXVsdGlwbGljYWNpb24geSBkaXZpc2lvbgoKc2VjdGlvbiAuZGF0YQogICAgbXNnMSAgICAgICAgZGIgIkluZ3Jlc2UgZWwgcHJpbWVyIG51bWVybzogIgogICAgbG9uZzEgICAgICAgZXF1ICQgLSBtc2cxCgogICAgbXNnMiAgICAgICAgZGIgIkluZ3Jlc2UgZWwgc2VndW5kbyBudW1lcm86ICIKICAgIGxvbmcyICAgICAgIGVxdSAkIC0gbXNnMgoKICAgIG1zZ19zdW1hICAgIGRiICJTdW1hOiAiCiAgICBsb25nX3N1bWEgICBlcXUgJCAtIG1zZ19zdW1hCgogICAgbXNnX3Jlc3RhICAgZGIgIlJlc3RhOiAiCiAgICBsb25nX3Jlc3RhICBlcXUgJCAtIG1zZ19yZXN0YQoKICAgIG1zZ19tdWx0ICAgIGRiICJNdWx0aXBsaWNhY2lvbjogIgogICAgbG9uZ19tdWx0ICAgZXF1ICQgLSBtc2dfbXVsdAoKICAgIG1zZ19kaXYgICAgIGRiICJEaXZpc2lvbjogIgogICAgbG9uZ19kaXYgICAgZXF1ICQgLSBtc2dfZGl2CgogICAgc2FsdG8gICAgICAgZGIgMTAKCnNlY3Rpb24gLmJzcwogICAgZW50cmFkYSAgICAgcmVzYiAyCiAgICBudW0xICAgICAgICByZXNiIDEKICAgIG51bTIgICAgICAgIHJlc2IgMQogICAgc2FsaWRhICAgICAgcmVzYiAxCgpzZWN0aW9uIC50ZXh0CiAgICBnbG9iYWwgX3N0YXJ0Cgpfc3RhcnQ6CiAgICA7IDEuIFBlZGlyIHByaW1lciBudW1lcm8KICAgIG1vdiBlYXgsIDQKICAgIG1vdiBlYngsIDEKICAgIG1vdiBlY3gsIG1zZzEKICAgIG1vdiBlZHgsIGxvbmcxCiAgICBpbnQgMHg4MAoKICAgIDsgMi4gTGVlciBwcmltZXIgbnVtZXJvCiAgICBtb3YgZWF4LCAzCiAgICBtb3YgZWJ4LCAwCiAgICBtb3YgZWN4LCBlbnRyYWRhCiAgICBtb3YgZWR4LCAyCiAgICBpbnQgMHg4MAoKICAgIDsgQ29udmVydGlyIHByaW1lciBudW1lcm8gYSBlbnRlcm8KICAgIG1vdiBhbCwgW2VudHJhZGFdCiAgICBzdWIgYWwsICcwJwogICAgbW92IFtudW0xXSwgYWwKCiAgICA7IDMuIFBlZGlyIHNlZ3VuZG8gbnVtZXJvCiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBtc2cyCiAgICBtb3YgZWR4LCBsb25nMgogICAgaW50IDB4ODAKCiAgICA7IDQuIExlZXIgc2VndW5kbyBudW1lcm8KICAgIG1vdiBlYXgsIDMKICAgIG1vdiBlYngsIDAKICAgIG1vdiBlY3gsIGVudHJhZGEKICAgIG1vdiBlZHgsIDIKICAgIGludCAweDgwCgogICAgOyBDb252ZXJ0aXIgc2VndW5kbyBudW1lcm8gYSBlbnRlcm8KICAgIG1vdiBhbCwgW2VudHJhZGFdCiAgICBzdWIgYWwsICcwJwogICAgbW92IFtudW0yXSwgYWwKCiAgICA7IDUuIE9QRVJBQ0lPTiBTVU1BCiAgICBtb3YgYWwsIFtudW0xXQogICAgYWRkIGFsLCBbbnVtMl0KICAgIGFkZCBhbCwgJzAnCiAgICBtb3YgW3NhbGlkYV0sIGFsCgogICAgOyBJbXByaW1pciB0ZXh0byBzdW1hCiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBtc2dfc3VtYQogICAgbW92IGVkeCwgbG9uZ19zdW1hCiAgICBpbnQgMHg4MAoKICAgIDsgSW1wcmltaXIgcmVzdWx0YWRvIHN1bWEKICAgIG1vdiBlYXgsIDQKICAgIG1vdiBlYngsIDEKICAgIG1vdiBlY3gsIHNhbGlkYQogICAgbW92IGVkeCwgMQogICAgaW50IDB4ODAKCiAgICA7IEltcHJpbWlyIHNhbHRvIGRlIGxpbmVhCiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBzYWx0bwogICAgbW92IGVkeCwgMQogICAgaW50IDB4ODAKCiAgICA7IDYuIE9QRVJBQ0lPTiBSRVNUQQogICAgbW92IGFsLCBbbnVtMV0KICAgIHN1YiBhbCwgW251bTJdCiAgICBhZGQgYWwsICcwJwogICAgbW92IFtzYWxpZGFdLCBhbAoKICAgIDsgSW1wcmltaXIgdGV4dG8gcmVzdGEKICAgIG1vdiBlYXgsIDQKICAgIG1vdiBlYngsIDEKICAgIG1vdiBlY3gsIG1zZ19yZXN0YQogICAgbW92IGVkeCwgbG9uZ19yZXN0YQogICAgaW50IDB4ODAKCiAgICA7IEltcHJpbWlyIHJlc3VsdGFkbyByZXN0YQogICAgbW92IGVheCwgNAogICAgbW92IGVieCwgMQogICAgbW92IGVjeCwgc2FsaWRhCiAgICBtb3YgZWR4LCAxCiAgICBpbnQgMHg4MAoKICAgIDsgSW1wcmltaXIgc2FsdG8gZGUgbGluZWEKICAgIG1vdiBlYXgsIDQKICAgIG1vdiBlYngsIDEKICAgIG1vdiBlY3gsIHNhbHRvCiAgICBtb3YgZWR4LCAxCiAgICBpbnQgMHg4MAoKICAgIDsgNy4gT1BFUkFDSU9OIE1VTFRJUExJQ0FDSU9OCiAgICBtb3YgYWwsIFtudW0xXQogICAgbW92IGJsLCBbbnVtMl0KICAgIG11bCBibAogICAgYWRkIGFsLCAnMCcKICAgIG1vdiBbc2FsaWRhXSwgYWwKCiAgICA7IEltcHJpbWlyIHRleHRvIG11bHRpcGxpY2FjaW9uCiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBtc2dfbXVsdAogICAgbW92IGVkeCwgbG9uZ19tdWx0CiAgICBpbnQgMHg4MAoKICAgIDsgSW1wcmltaXIgcmVzdWx0YWRvIG11bHRpcGxpY2FjaW9uCiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBzYWxpZGEKICAgIG1vdiBlZHgsIDEKICAgIGludCAweDgwCgogICAgOyBJbXByaW1pciBzYWx0byBkZSBsaW5lYQogICAgbW92IGVheCwgNAogICAgbW92IGVieCwgMQogICAgbW92IGVjeCwgc2FsdG8KICAgIG1vdiBlZHgsIDEKICAgIGludCAweDgwCgogICAgOyA4LiBPUEVSQUNJT04gRElWSVNJT04KICAgIG1vdiBhbCwgW251bTFdCiAgICBtb3YgYWgsIDAKICAgIG1vdiBibCwgW251bTJdCiAgICBkaXYgYmwKICAgIGFkZCBhbCwgJzAnCiAgICBtb3YgW3NhbGlkYV0sIGFsCgogICAgOyBJbXByaW1pciB0ZXh0byBkaXZpc2lvbgogICAgbW92IGVheCwgNAogICAgbW92IGVieCwgMQogICAgbW92IGVjeCwgbXNnX2RpdgogICAgbW92IGVkeCwgbG9uZ19kaXYKICAgIGludCAweDgwCgogICAgOyBJbXByaW1pciByZXN1bHRhZG8gZGl2aXNpb24KICAgIG1vdiBlYXgsIDQKICAgIG1vdiBlYngsIDEKICAgIG1vdiBlY3gsIHNhbGlkYQogICAgbW92IGVkeCwgMQogICAgaW50IDB4ODAKCiAgICA7IEltcHJpbWlyIHNhbHRvIGRlIGxpbmVhCiAgICBtb3YgZWF4LCA0CiAgICBtb3YgZWJ4LCAxCiAgICBtb3YgZWN4LCBzYWx0bwogICAgbW92IGVkeCwgMQogICAgaW50IDB4ODAKCiAgICA7IDkuIEZpbmFsaXphciBwcm9ncmFtYQogICAgbW92IGVheCwgMQogICAgbW92IGVieCwgMAogICAgaW50IDB4ODA=