Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lenguaje Ensamblador
INDICE
UNIDAD VI PROGRAMACION HIBRIDA ........................................................................ 3 4.1 Directivas para Compilacin Hibrida ........................................................................... 3 4.2 Funciones en Lenguaje Ensamblador ........................................................................... 3 4.2. Funciones ensamblador ............................................................................................... 5 INT 21H.......................................................................................................................... 5 4.3 Bloques en Lenguaje Ensamblador .............................................................................. 8 4.4 Operadores Lenguaje Ensamblador .............................................................................. 9 Operadores Aritmticos .................................................................................................. 9 Operadores Lgicos ........................................................................................................ 9 Operadores relacionales ................................................................................................ 10 Operadores de retorno de valores ................................................................................. 10 Operador OFFSET ........................................................................................................ 10 Operador TYPE ............................................................................................................ 10 Operadores SIZE y LENGTH ...................................................................................... 10 Operadores MASK y WIDTH: ..................................................................................... 10 Operadores de Atributos ............................................................................................... 11 4.5 Integrar mdulos de ensamblador en lenguajes de alto nivel ..................................... 11
Turbo Pascal permite escribir procedimientos y funciones en cdigoensamblador e incluirlas como parte de los programas en lenguaje Pascal; paraesto, Turbo Pascal cuenta con dos palabras reservadas: Assembler y Asm.
Assembler permite indicarle a Turbo Pascal que la rutina oprocedimiento que se est escribiendo est totalmente escrita en cdigoensamblador. Por otro lado, Asm nos permite incluir bloques de instruccionesen lenguaje ensamblador en cualquier parte del programa sin necesidad deescribir procedimientos completos en ensamblador. Ejemplo de un procedimiento hibrido: Procedure Limpia_Pantalla; Assembler; AsmMov AX,0600h ; procedimiento Clr Scr de la unidad CRT de TurboPascal Mov BH,18h Mov CX,0000h Mov DX,184Fh Int 10h End;
; El programa solicita que se introduzcan dos nmeros, despus calcula la suma por medio de la instruccin Add de ensamblador y finalmente imprime el resultado en la pantalla. ; realiza la suma de dos cantidades enteras (N1 y N2) introducidas previamente por el usuario, despus almacena el resultado en la variable Res y finalmente presenta el resultado en la pantalla.
Program hibrido; Uses Crt; Var N1,N2,Res : integer; Begin Writeln(Introduce un nmero: ); Readln(N1); Writeln(Introduce un nmero: ); Readln(N2); Asm Mov AX,N1; Add AX,N2; Mov Res,AX End; Writeln(El resultado de la suma es: ,Res); Readln; End
INT 21H Funcin 0AH Leer cadena de smbolos desde teclado y su cdigo se almacena al buffer
SMALL: Se utiliza en aplicaciones pequeas. Los segmentos de cdigo y datos son diferentes y no se solapan. Por ello, hay 64 kb para cdigo y otros 64 Kb a repartir entre datos y pila. MEDIUM: Este modelo es ideal para programas largos que no manejan demasiados datos. Se utilizan punteros largos para el cdigo (que puede extenderse hasta 1 Mb) y cortos para los datos: la pila y los datos juntos no pueden exceder de 64 Kb. COMPACT: Al contrario que el anterior, este modelo es el apropiado para los programas pequeos que emplean muchos datos. Por ello, el programa no puede exceder de 64 Kb aunque los datos que controla pueden alcanzar el Mb, ya que los punteros de datos son de tipo far por defecto. LARGE: Empleado en las aplicaciones grandes y tambin por los programadores de sistemas que no tienen paciencia para andar forzando continuamente el tipo de los punteros (para rebasar el lmite de 64 Kb). Tanto los datos como el cdigo pueden alcanzar el Mb, aunque no se admite que los datos estticos ocupen ms de 64 Kb. Este modo es el que menos problemas da para manejar la memoria, no siendo quiz tan lento y pesado como indica el fabricante. HUGE: Similar al anterior, pero con algunas ventajas: por un lado, todos los punteros son normalizados automticamente y se admiten datos estticos de ms de 64 Kb. Por otro, y gracias a esto ltimo, es factible manipular bloques de datos de ms de 64 Kb cada uno, ya que los segmentos de los punteros se actualizan correctamente. Sin embargo, este modelo es el ms costoso en tiempo de ejecucin de los programas.
Operadores Aritmticos Pueden emplearse libremente (+), (-), (*) y (/). En este ltimo caso la divisin es siempre entera. Tambin se admiten los operadores MOD (resto de la divisin) y SHL/SHR.
Operadores Lgicos Pueden ser el AND, OR, XOR y NOT. Realizan las operaciones lgicas en las expresiones
Operadores relacionales Devuelven condiciones de cierto (0FFFFh o 0FFh) o falso (0) evaluando una expresin. Pueden ser: EQ (igual), NE (no igual), LT (menor que), GT (mayor que), LE (menor o igual que), GE (mayor o igual que)
Operadores de retorno de valores Operador SEG: devuelve el valor del segmento de la variable o etiqueta, silo se puede emplear en programas de tipo EXE.
Operador TYPE Devuelve el modo de la expresin indicada en un byte. El bit 0 indica modo (relativo al cdigo) y el 1 modo (relativo a datos), si ambos bits estn inactivos significa modo absoluto. El bit 5 indica si la expresin es local (0 si est definida externamente o indefinida); el bit 7 indica si la expresin contiene una referencia externa. El TASM utiliza tambin el bit 3 para indicar algo que desconozco. Este operador es til sobre todo en las macros para determinar el tipo de los parmetros.
Devuelven el tamao (en bytes) o el no de elementos, respectivamente, de la variable indicada (definida obligatoriamente con DUP)
Operadores MASK y WIDTH: Informan de los campos de un registro de bits (base RECORD).
Operadores de Atributos Operador PTR: redefine el atributo de tipo (BYTE, WORD, DWORD, QWORD, TBYTE) o el de distancia (NEAR o FAR) de un operando de memoria. Por ejemplo, si se tiene una tabla definida de la siguiente manera.