Crdenas
Ing. En sistemas computacionales
Lenguajes de interfaz
Unidad 2: Programacin bsica.
2.1 Ensamblador (y ligador) a utilizar.
2.2 Ciclos numricos.
2.3 Captura bsica de cadenas.
2.4 Comprobacin y prueba.
2.5 Saltos.
Profesor: Ing. Amadeo Reynoso Bolaos
Equipo:
Ensambladores modulares 32 bits o de alto nivel, son ensambladores que aparecieron como respuesta
a una nueva arquitectura de procesadores de 32bits, muchos de ellos teniendo compatibilidad hacia
atrs pudiendo trabajar con programas con estructuras d 16 bits.
Ensambladores bsicos. Son de muy bajo nivel, y su tarea consiste bsicamente en ofrecer nombres
simblicos a las distintas instrucciones, parmetros y cosas tales como los modos.
Un ligador, es un programa que enlaza todos los programas o mdulos obteniendo lo que denominamos
programa ejecutable.
Es un programa que enlaza distintos mdulos o programas que poseen subprogramas. Adems incorporan
las denominadas rutinas de libreras en caso de solicitarlas el propio programa.
La generacin de un mdulo ejecutable a partir de una coleccin de procedimientos
traducidos
independientemente requiere un ligador.
http://lenguajes-interfaz-
Ejemplo:
Test AL,1
Esta instruccin prueba si el bit menos significativo de AL es 1 y Test AL,128 prueba si el bit ms
significativo de AL es 1. Por lo general estas instrucciones van seguidas de alguna de las
instrucciones de salto, las cuales se estudian en otra seccin.
COMPARACION.
LA INSTRUCCION CMP
La instruccin CMP pro lo comn es utilizada para comparar dos campos de datos, uno de los
[etiqueta:] | CMP |
cuales estn contenidos en un| registro.
El formato general para CMP es:
{registro/memoria},
{registro/memoria/inmediat
o} |
El resultado de una operacin CMP afecta la banderas AF, CF, OF, PF, SF y ZF, aunque no tiene
que probar estas banderas de forma individual. El cdigo siguiente prueba el registro BX por un
valor cero:
X CMP BX, 00 ;Compara Bx con cero
JZ B50 ;Si es cero salta aB50
. ;(Accin si es diferente de cero)
.
B50: ... ;Destino del salto, si BX es cero
Si el BX tiene cero, cmp establece ZF a 1 y puede o no cambiar la configuracin de otras
banderas. La instruccin JZ (salta si es cero) solo prueba la bandera ZF. Ya que ZF tiene 1 (que
significa una condicin cero), JZ transfiere el control (salta) a la direccin indicada por el
operando B50
Observe que la operacin compara el primer operando con el segundo; por ejemplo, el valor del
primer operando es mayor que, igual o menor que el valor del segundo operando?
LA INSTRUCCION CMPS
CMPS compara el contenido de una localidad de memoria (direccionada por DS:SI).
Dependiendo de la bandera de direccin, CMPS incrementa o disminuye tambin los registros
SI y DI en 1 para bytes, en 2 para palabras y en 4 para palabras dobles.
La operacin establece las banderas AF, CF, OF, PF, SF y ZF.
Cuando se combinan con un prefijo REP y una longitud en el CX, de manera sucesiva CMPS
puede comparar cadenas de cualquier longitud.
Pero observe que CMPS proporciona una comparacin alfanumrica, esto es, una
comparacin de acuerdo a con los valores ASCII. Considere la comparacin de dos cadenas
que contienen JEAN y JOAN. Una comparacin de izquierda a derecha, tiene el resultado
siguiente:
J:J Iguales
E:O Diferentes (E es menor)
A:A Iguales
N:N Iguales
2.5 Saltos
SALTOS
En lenguaje ensamblador existen diferentes tipos de saltos que nos ayudan a
saltar a una lnea especificada de cdigo.
JMP salta
JNBE, JA salta si no por abajo o igual
JE, JZ salta si es igual a cero
(encima)
JNE, JNZ salta si no igual a cero
JL, JNGE salta si menor que (no mayor o
JS salta si signo negativo
igual)
JNS salta si signo no negativo
JNL, JGE salta si no menor que (mayor o
JP, JPE salta si paridad par
igual)
JNP, JOP salta si paridad impar
JLE, JNG salta si menor que o igual (no
JO salta si hay capacidad excedida
mayor)
JNO salta si no hay capacidad excedida
JNLE, JG salta si no menor que o igual
JB, JNAE salta si por abajo (no encima o igual) (mayor)
JNB, JAE salta si no est por abajo (encima o igual)
JBE, JNA salta si por abajo o igual (no encima)
Bibliografa
https://
es.scribd.com/doc/134779820/Unidad-2-Lenguajes-de-Interfaz#scribd
https://prezi.com/y5nr_na4vfjr/unidad-2/