• Domingo 22 de Diciembre de 2024, 03:25

Autor Tema:  Sobre Los Registros Aritmeticos  (Leído 1857 veces)

tirengarfio

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Sobre Los Registros Aritmeticos
« en: Martes 19 de Febrero de 2008, 13:38 »
0
Saludos,

en este codigo que pongo aqui abajo, el acarreo de la suma se pasa a bl.

Segun he visto, el registro bl se usa en transferencias de datos entre la memoria y el procesador.

¿Por que se usa entonces bl si no estamos haciendo una transferencia entre la memoria y el procesador?¿Se podria haber usado cualquier otro registo aritmetico(bh, dl, dh...)?


Código: Text
  1.   DOSSEG
  2.   .MODEL SMALL
  3.   .STACK 100h
  4.   .DATA   ;Segmento de datos.
  5. dato1   DB 35h   ;Primer operando
  6. dato2   DB 47h   ;Segundo operando
  7. resul   DW ?   ;Para almacenar el resultado
  8.  
  9. .CODE
  10.  
  11. INICIO:
  12.   mov ax,@data
  13.  
  14.   mov ds,ax
  15.  
  16.   mov ah,dato1&#59;Primer operando
  17.  
  18.   mov al,dato2&#59;Segundo operando
  19.  
  20.   xor bl,bl&#59;Pone a cero BL. Donde se guardará el acarreo...ANTES DE LA SUMA!!!
  21.  
  22.   add al,ah&#59;Suma AL+AH y guarda el resultado en AL. CF se puede activar
  23.  
  24.   adc bl,0&#59;Esta es la manera de almacenar el valor del acarreo (CF) de la suma
  25.     ;(0 ó 1) en bl...
  26.  
  27.  
  28.   mov ah,bl&#59;En AX el resultado completo (2 bytes): SUMA + ACARREO.
  29.  
  30.   mov resul,ax&#59;Guarda el resultado
  31.   
  32. FIN:
  33.   mov ah,4ch
  34.   int 21h
  35.   END inicio
  36.  


Un saludo

Javier

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Sobre Los Registros Aritmeticos
« Respuesta #1 en: Martes 19 de Febrero de 2008, 14:40 »
0

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

tirengarfio

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Re: Sobre Los Registros Aritmeticos
« Respuesta #2 en: Martes 19 de Febrero de 2008, 19:30 »
0
Cita de: "Eternal Idol"
Se les dio la gana; podian usar 8 bits de cualquier registro general.

 


Pero por ejemplo, el enlace de de la wikipedia que me has dejado, dice que solo se puede usar CX como contador de la instruccion loop.

A pesar de esa restriccion, ¿podria entonces usar CL o CH en mi codigo en vez de BL?

Gracias

Javi

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Sobre Los Registros Aritmeticos
« Respuesta #3 en: Martes 19 de Febrero de 2008, 20:15 »
0
Cita de: "tirengarfio"
Pero por ejemplo, el enlace de de la wikipedia que me has dejado, dice que solo se puede usar CX como contador de la instruccion loop.

A pesar de esa restriccion, ¿podria entonces usar CL o CH en mi codigo en vez de BL?

Gracias

Javi

Si, esa restriccion se refiere a los loops, en ese codigo no hay ninguno.

Igual lo deberias haber probado ya, con ese codigo no tiene mucho sentido ya que no hay acarreo ... cambialos asi:

dato1   DB 35h   ;Primer operando
dato2   DB 0ffh   ;Segundo operando

Fijate cual es el resultado.

Cambia los lugares donde se usa bl por cl:
xor cl, cl
adc cl, 0
mov ah,cl

Fijate cual es el resultado.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.