fork download
  1. ; Programa para pedir 2 numeros de una cifra y realizar suma, resta, multiplicacion y division
  2.  
  3. section .data
  4. msg1 db "Ingrese el primer numero: "
  5. long1 equ $ - msg1
  6.  
  7. msg2 db "Ingrese el segundo numero: "
  8. long2 equ $ - msg2
  9.  
  10. msg_suma db "Suma: "
  11. long_suma equ $ - msg_suma
  12.  
  13. msg_resta db "Resta: "
  14. long_resta equ $ - msg_resta
  15.  
  16. msg_mult db "Multiplicacion: "
  17. long_mult equ $ - msg_mult
  18.  
  19. msg_div db "Division: "
  20. long_div equ $ - msg_div
  21.  
  22. salto db 10
  23.  
  24. section .bss
  25. entrada resb 2
  26. num1 resb 1
  27. num2 resb 1
  28. salida resb 1
  29.  
  30. section .text
  31. global _start
  32.  
  33. _start:
  34. ; 1. Pedir primer numero
  35. mov eax, 4
  36. mov ebx, 1
  37. mov ecx, msg1
  38. mov edx, long1
  39. int 0x80
  40.  
  41. ; 2. Leer primer numero
  42. mov eax, 3
  43. mov ebx, 0
  44. mov ecx, entrada
  45. mov edx, 2
  46. int 0x80
  47.  
  48. ; Convertir primer numero a entero
  49. mov al, [entrada]
  50. sub al, '0'
  51. mov [num1], al
  52.  
  53. ; 3. Pedir segundo numero
  54. mov eax, 4
  55. mov ebx, 1
  56. mov ecx, msg2
  57. mov edx, long2
  58. int 0x80
  59.  
  60. ; 4. Leer segundo numero
  61. mov eax, 3
  62. mov ebx, 0
  63. mov ecx, entrada
  64. mov edx, 2
  65. int 0x80
  66.  
  67. ; Convertir segundo numero a entero
  68. mov al, [entrada]
  69. sub al, '0'
  70. mov [num2], al
  71.  
  72. ; 5. OPERACION SUMA
  73. mov al, [num1]
  74. add al, [num2]
  75. add al, '0'
  76. mov [salida], al
  77.  
  78. ; Imprimir texto suma
  79. mov eax, 4
  80. mov ebx, 1
  81. mov ecx, msg_suma
  82. mov edx, long_suma
  83. int 0x80
  84.  
  85. ; Imprimir resultado suma
  86. mov eax, 4
  87. mov ebx, 1
  88. mov ecx, salida
  89. mov edx, 1
  90. int 0x80
  91.  
  92. ; Imprimir salto de linea
  93. mov eax, 4
  94. mov ebx, 1
  95. mov ecx, salto
  96. mov edx, 1
  97. int 0x80
  98.  
  99. ; 6. OPERACION RESTA
  100. mov al, [num1]
  101. sub al, [num2]
  102. add al, '0'
  103. mov [salida], al
  104.  
  105. ; Imprimir texto resta
  106. mov eax, 4
  107. mov ebx, 1
  108. mov ecx, msg_resta
  109. mov edx, long_resta
  110. int 0x80
  111.  
  112. ; Imprimir resultado resta
  113. mov eax, 4
  114. mov ebx, 1
  115. mov ecx, salida
  116. mov edx, 1
  117. int 0x80
  118.  
  119. ; Imprimir salto de linea
  120. mov eax, 4
  121. mov ebx, 1
  122. mov ecx, salto
  123. mov edx, 1
  124. int 0x80
  125.  
  126. ; 7. OPERACION MULTIPLICACION
  127. mov al, [num1]
  128. mov bl, [num2]
  129. mul bl
  130. add al, '0'
  131. mov [salida], al
  132.  
  133. ; Imprimir texto multiplicacion
  134. mov eax, 4
  135. mov ebx, 1
  136. mov ecx, msg_mult
  137. mov edx, long_mult
  138. int 0x80
  139.  
  140. ; Imprimir resultado multiplicacion
  141. mov eax, 4
  142. mov ebx, 1
  143. mov ecx, salida
  144. mov edx, 1
  145. int 0x80
  146.  
  147. ; Imprimir salto de linea
  148. mov eax, 4
  149. mov ebx, 1
  150. mov ecx, salto
  151. mov edx, 1
  152. int 0x80
  153.  
  154. ; 8. OPERACION DIVISION
  155. mov al, [num1]
  156. mov ah, 0
  157. mov bl, [num2]
  158. div bl
  159. add al, '0'
  160. mov [salida], al
  161.  
  162. ; Imprimir texto division
  163. mov eax, 4
  164. mov ebx, 1
  165. mov ecx, msg_div
  166. mov edx, long_div
  167. int 0x80
  168.  
  169. ; Imprimir resultado division
  170. mov eax, 4
  171. mov ebx, 1
  172. mov ecx, salida
  173. mov edx, 1
  174. int 0x80
  175.  
  176. ; Imprimir salto de linea
  177. mov eax, 4
  178. mov ebx, 1
  179. mov ecx, salto
  180. mov edx, 1
  181. int 0x80
  182.  
  183. ; 9. Finalizar programa
  184. mov eax, 1
  185. mov ebx, 0
  186. int 0x80
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Ingrese el primer numero: Ingrese el segundo numero: Suma: �
Resta: 0
Multiplicacion: 0
Division: 1