TODAS LAS CATEGORIAS

PARTE I. TUTORIAL ENSAMBLADOR BASICO

Fecha actualización el 2016-3-30. Fecha publicación el . Categoría: Programación, Ensamblador. Autor: Mapa del sitio

Indice de temas que encontraras en esta pagina: extensión del signo, reduciendoy aumentando el tamaño de los datos.

EXTENSIÓN DEL SIGNO

En ensamblador, todos los datos tienen un tamaño determinado. No es raro necesitar cambiar el tamaño del dato para usarlo con otro dato.

REDUCIENDO EL TAMAÑO DE LOS DATOS

Para reducir el tamaño del dato simplemente quite los bits m´as significativos del dato. Un ejemplo:

mov ax, 0034h; ax = 52 (almacenado en16 bits)

mov cl, al; cl = los 8-bits inferiores de ax

Claro está, si el número no se puede representar correctamente en el tamaño más pequeño, la reducción de tamaño no funcionaría.

Por ejemplo si AX era 0134h o 308 en decimal entonces el código anterior almacenaría en CL 34h. Este método trabaja con números con o sin signo.

Considere números con signo, si AX era FFFFh -1 como palabra, entonces CL sería FFh −1 como byte.

Sin embargo, observe que ¡esto no es correcto si el valor en AX era sin signo!. La regla para números sin signo es que todos los bits al ser quitados deben ser 0 para que la conversión sea correcta.

La regla para los números con signo es que los bits que sean quitados deben ser o todos 1 o todos 0. Además el primer bit no se debe quitar pero debe tener el mismo valor que los bits quitados. Este bit sería el nuevo bit de signo del valor más pequeño.

AUMENTANDO EL TAMAÑO DE LOS DATOS

Considere el byte hex FF. Si se extiende a una palabra, ¿Qué valor debería tener la palabra? Depende de cómo se interprete la palabra. Si FF es un byte sin signo 255 en decimal, entonces la palabra deber´ıa ser 00FF sin embargo, si es un byte con signo (−1 en decimal), entonces la palabra debería ser FFFF.

En general, para extender un número sin signo, uno hace cero todos los bits nuevos del número extendido. Así FF se convierte en 00FF. Sin embargo, para extender un número con signo uno debe extender el bit de signo. Esto significa que los nuevos bits se convierten en copias del bit de signo. Ya que el bit de signo de FF es 1, los nuevos bits deben ser todos unos, para producir FFFF.

Si el número con signo 5A 90 en decimal fue extendido, el resultado sería 005A. Existen varias instrucciones que suministra el 80386 para la extensión de los números.

Recuerde que el computador no conoce si un número está con o sin signo. Es responsabilidad del programador usar la instrucción adecuada. Para números sin signo, uno puede simplemente colocar ceros en los bits superiores usando una instrucción MOV.

Por ejemplo, para extender el byte en AL a una palabra sin signo en AX: mov ah, 0; cero los 8-bits superiores

Sin embargo, no es posible usar la instrucción MOV para convertir la palabra sin signo en AX a una palabra doble en EAX. ¿Por qu´e no? No hay manera de referirse a los 16 bits superiores de EAX con una instrucción MOV.

SIGUIENTE PAGINA PARTE II:

https://www.clasesordenador.com/tutorial-de-ensamblador-basico/pag1.html" onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;">Compartir en Google+ programacion