Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MÓDULO III
UNIDAD 7
Lenguaje de Máquina
http://es.wikipedia.org/wiki/Lenguaje_m%C3%A1quina
Mnemónico
http://es.wikipedia.org/wiki/Mnem%C3%B3nico
Lenguaje Ensamblador.
N=I+J+K
Para que la mejora sea más significativa, podemos hacer uso de nombres
simbólicos o mnemotécnicos de las instrucciones. El resultado es el programa
simbólico mostrado en la figura 7.1c. Cada línea sigue representando una
posición de memoria, y consta de tres campos separados por espacios. El
primer campo contiene la dirección de una posición. El segundo campo
contiene el símbolo de tres letras que representa su código de operación. Si se
trata de una instrucción que hace referencia a memoria, un tercer campo
contiene la dirección. Para memorizar un dato concreto en una posición dada,
nos inventamos una pseudoinstrucción con el símbolo DAT. Esta es
meramente un indicador de que el tercer campo de la línea contiene un número
en hexadecimal a memorizar en la posición que especifica el primer campo.
El uso de programas simbólicos hace la vida mucho más fácil, pero es aun
engorroso. En particular hay, hay que dar una dirección absoluta para cada
palabra. Un procedimiento mejor, es emplear direcciones simbólicas. Esto se
ilustra en la figura 7.1d. Cada línea sigue teniendo tres campos. El primero
sigue siendo para la dirección, pero se utiliza un símbolo en lugar de una
dirección numérica absoluta. Algunas líneas carecen de dirección, indicando
que la dirección de dicha línea es uno más que la dirección precedente. Para
las instrucciones que hacen referencia a memoria, el tercer campo contiene
también una dirección simbólica.
Dirección Contenido
101 0010 0010 0000 0001 101 LDA 201
102 0001 0010 0000 0010 102 ADD 202
103 0001 0010 0000 0011 103 ADD 203
104 0011 0010 0000 0100 104 STA 204
Conjunto de instrucciones
versiones casi idénticas del conjunto de instrucciones x86, pero tiene diseños
internos completamente opuestos.
http://es.wikipedia.org/wiki/Conjunto_de_instrucciones
Algunos de los aspectos más básicos relativos al diseño son los siguientes:
El Intel 80286 (llamado oficialmente iAPX 286, también conocido como i286 o
286) es un microprocesador de 16 bits de la familia x86, que fue lanzado al
mercado por Intel el 1 de febrero de 1982. Las versiones iniciales del i286
funcionaban a 6 y 8 MHz, pero acabó alcanzando una velocidad de hasta 20
MHz. El i286 fue el microprocesador más empleado en los IBM PC y
compatibles entre mediados y finales de los años 80.
El i286 funciona el doble de rápido por ciclo de reloj que su predecesor (el Intel
8086) y puede direccionar hasta 16 Mbytes de memoria RAM, en
contraposición a 1 Mbyte del i8086. En máquinas DOS, esta memoria adicional
solo podía ser accedida a través de emulación de memoria extendida. De todos
modos, pocos ordenadores basados en el i286 tuvieron más de 1 Mbyte de
memoria.
http://es.wikipedia.org/wiki/Intel_80286
; HOLA.ASM
; Programa clasico de ejemplo. Despliega una leyenda en pantalla.
STACK SEGMENT STACK ; Segmento de pila
DW 64 DUP (?) ; Define espacio en la pila
STACK ENDS
• Las últimas dos instrucciones del segmento CODE usa la función 4CH
de MS-DOS para regresar el control al sistema operativo. Existen
muchas otras formas de hacer esto, pero ésta es la más recomendada.
5.- El ejemplo 7.2 muestra la importancia del uso de las directivas PUBLIC y
EXTRN en la programación modular.
SUBMODULO: TASK.ASM
NAME TASK
PUBLIC PRINT
EXTRN EXIT:NEAR
Ejercicios propuestos
1.- Codifique una rutina en el lenguaje ensamblador del 80286 que permita el
ingreso de caracteres, verificando si se ha oprimido una tecla pero sin
esperar que ocurra. Si esto ha ocurrido entonces devuelve su codificación
ASCII en un registro; en caso contrario devuelve cero.
2.- Considere una cadena como una secuencia de caracteres terminada por un
byte cero, y se requiere calcular su longitud.
Consulta en la Web
http://proton.ucting.udg.mx/dpto/maestros/mateos/novedades/ensamblador/68H
C11.html:Contiene información interesante relacionada con el lenguaje
ensamblador.
Ejercicios de Autoevaluación
1.- Desarrolle un procedimiento llamado SUMS, que permita sumar el valor del
contenido de los registros BX, CX y DX con el contenido de AX. Utilice la
definición de procedimiento cercano (NEAR).
95
.MODEL TINY
.CODE
STARTUP
MOV BX, OFFSET DISP
MOV DL, ‘O’
CALL BX0
MOV DL, ‘K’
CALL BX
.EXIT
END