Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Introducción al lenguaje ensamblador




Enviado por Pablo Turmero



    Monografias.com
    1 Objetivo General Adquirir una sólida comprensión
    del funcionamiento interno de los microprocesadores. Conocer y
    emplear eficientemente el entorno de programación del
    Lenguaje Ensamblador. Elaborar programas a nivel avanzado que
    permiten manejar eficientemente los recursos del
    microprocesador

    Monografias.com
    2 Objetivo Terminal Conocer los registros internos y la forma
    como operan en un microprocesador.

    Monografias.com
    3 Objetivo Instruccional Conocer y comprender las partes y el
    contenido de un programa fuente.

    Monografias.com
    4 COMENTARIOS EN EL LENGUAJE ENSAMBLADOR EL USO DE COMENTARIOS A
    LO LARGO DEL PROGRAMA PUEDE MEJORAR SU CLARIDAD, EN ESPECIAL EN
    EL LENGUAJE ENSAMBLADOR. UN COMENTARIO EMPIEZA CON PUNTO Y COMA
    (;) ; TODA LA LINEA ES UN COMENTARIO ADD AX,BX ; COMENTARIO EN LA
    MISMA LINEA LOS COMENTARIOS NO GENERAN CODIGO DE MAQUINA

    Monografias.com
    5 PALABRAS RESERVADAS CIERTAS PALABRAS EN LENGUAJE ENSAMBLADOR
    ESTAN RESERVADAS PARA SUS PROPOSITOS PROPIOS, Y SON USADAS SOLO
    BAJO CONDICIONES ESPECIALES. INSTRUCCIONES : MOV , ADD DIRECTIVAS
    : END , SEGMENT OPERADORES : FAR , SIZE SIMBOLOS PREDEFINIDOS :
    @DATA , @MODEL EL USO DE UNA PALABRA RESERVADA PARA UN PROPOSITO
    EQUIVOCADO PROVOCA QUE EL ENSAMBLADOR GENERE UN MENSAJE DE
    ERROR

    Monografias.com
    6 IDENTIFICADORES UN IDENTIFICADOR ES UN NOMBRE QUE SE APLICA A
    ELEMENTOS EN EL PROGRAMA. LOS DOS TIPOS DE IDENTIFICADORES SON:
    NOMBRE, QUE SE REFIERE A LA DIRECCION DE UN ELEMENTO DE DATO, Y
    ETIQUETA, QUE SE REFIERE A LA DIRECCION DE UNA
    INSTRUCCIÓN. UN IDENTIFICADOR PUEDE UTILIZAR LOS SIGUENTES
    CARACTERES LETRAS DEL ALFABETO : A – Z DIGITO : 0 – 9
    CARACTERES ESPECIALES : ? , _ , $ , @ , .

    Monografias.com
    7 INSTRUCCIONES UN PROGRAMA EN LENGUAJE ENSAMBLADOR CONSISTE EN
    UN CONJUNTO DE ENUNCIADOS. LOS DOS TIPOS DE ENUNCIADOS SON:
    INSTRUCCIONES TAL COMO MOV Y ADD, QUE EL ENSAMBLADOR TRADUCE A
    CODIGO OBJETO. DIRECTIVAS QUE INDICAN AL ENSAMBLADOR QUE REALICE
    UNA ACCION ESPECIFICA, COMO DEFINIR UN ELEMENTO DE DATO.
    SINTAXIS: [IDENTIFICADOR] OPERACIÓN [OPERANDO(S)] ;
    COMENTARIO

    Monografias.com
    8 INSTRUCCIONES EJEMPLO: [IDENTIFICADOR] OPERACION [OPERANDO(S)]
    ; COMENTARIO COUNTER DB 1 ; DIRECTIVA MOV AX , 0 ; INSTRUCCION
    INC CX ; INCREMENTA CX EN 1 RET ; RETORNA

    Monografias.com
    9 DIRECTIVAS EL LENGUAJE ENSAMBLADOR PERMITE USAR DIFERENTES
    ENUNCIADOS QUE PERMITEN CONTROLAR LA MANERA EN QUE UN PROGRAMA
    ENSAMBLA Y LISTA. ESTOS ENUNCIADOS, LLAMADOS DIRECTIVAS, ACTUAN
    SOLO DURANTE EL ENSAMBLADO DE UN PROGRAMA Y NO GENERA CODIGO
    EJECUTABLE DE MAQUINA.

    Monografias.com
    10 DIRECTIVA: PAGE Y TITLE SINTAXIS : PAGE [LONGITUD] [ , ANCHO]
    EJEMPLO: PAGE 60 , 132 ; 60 LINEAS POR PAGINA ; Y 132 CARACTERES
    ; POR LINEA LA DIRECTIVA PAGE DESIGNA EL NUMERO MAXIMO DE LINEAS
    PARA LISTAR EN UNA PAGINA Y EL NUMERO MAXIMO DE CARACTERES POR
    LINEA. SE UTILIZA LA DIRECTIVA TITLE PARA HACER QUE SE IMPRIMA UN
    TITULO EN LA LINEA 2 DE CADA PAGINA. SINTAXIS : TITLE NOMBRE
    Comentario EJEMPLO: TITLE EJERCICIO1 Mi primer programa

    Monografias.com
    11 DIRECTIVA: SEGMENT FORMATO : NOMBRE OPERACIÓN OPERANDO
    COMENTARIO NOMBRE SEGMENT [OPCIONES] ; INICIA SEGMENTO . . .
    NOMBRE ENDS ; FIN DEL SEGMENTO UN PROGRAMA ENSAMBLADO EN FORMATO
    .EXE CONSISTE EN UNO O MAS SEGMENTOS. UN SEGMENTO DE PILA DEFINE
    EL ALMACEN DE LA PILA, UN SEGMENTO DE DATOS DEFINE LOS ELEMENTOS
    DE DATOS Y UN SEGMENTO DE CODIGO PROPORCIONA UN CODIGO
    EJECUTABLE.

    Monografias.com
    12 DIRECTIVA: SEGMENT FORMATO: NOMBRE SEGMENT ALINEACION COMBINAR
    CLASE’ EL OPERANDO DE UN ENUNCIADO SEGMENT PUEDE
    TENER TRE TIPOS DE OPCIONES: ALINEACION, COMBINAR Y CLASE,
    CODIFICADAS EN ESTE FORMATO. TIPO ALINEACION: PARA. ALINEA EL
    SEGMENTO CON EL LIMITE DE UN PARRAFO, DE MANERA QUE LA POSICION
    INICIAL ES MULTIPLO DE 16. SE CONSIDERA POR DEFECTO. TIPO
    COMBINAR: STACK, COMMON, PUBLIC , AT. INDICA SI EL SEGMENTO SE
    COMBINA CON OTROS SEGMENTOS CUANDO SON ENLAZADOS DEPUES DE
    ENSAMBLAR.

    Monografias.com
    13 DIRECTIVA: SEGMENT TIPO CLASE: CODE, DATA, STACK. LA ENTRADA
    CLASE, ENCERRADA ENTRE APOSTROFES, ES UTILIZADA PARA AGRUPAR
    SEGMENTOS CUANDO SE ENLAZAN. EJEMPLO: NOMBRE SEGMENT PARA STACK
    ‘STACK’

    Monografias.com
    14 DIRECTIVA: PROC EL SEGMENTO DE CODIGO CONTIENE EL CODIGO
    EJECUTABLE DE UN PROGRAMA. TAMBIEN TIENE UNO O MAS
    PROCEDIMIENTOS, DEFINIDOS CON LA DIRECTIVA PROC. UN SEGMENTO QUE
    TIENE SOLO UN PROCEDIMIENTO PUEDE APARECER COMO SIGUE: NOMBRE
    OPERACION OPERANDO COMENTARIO NOMSEGMTO SEGMENT PARA NOMPROC PROC
    FAR ; UN PROCEDIMIENTO . ; DENTRO DEL . ; SEGMENTO DE . ; CODIGO
    NOMPROC ENDP NOMSEGMTO ENDS

    Monografias.com
    15 DIRECTIVA: PROC EL OPERANDO FAR EN ESTE CASO ESTA RELACIONADO
    CON LA EJECUCION DEL PROGRAMA. CUANDO SE SOLICITA LA EJECUCION DE
    UN PROGRAMA, EL CARGADOR DE PROGRAMAS DEL DOS UTILIZA ESTE NOMBRE
    DE PROCEDIMIENTO COMO EL PUNTO DE ENTRADA PARA LA PRIMERA
    INSTRUCCIÓN A EJECUTAR. LA DIRECTIVA ENDP, INDICA EL FIN
    DEL PROCEDIMIENTO. LA DIRECTIVA ENDS DEFINE EL FINAL DE UN
    SEGMENTO.

    Monografias.com
    16 DIRECTIVA: ASSUME UN PROGRAMA UTILIZA EL REGISTRO SS PARA
    DIRECCIONAR LA PILA, AL REGISTRO DS PARA DIRECCIONAR EL SEGMENTO
    DE DATOS Y AL REGISTRO CS PARA DIRECCIONAR EL SEGMENTO DE CODIGO.
    PARA TAL FIN SE TIENE QUE INDICAR AL ENSAMBLADOR EL PROPOSITO DE
    CADA SEGMENTO EN EL PROGRAMA: OPERACION OPERANDO ASSUME
    SS:NOMSEGPILA, DS:NOMSEGDATO, CS:NOMSEGCODIGO TAMBIEN PUEDE
    CONTENER UNA ENTRADA PARA ES. ASSUME ES:NOMSEGEXTRA

    Monografias.com
    17 DIRECTIVA: END ASI COMO ENDS FINALIZA UN SEGMENTO Y LA
    DIRECTIVA ENDP FINALIZA UN PROCEDIMIENTO. UNA DIRECTIVA END
    FINALIZA TODO EL PROGRAMA. SU FORMATO ES: OPERACION OPERANDO END
    [NOMBREPROCEDIMIENTO]

    Monografias.com
    18 COMO INICIALIZAR UN PROGRAMA (.EXE) PARA SU EJECUCION PAGE
    60,132 TITLE P04ASM1 ESTRUCTURA DE UN PROGRAMA .EXE
    ;—————————————————————————–
    STACKSG SEGMENT PARA STACK ‘STACK’ … STACKSG
    ENDS
    ;—————————————————————————–
    DATASG SEGMENT PARA ‘DATA’ … DATASG ENDS
    ;——————————————————————————
    CODESG SEGMENT PARA ‘CODE’ BEGIN PROC FAR ASSUME
    SS:STACKSG,DS:DATASG,CS:CODESG MOV AX , DATASG ; OBTIENE
    DIRECCION DEL SEGMENTO DE DATOS MOV DS , AX ; ALMACENA DIRECCION
    EN DS … MOV AX , 4C00H ; PETICION INT 21H ; SALIDA A DOS
    BEGIN ENDP CODESG ENDS END BEGIN

    Monografias.com
    19 COMO INICIALIZAR UN PROGRAMA (.EXE) PARA SU EJECUCION CUANDO
    EL DOS CARGA UN PROGRAMA .EXE DEL DISCO A LA MEMORIA PARA SU
    EJECUCION CONSTRUYE UN PSP DE 256 BYTES (100H) EN UN LIMITE DE
    PARRAFO EN MEMORIA INTERNA DISPONIBLE Y ALMACENA EL PROGRAMA
    INMEDIATAMENTE DESPUES DEL LIMITE. DESPUES EL DOS: CARGA LA
    DIRECCION DEL SEGMENTO DE CODIGO EN EL CS; CARGA LA DIRECCION DE
    LA PILA EN EL SS; Y CARGA LA DIRECCION DEL PSP EN LOS REGISTROS
    DS Y ES. EL CARGADOR DOS INICIALIZA LOS REGISTROS CS:IP Y SS:IP,
    PERO NO LOS REGISTROS DS Y ES.

    Monografias.com
    20 EJEMPLO DE UN PROGRAMA EXE PAGE 60,132 TITLE P04ASM1 (EXE)
    OPERACIONES MOVER Y SUMAR
    ;—————————————————————————–
    STACKSG SEGMENT PARA STACK ‘STACK’ DW 32 DUP(0)
    STACKSG ENDS
    ;—————————————————————————–
    DATASG SEGMENT PARA ‘DATA’ FLDA DW 250 FLDB DW 125
    FLDC DW ? DATASG ENDS
    ;——————————————————————————
    CODESG SEGMENT PARA ‘CODE’ BEGIN PROC FAR ASSUME
    SS:STACKSG,DS:DATASG,CS:CODESG MOV AX , DATASG ; SE ASIGNA
    DIRECCION DE DATASG MOV DS , AX ; EN REGISTRO DS MOV AX , FLDA ;
    MOVER 0250 A AX ADD AX , FLDB ; SUMAR 0125 A AX MOV FLDC , AX ;
    ALMACENAR SUMA EN FLDC MOV AX , 4C00H ; PETICION INT 21H ; SALIDA
    A DOS BEGIN ENDP ; FIN DE PROCEDIMIENTO CODESG ENDS ; FIN DE
    SEGMENTO END BEGIN ; FIN DE PROGRAMA

    Monografias.com
    21 COMO INICIALIZAR EN MODO PROTEGIDO EN MODO PROTEGIDO BAJO EL
    80386 Y PROCESADORES POSTERIORES, UN PROGRAMA PUEDE DIRECCIONAR
    HASTA 16 MEGABYTES DE MEMORIA. EL USO DE DWORD PARA ALINEAR
    SEGMENTOS EN DIRECCIONES DE PALABRAS DOBLES INCREMENTA LA
    VELOCIDAD DE ACCESO A MEMORIA PARA BUSES DE 32 BITS. LA DIRECTIVA
    .386 INDICA AL ENSAMBLADOR QUE ACEPTE INSTRUCCIONES QUE SON SOLO
    PARA ESTOS PROCESADORES; EL OPERANDO U$E32 INDICA QUE GENERE
    CODIGO APROPIADO PARA EL MODO PROTEGIDO DE 32 BITS.

    Monografias.com
    22 COMO INICIALIZAR EN MODO PROTEGIDO .386 NOMSEG SEGMENT DWORD
    U$E32 LA INICIALIZACION DEL REGISTRO DEL SEGMENTO DE DATOS PODRIA
    PARECERSE A ESTO, YA QUE EN ESTOS PROCESADORES EL REGISTRO DS
    TIENE UN TAMAÑO DE 16 BITS. MOV EAX , DATASEG ; OBTIENE LA
    DIRECCION DEL SEGMENTO ; DE DATOS MOV DS , AX ; LAS INSTRUCCIONES
    STI, CLI, IN Y OUT NO ESTAN DISPONIBLES EN MODO PROTEGIDO

    Monografias.com
    23 DIRECTIVAS SIMPLIFICADAS DE SEGMENTOS LOS ENSAMBLADORES DE
    MICROSOFT Y DE BORLAND PROPORCIONAN ALGUNAS FORMAS ABREVIADAS
    PARA DEFINIR SEGMENTOS. PARA USAR ESTAS ABREVIATURAS, INICIALICE
    EL MODELO DE MEMORIA ANTES DE DEFINIR ALGUN SEGMENTO. EL FORMATO
    GENERAL INCLUYENDO EL PUNTO INICIAL ES .MODEL modelo de memoria
    EL MODELO DE MEMORIA PUEDE SER: TINY , SMALL , MEDIUM , COMPACT O
    LARGE.

    Monografias.com
    24 DIRECTIVAS SIMPLIFICADAS DE SEGMENTOS LOS REQUISITOS DE CADA
    MODELO SON: MODELO Nº SEGMENTOS CODIGO Nº SEGMENTOS
    DATOS TINY * * SMALL 1 1 MEDIUM MAS DE 1 1 COMPACT 1 MAS DE 1
    LARGE MAS DE 1 MAS DE 1 PUEDE UTILIZAR CUALQUIERA DE ESTOS
    MODELOS PARA UN PROGRAMA AUTONOMO ( UN PROGRAMA QUE NO ESTE
    ENLAZADO A OTRO). EL MODELO TINY ESTA DESTINADO PARA USO
    EXCLUSIVO DE PROGRAMAS .COM, LOS CUALES TIENEN SUS DATOS, CODIGO
    Y PILA EN UN SEGMENTO.

    Monografias.com
    25 DIRECTIVAS SIMPLIFICADAS DE SEGMENTOS LOS FORMATOS GENERALES
    (INCLUYENDO EL PUNTO INICIAL) PARA LAS DIRECTIVAS QUE DEFINE LOS
    SEGMENTOS DE LA PILA, DE DATOS Y DE CODIGO SON: . STACK
    [TAMAÑO] . DATA . CODE [NOMBRE] CADA UNA DE ESTAS
    DIRECTIVAS HACEN QUE EL ENSAMBLADOR GENERE EL ENUNCIADO SEGMENT
    NECESARIO Y SU CORRESPONDIENTE ENDS.

    Monografias.com
    26 EJEMPLO PROGRAMA EXE CON DIRECTIVAS SIMPLIFICADAS PAGE 60,132
    TITLE P04ASM1 (EXE) OPERACIONES MOVER Y SUMAR
    ;—————————————————————————–
    . MODEL SMALL . STACK 64 ; SE DEFINE LA PILA . DATA FLDA DW 250
    FLDB DW 125 FLDC DW ?
    ;——————————————————————————
    . CODE ; SE DEFINE EL SEGMENTO DE CODIGO BEGIN PROC FAR MOV AX ,
    DATASG ; SE ASIGNA DIRECCION DE DATASG MOV DS , AX ; EN REGISTRO
    DS MOV AX , FLDA ; MOVER 0250 A AX ADD AX , FLDB ; SUMAR 0125 A
    AX MOV FLDC , AX ; ALMACENAR SUMA EN FLDC MOV AX , 4C00H ;
    PETICION INT 21H ; SALIDA A DOS BEGIN ENDP ; FIN DE PROCEDIMIENTO
    END BEGIN ; FIN DE PROGRAMA

    Monografias.com
    27 DIRECTIVAS .STARTUP Y .EXIT MASM 6.0 INTRODUJO LAS DIRECTIVAS
    .STARTUP Y .EXIT PARA SIMPLIFICAR LA INICIALIZACION Y TERMINACION
    DEL PROGRAMA. .STARTUP GENERA LAS INSTRUCCIONES PARA INICIALIZAR
    LOS REGISTROS DE SEGMENTOS. .EXIT GENERA LAS INSTRUCCIONES DE LA
    INT 21H, FUNCION 4CH PARA LA SALIDA DEL PROGRAMA.

    Monografias.com
    28 DEFINICION DE DATOS SINTAXIS: [NOMBRE] Dn EXPRESION NOMBRE:
    HACE REFERENCIA A UN ELEMENTO DE DATO DIRECTIVAS: DB (DEFINE
    BYTE) , DW (PALABRA) , DD (DOBLE PALABRA) , DF (PALABRA LARGA) ,
    DQ (PALABRA CUADRUPLE) , DT (DIEZ BYTES) EXPRESION: ES UN
    OPERANDO QUE PUEDE CONTENER UN SIGNO DE INTERROGACION PARA
    INDICAR UN ELEMENTO NO UTILIZADO.

    Monografias.com
    29 DEFINICION DE DATOS SINTAXIS: [NOMBRE] Dn
    CONTADOR_DE_REPETICIONES DUP [EXPRESION] DW 6 DUP (?) ; 6
    PALABRAS NO INICIALIZADAS DB 5 DUP (10) ; 5 PALABRAS CON AAAAA DB
    ‘PRIMERA PRACTICA DE ASM’ OTROS: DD DEFINE UNA
    PALABRA DOBLE DF DEFINE UNA PALABRA LARGA (6 BYTES) DQ DEFINE UNA
    PALABRA CUADRUPLE DT DEFINE DIEZ BYTES

    Monografias.com
    30 DIRECTIVA EQU NO DEFINE ELEMENTOS DE DATOS. EN LUGAR DE ESO,
    DEFINE UN VALOR QUE EL ENSAMBLADOR PUEDE USAR PARA SUSTITUIR EN
    OTRAS INSTRUCIONES: LO SIGUIENTE: TIMES EQU 10 FIELDA DB TIMES
    DUP(?) ES EQUIVALENTE A, FIELDB DB 10 DUP(?)

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter