elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  assembler complemento a1 y a2
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: assembler complemento a1 y a2  (Leído 4,476 veces)
usuario fbe

Desconectado Desconectado

Mensajes: 1


Ver Perfil
assembler complemento a1 y a2
« en: 29 Junio 2015, 02:44 am »

Hola a todos, estoy haciendo un trabajo en assembler en el que tengo que hacer sumas usando el complemento a1 y a2:
por el momento mi tp acepta bases pero quiero que no acepte una base mayor a 16 y la parte de complemento esta comentada porque ocurre un error con la linea 41 o je salida.
Les dejo mi programa hasta el momento:
quisiera que me ayudaran para que mi programa no acepte una base mayor a 16 y con la parte de complemento a1 y a2 para saber cual es el error y como podría solucionarlo.
desde ya muchas gracias por su atención.

Código
  1. #make_COM# ; create ".com" executable (DOS 1.0 compatible).
  2. org  100h ; add +100h to all addresses (required for .com file).
  3.  
  4. org 100h ; inicio de programa
  5. include 'emu8086.inc' ;Incluye funciones de libreria emu8086
  6. DEFINE_SCAN_NUM
  7. DEFINE_PRINT_STRING
  8. DEFINE_PRINT_NUM
  9. DEFINE_PRINT_NUM_UNS
  10. jmp inicio
  11.  
  12. inicio:
  13.  
  14. mov ah,00h;---------------->limpiar pantalla
  15. mov al,03h
  16. int 10h
  17.  
  18. mov ax, @data
  19. mov ds,ax
  20.  
  21. mov dx, offset esp;-------->espacios para los mensajes
  22. mov ah,09;----------------->impresion en pantalla
  23. int 21h
  24.  
  25. mov ah,09
  26. int 21h
  27.  
  28. mov dx, offset user;------->creadores del programa
  29. mov ah,09
  30. int 21h
  31.  
  32. mov dx, offset menu;------->menu principal
  33. mov ah,09
  34. int 21h
  35.  
  36. ;=====================================<comparacion para saltar
  37. mov ah,01h
  38. int 21h
  39.  
  40. cmp al,'0'
  41. je salida
  42.  
  43. cmp al,'1'
  44. je base
  45.  
  46. cmp al,'2'
  47. ;je complemento a1
  48.  
  49. cmp al,'3'
  50. ;je complemento a2
  51.  
  52. cmp al,'4'
  53. je suma
  54.  
  55.  
  56.  
  57.  
  58. ;=====================================<bloques de operaciones
  59.  
  60.  
  61. base:
  62.  
  63. mov dx, offset mensaje4;---> mensaje para pedir la base
  64.  
  65. mov ah,09h
  66. int 21h
  67. ;-------------------------->rellenado de variables
  68. call SCAN_NUM;------------->llama a la funcion scan_num q toma el numero del teclado y lo guarda en ax
  69. mov valor5,cx;------------->carga el numero a la variable
  70. ;-------------------------->muestra el mensaje
  71.  
  72.  
  73. cmp ax,16                 ;>mientras la base sea menor a 16
  74.  
  75. mov dx, offset mensaje8;--->para pedir una base menor a 16
  76.  
  77.  
  78. mov ah,00h;---------------->limpia la pantalla
  79. mov al,03h
  80. int 10h
  81.  
  82. mov dx,offset beta;-------->muestra el mensaje de salida
  83. mov ah,09
  84. int 21h
  85.  
  86. jmp inicio
  87. ;fin del bloque base
  88.  
  89. ;complemento a1:
  90.  
  91. mov dx, offset mensaje5;---> mensaje para pedir el primer numero del complemento
  92. ;mov ah,09h
  93. int 20 ;----------------->o int 21 h
  94. ;-------------------------->rellenado de variables
  95. ;call SCAN_NUM;------------->llama a la funcion scan_num q toma el numero del teclado y lo guarda en ax
  96. ;mov valor3,cx;------------->carga el numero a la variable
  97. ;-------------------------->muestra el mensaje
  98.  
  99. mov dx, offset mensaje6;---> mensaje para pedir el segundo numero del complemento
  100.  
  101. ;mov ah,09h
  102. ;int 21h
  103. ;-------------------------->rellenado de variables
  104. ;call SCAN_NUM;------------->llama a la funcion scan_num q toma el numero del teclado y lo guarda en ax
  105. ;mov valor4,cx;------------->carga el numero a la variable
  106. ;-------------------------->muestra el mensaje
  107. ;cmp ax,bx
  108. ;mov dx, offset mensaje7;--->mensaje para mostrar cual es el numero menor
  109. ; mox ax
  110. ;-------->comparar con la base
  111.  
  112. ;mov dx, offset texto_compa1
  113.  
  114. ;mov ah,00h;---------------->limpia la pantalla
  115. ;mov al,03h
  116. ;int 10h
  117.  
  118. ;mov dx,offset beta;-------->muestra el mensaje de salida
  119. ;mov ah,09
  120. ;int 21h
  121.  
  122. ;jmp inicio
  123.  
  124. ;fin del bloque complemento a1
  125.  
  126. ;complemento a2:
  127.  
  128. mov dx, offset mensaje2;---> mensaje para pedir el primer numero
  129.  
  130. ;CALL    scan_num    ; escanea y recoje el numero
  131. ;MOV     num1, CX     ;se guarda en num1:
  132. ;CALL    PTHIS        ; se guarda en num2:
  133. mov dx, offset mensaje3;---> mensaje para pedir el segundo numero
  134. ;CALL    scan_num
  135. ;MOV     num2, CX
  136.  
  137. ;CMP AX,BX
  138. ;JGE BANDERA1
  139. ;CMP AX,CX
  140. ;JGE BANDERA2
  141.  
  142. ;-------->muestra el resultado en caso de:
  143. ; la variale 1 es menor:
  144.  
  145. ;DB 13, 10, 'el numero menor es: ', 0
  146.  
  147. ;MOV     AX, num1
  148. ;CALL    print_num
  149.  
  150. ;JMP    BANDERASALIR
  151. ; BANDERA 1
  152. ;BANDERA1:
  153. ;CMP BX,CX
  154. ;JGE BANDERA2
  155.  
  156. ; muestra el resultado en caso de que la variale 2 sea menor.
  157.  
  158. ;DB 13, 10, 'el numero menor es: ', 0
  159.  
  160. ;ret
  161.  
  162. ;mov ah,00h;---------------->limpia la pantalla
  163. ;mov al,03h
  164. ;int 10h
  165.  
  166. ;mov dx,offset beta;-------->muestra el mensaje de salida
  167. ;mov ah,09
  168. ;int 21h
  169.  
  170.  
  171. ;jmp inicio
  172. ;fin del bloque de complemento a2
  173.  
  174.  
  175. suma:
  176.  
  177. mov dx, offset mensaje2;---> mensaje para pedir el primer numero
  178. mov ah,09h
  179. int 21h
  180. ;-------------------------->rellenado de variables
  181. call SCAN_NUM;------------->llama a la funcion scan_num q toma el numero del teclado y lo guarda en ax
  182. mov valor1,cx;------------->carga el numero a la variable
  183. ;-------------------------->muestra el mensaje
  184. mov dx, offset mensaje3;---> mensaje para pedir el segundo numero
  185. mov ah,09h
  186. int 21h
  187. ;-------------------------->rellenado de variables
  188. call SCAN_NUM;------------->llama a la funcion scan_num q toma el numero del teclado y lo guarda en ax
  189. mov valor2,cx;------------->carga el numero a la variable
  190.  
  191. mov dx, offset texto_suma;->muestra el resultado
  192. mov ah,09h
  193. int 21h;------------------->interrupcion pantalla
  194. ;-------------------------->suma de las variables
  195. mov ax,valor1;------------->mueve el valor de la variable a ax
  196. add ax,valor2;------------->suma entre la region ax y la variable
  197. call PRINT_NUM;------------> imprimiendo en pantalla el resultado
  198.  
  199. mov ah,00;----------------->espera por una tecla en pantalla
  200. int 16h
  201.  
  202. mov ah,00h;---------------->limpia la pantalla
  203. mov al,03h
  204. int 10h
  205.  
  206. mov dx,offset beta;-------->muestra el mensaje de salida
  207. mov ah,09
  208. int 21h
  209.  
  210. jmp inicio
  211. ;fin del bloque de suma
  212.  
  213. salida:
  214. jmp inicio:
  215. ;=============================================================================>
  216. level1:
  217. jmp inicio1:
  218. ; dimensiones del rectángulo
  219. ; ancho: 10 pixeles
  220. ; alto: 5 pixeles
  221. ; dimenciones del Cuadrado
  222. ; lados : 10 pixeles
  223. w equ 10
  224. h equ 5
  225. ; se trabajara en modo en video 13h - 320x200
  226. inicio1:
  227. mov ah, 0
  228. mov al, 13h
  229. int 10h
  230. mov ah,0ch ;ah en 0ch para que ponga los pixeles en la pantalla
  231. ; dijuja la linea superior:
  232. mov cx, 100+w ; columna
  233. mov dx, 20 ; fila
  234. mov al, 003 ; color de la figura
  235.  
  236.  
  237. ;=========================================================>
  238.  
  239.  
  240.  
  241. fin:;---------------------->fin del programa
  242. mov dx, offset beta
  243. mov ah,09
  244. int 21h
  245.  
  246. mov ah,00h
  247. mov al,03h
  248. int 10h
  249.  
  250. mov ah,00;----pausa para salir
  251. int 16h  
  252.  
  253. ret
  254. ;------------------------>
  255. user db 13,10,' franco  $'
  256. mensaje2 db 13,10,' Digite el primer numero $'
  257. mensaje3 db 13,10,' Digite el segundo numero $'
  258. menu db 13,10,' Digite 0->salir 1->base 2->complemento a1 3-complemento a2 4->suma $'
  259. menu2 db 13,10,' Digite 0->regresar  1-> $'
  260. beta db 13,10,' Saliendo $'
  261. mensaje4 db 13,10, 'digite la base $'
  262. mensaje5 db 13,10, 'primer numero del complemento $'
  263. mensaje6 db 13,10, 'segundo numero del complemento $'
  264. mensaje7 db 13,10, 'el menor es $'
  265. mensaje8 db 13,10, 'digite una base menor a 16 $'
  266. ;------------------------>variables
  267. valor1 dw ?
  268. valor2 dw ?
  269. valor3 dw ?
  270. valor4 dw ?
  271. valor5 dw ?
  272. ;------------------------>textos de resultados
  273. texto_base db 13,10,'la base es $'
  274. ;texto_complemento a1 db 13,10,'complemento a1 $'
  275. ;texto_complemento a2 db 13,10,'complemento a2  $'
  276. texto_suma db 13,10,'la suma de los valores es $'  
  277. esp db ' ',10,13,'$'
  278. ;------------------------>textos de ayuda
  279. db 13,10, '1(primer valor)+2(segundo valor)=3 $'

[NOTA DEL MODERADOR] Usa las etiquetas GeSHi para insertar código.


« Última modificación: 18 Julio 2015, 14:43 pm por Eleкtro » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Complemento Firefox que centre la página web?
Software
uhuru 0 1,679 Último mensaje 12 Julio 2010, 11:01 am
por uhuru
Traduccion de aplicacion - ¿complemento?
.NET (C#, VB.NET, ASP)
Nukita 4 2,655 Último mensaje 27 Agosto 2011, 21:58 pm
por Keyen Night
Navegacion anonima con complemento firefox
Dudas Generales
techno4 7 5,832 Último mensaje 25 Diciembre 2012, 16:15 pm
por Segadorfelix
Duda con complemento para Office !!
.NET (C#, VB.NET, ASP)
TrashAmbishion 4 2,323 Último mensaje 21 Mayo 2015, 21:51 pm
por TrashAmbishion
Sobre XBMC y el complemento p2p-streams
Foro Libre
derden32 1 1,572 Último mensaje 21 Agosto 2015, 12:49 pm
por derden32
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines