Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad16 1230595336990983 1
Unidad16 1230595336990983 1
CONTINUACION
DWORD y SDWORD
Valor1 DWORD 12345678h; sin signo Valor2 SDWORD -2147483648; con signo Valor3 DWORD 20 DUP(?) Versiones viejas del ensamblador usan la directiva DD para definir palabras dobles con y sin signo. Valor1 DD 12345678h; sin signo valor2 DD -2147483648; con signo
Lista
DWORD 1, 2, 3, 4, 5; arreglo de
palabras dobles
QWORD y TBYTE
QWORD designa localidades para valores de 8 bytes (4 palabras). Valor1 QWORD 1234567812345678h Usted puede usar DQ por compatibilidad con ensambladores viejos. TBYTE designa localidades para valores de 10 bytes (enteros de 80 bits). Se puede usar DT por compatibilidad con ensambladores viejos. Valor1 TBYTE 1000000000123456789Ah
Constantes Simblicas
Una constante simblica se define asociando un identificador (un smbolo) con una expresin entera o con texto. A diferencia de una variable, la cual reserva memoria, una constante simblica no usa memoria. Las constantes simblicas se usan solamente durante el ensamblado del programa, ellas no cambian durante la ejecucin del programa (runtime).
Directiva =
La directiva = asocia el nombre de un smbolo con una expresin entera. La sintaxis es: nombre = expresin contador = 500 mov ax, contador lo que se genera y ensambla es mov ax, 500
Directiva =
esc_key = 27 mov al, esc_key Contador = 100 arreglo DWORD contador DUP(0) El smbolo definido con = puede ser redefinido cualquier nmero de veces: CNT = 5 mov al, CNT ; AL = 5 CNT = 10 mov al, CNT ; AL = 10 CNT = 100 mov al, CNT ; AL = 100
Directiva EQU
La directiva EQU asocia el nombre de un smbolo con una expresin entera o con texto. Hay tres formatos: nombre EQU expresin nombre EQU smbolo nombre EQU <texto> En el primer formato, expresin debe ser una expresin entera vlida. En el segundo formato, smbolo es el nombre de un smbolo previamente definido con = o EQU. En el tercer formato cualquier texto puede aparecer dentro de <>. Cada vez que el ensamblador encuentra nombre sustituye el valor entero o el texto por el smbolo.
Ejemplos de EQU
EQU es muy til para definir cualquier valor que no evala a entero. Por ejemplo: PI EQU <3.1415926> matriz1 EQU 10*10 matriz2 EQU <10*10> M1 WORD matriz1 M2 WORD matriz2 El ensamblador genera: M1 WORD 100 M2 WORD 10*10 BBB EQU AA + 5 BBB EQU AA + 10: ilegal
MAS DIRECTIVAS
Directiva TITLE [lnea de texto]: marca la lnea entera como comentario, permite poner ttulo al programa.
Ejemplo:
Directiva INCLUDE [nombre archivo]: permite usar y copiar definiciones necesarias e informacin de configuracin desde un archivo de texto.
SEGMENT - ENDS
El formato general para un segmento es:
nombre SEGMENT [align] [combine] [class]
..
nombre ENDS Todos los operandos o atributos son opcionales. Estas dos directivas definen segmentos completos.
ORG y ASSUME
La directiva ORG [address] le dice al ensamblador que inicie la generacin de cdigo a partir del desplazamiento de direccin indicado por [address]. Se ubica inmediatamente despus de la directiva que define un segmento. ORG 100H La directiva ASSUME le dice al ensamblador los nombres que han sido escogidos para los segmentos de datos, cdigo, extra de datos y pila. Se ubica despus de la directiva segment code. Assume cs:code_sg, ds:data_sg, ss:stack_sg
PROC
.. .. ret
FAR (o NEAR);
nombre
ENDP
Modelos de Memoria del Ensamblador Cada modelo define la manera como un programa
se almacena en la memoria del sistema. Por ejemplo, el modelo Tiny se usa para crear archivos .COM en lugar de archivos .EXE Los archivos .COM son diferentes porque todos los datos y cdigo calzan en un solo segmento y usan como origen la direccin 100H. Los archivos .COM se ejecutan ms rpido que los archivos .EXE. Para la mayora de las aplicaciones se usa los archivos .EXE y el modelo de memoria SMALL.
principal codesg
segment para code proc far assume cs: codesg, ds: datasg push ds mov ax,0 push ax mov ax, datasg mov ds,ax ;************************************************* mov ax, dataA add ax, dataB mov datoC, ax mov ax, 4c00h int 21h ret endp ends end principal
Ejemplo
title Programa para mover datos en memoria datasg segment para data ;Definicin de constantes usadas en el programa n=16 tabla1=100h tabla2=120h datasg ends codesg segment para code principal proc far assume cs:codesg, ds: datasg ;aqu instrucciones de inicializacin ;Inicializar puntero fuente y puntero destino mov si, tabla1 mov di, tabla2 mov cx, n ; Inicializar contador proxnum: mov ah, [si] mov [di], ah inc si inc di dec cx jnz proxnum aqu: jmp aqu ret principal endp codesg ends end principal
Interface DOS-BIOS
PROGRAMAS DE APLICACION
HARWARE
EL ROM-BIOS
El ROM-BIOS (Basic Input Output System) es parte del sistema de control en ROM de una IBM PC o compatible, provee los servicios de entrada y salida bsicos para la operacin de un computador. BIOS es una coleccin de procedimientos o subrutinas que implementan funciones especficas tales como: leer caracteres desde el teclado, escribir caracteres en pantalla, leer informacin desde un disco, etc.. Los servicios de BIOS ms importantes son: Servicios para perifricos. Interrupcin Uso 10H Despliegue de datos en pantalla 13H Control de diskettes 14H Control puertos seriales 15H Sevicios para Caseteras 16H Servicios Estndares de Teclado 17H Servicios para Control de impresora
EL ROM-BIOS
Servicios del estado de dispositivos Interrupcin Uso 11H Determinacin de Equipos 12H Determinacin de Memoria Servicio Hora / Fecha Interrupcin Uso 1AH Servicio de Hora y Fecha Servicio de Impresin de pantalla Interrupcin Uso 05H Imprimir Pantalla Servicios Especiales Interrupcin Uso 18H Activa ROM Basic 19H Activa Subrutina bootstrap start-up
Funcin 00H: Selecciona Modo de Video AH = 00H AL = # de modo Ejemplo: AL = 03H pantalla color tipo texto 25 filas X 80 columnas Funcin 01H: Fija tamao de Cursor. AH = 01H CH = (bits 4-0) = lnea inicial (0) CL = (bits 4-0) = lnea final (13 monocromtico, 7 para color) Funcin 02H: Posicin del Cursor AH = 02H BH = # pgina (normalmente 0) DH = # de fila DL = # de columna Funcin 06H: Buscar con avance de pgina AH = 06H AL = # filas para buscar(0 borra ventana) Salida: desplaza la pantalla de abajo BH = atributo de caracteres hacia arriba. Las lneas en blanco llenan CH = fila superior para buscar la parte inferior utilizando el atributo carcter cargado en BH. El atributo CL = Columna izquierda para buscar de 71H significa fondo blanco frente azul. DH = ltima fila para buscar DL = columna derecha para buscar
Byte Atributo
El byte atributo tiene el siguiente formato:
7 BL
6 R
5 G
4 B
3 I
FIJA ALTA INTENSIDAD
2 R
1 G
0 B
BACKGROUND
FOREGROUND
Despliegue de Colores
20 14 06
M 4D
A 41
N 4E
U 55
E 45
L 4C
CR 0D 20 20
..