Ensamblador - duda sobre un programa

   
Vista:

duda sobre un programa

Publicado por Maya (2 intervenciones) el 01/09/2008 23:05:45
Estoy intentando hacer un programa: cojo un numero BCD compacto de una tabla ordeno sus partes, lo descompacto y lo meto en otra tabla, llamada descompactados... la duda es que no entiendo muy bien a lo que se refiere compactar y descompactar... si me pudierais echar una mano lo antes posible...
Chao
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:duda sobre un programa

Publicado por MSH (121 intervenciones) el 02/09/2008 00:43:11
Saludos:

Cuando se refieren a desempaquetar un número BCD, se refiere a convertirlo de su representación ASCII a su representación binaria. La acción de empaquetamiento, hace lo contrario, es decir, pasa el número de su representación binaria a su representación en ASCII

Un ejemplo:
...

mov ah,08h ;una petición para introducir ASCII del teclado
int 21h

almacena en el registro "al" el caracter ASCII , suponemos que tecleaste el 1 (valor 31H)

ahora para "desempaquetarlo", es decir, para usarlo como número (no como ASCII), por lo general se hace una resta o una función xor

sub al,30h o bien xor al,30h cualquiera de las operaciones anteriores te regresa el 01H

Para "empaquetar" un número se le suma a este el 30H o bien se hace una función or

Sin embargo, hay otro método que permite manejar los ASCII diectamente como números, son:

AAA ajuste despues de sumar
AAS ajuste despues de restar
AAM ajuste despues de multiplicar
AAD ajuste despues de dividir

En el libro de Peter Abel, en el capítulo 14 trata este concepto.

Espero haberme dado a entender
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar