Tema 2 de Lab LENGUAJE ENSAMBLADOR Un programa
Tema 2 de Lab LENGUAJE ENSAMBLADOR • Un programa en lenguaje ensamblador consiste en un conjunto de enunciados. Los dos tipos de enunciados o líneas de programación son: • 1. - Instrucción, tal como MOV y ADD, que el ensamblador traduce a código objeto. • 2. - Directiva, que indican al ensamblador que realice una acción especifica, como definir un elemento de dato.
• ENUNCIADO O LINEA DE PROGRAMACIÓN: [Etiqueta] <Operación o directiva> [ operando (s) ] [ ; comentarios ] NOTA: Los corchetes indican una entrada opcional • ETIQUETA o IDENTIFICADOR. - Es un nombre para designar un dato y la dirección donde se encuentra dicho dato, no debe tener espacios en blanco en medio de la etiqueta. • Para definir una etiqueta se usan los directivos DW, DB. Una etiqueta puede tener los siguientes usos: Como variable. - Ejemplo: num db 65 ; A num se le asocia el valor 65. También podemos hacer: num dw 6567 H Como dirección. - En la cual puede continuar el programa: SUMA: ADD AX, DX _____________ JMP SUMA
• ENUNCIADO O LINEA DE PROGRAMACIÓN: [Etiqueta] <Operación o directiva> [ operando (s) ] [ ; comentarios ] NOTA: Los corchetes indican una entrada opcional • OPERACIÓN O DIRECTIVA. - En este campo deberá estar el nombre de la operación (Mnemónico) que el micro deberá realizar, o el nombre de una orden (directiva) que el programa ensamblador deberá ejecutar al momento de ensamblar nuestro programa. (Instrucción) Etiq 1: MOV AX, 20 H Algunas directivas serían: . Model Indica el modelo de memoria que usará. Stack Indica el tamaño del Stack o pila. Data Indica el inicio del segmento de datos. Code Indica el inicio del segmento de código. End Indica el fin del programa
• ENUNCIADO O LINEA DE PROGRAMACIÓN: [Etiqueta] <Operación o directiva> [ operando (s) ] [ ; comentarios ] NOTA: Los corchetes indican una entrada opcional • OPERANDO. - (Si existe) proporciona información para la operación que actúa sobre el. Ø Para un elemento de datos, el operando identifica su valor inicial. Por ejemplo, en la definición siguiente de un elemento de datos llamado COUNTER, la operación DB significa “definir byte”. ETIQUETA Counter OPERACIÓN DB OPERANDO COMENTARIO 0 ; define un byte con valor=0 Ø Para una instrucción un operando indica en donde realizar la operación. Una instrucción puede tener uno, dos o tal vez ningún operando. Aquí están tres ejemplos: OPERACIÓN RET INC ADD OPERANDO CX AX, 12 COMENTARIO ; Regresa ; Incrementa el registro CX ; Suma 12 al registro AX
• ESTRUCTURA DE UN PROGRAMA. • Los requerimientos mínimos para un programa escrito en lenguaje ensamblador son: . Model. STACK. DATA ___ ___. CODE ___ ___ MOV AH, 4 CH INT 21 H END SMALL 200 ; indica el modelo de memoria (SMALL) ; indica el tamaño del STACK (bytes) ; indica que la siguiente información ; deberá quedar en el segmento de datos ; indica que la siguiente información ; es el programa ejecutable ; necesario para terminar el programa ; y regresar al prompt C> ; Indica el fin del programa
• MODOS DE PROGRAMACIÓN Existen 2 tipos de programas: a). - Los programas. EXE b). - Los programas. COM Algunas de las diferencias básicas es: el tamaño del programa, la segmentación y la inicialización. Un programa. COM es mas pequeño que un programa. EXE Un programa. COM está restringido a un solo segmento de 64 Kb. El segmento de código, el segmento de datos, el segmento de stack y el segmento extra están todos traslapados en uno solo. Esto no sucede así en los programas. EXE En un programa. COM los datos están en el mismo segmento que el de código, por lo tanto la primera instrucción es un salto a donde continua el código del programa , evitando que el CPU lea los datos como si fueran instrucciones. En los programas. EXE no existe este problema ya que el segmento de código y el de datos están separados, mas sin embargo las primeras instrucciones en este tipo de programas son para obtener la dirección en donde el sistema operativo guardo los datos, y cargársela al registro DS. MOV AX, @ DATA MOV DS, AX
- Slides: 13