ACTIVIDADES_TEMA_1

Embed Size (px)

Citation preview

  • 8/2/2019 ACTIVIDADES_TEMA_1

    1/4

    Arquitectura y Tecnologa de los Computadores.Departamento de Automtica.

    Universidad de Alcal.

    ACTIVIDADES DEL TEMA 1: INTRODUCCIN ALENSAMBLADOR

    NUMEJER. EJERCICIO1 Ensambla, desde elDebug del MS-DOS, utilizando el comando a, las siguientes

    operaciones de transferencia:

    MOV AX, 170MOV BX, 3023MOV CL, BHMOV CH, AL

    2 Desensambla, utilizando el comando u, el cdigo a ejecutar. Por qu aparece ms cdigodel introducido?

    3 Ejecuta con el comando t la primera instruccin. Qu ocurre con el registro AX? Y con el registro IP?

    4 Ejecuta la siguiente instruccin. A continuacin, y utilizando el comando r, modifica elvalor de BH a 12(hex). Termina de ejecutar las dos lneas restantes.

    5 Ensambla, desde elDebug del MS-DOS, el siguiente cdigo:

    MOV AX, 8000

    MOV BX, 8000ADD AX, BX

    6 Ejecuta, con el comando t, las tres sentencias anteriores y observa los distintos flags.Cules cambian, y por qu?

    7 Repite el ejercicio 5 y el 6, pero tras ejecutar las dos primeras instrucciones modifica, con el

    comando a, la ltima instruccin, sustituyndola porSUB AX, BX. Ejecuta y observa

    ahora los flags. Cul cambia, y por qu?8 Ensambla, utilizando elDebug del MS-DOS, el siguiente cdigo:

    MOV AX, 1010MOV BX, 2020PUSH AXADD AX, BX

    MOV CX, AXPOP AX

    9 Ejecuta, con el comando t, las tres primeras lneas. Qu pasa con el puntero de pila?. Por qu se decrementa?.

    Muestra, con el comando d, el contenido de la pila. Qu registro de segmento hay que utilizar para acceder a las posiciones de

    memoria de la pila?

    10 Termina de ejecutar las lneas introducidas.

    Qu pasa con AX?. Cmo queda el puntero de pila?.

    11 Escribe, ensambla y ejecuta el siguiente cdigo:

    ;-------------------------------------------------------------------------------NAME PRACTICA 1_11 ; Se debe omitir al utilizarCodeVIewORG 100h ;Se debe omitir al utilizarCodeView;--------------------------------------------------------------------------------

    DOSSEG ; Se debe omitir al utilizar Emu8086

    .MODEL SMALL

    .STACK 100H

    ACTIVIDADES DEL TEMA 1 Pgina1 de 4

  • 8/2/2019 ACTIVIDADES_TEMA_1

    2/4

    Arquitectura y Tecnologa de los Computadores.Departamento de Automtica.

    Universidad de Alcal.

    NUMEJER.

    EJERCICIO

    .DATAOPERANDO1 DB 10HOPERANDO2 DB 20H

    RESULTADO DW 0000H.CODEINICIO:

    MOV AX, @DATAMOV DS, AXSUB AX, AX

    MOV AL, OPERANDO1ADD AL, OPERANDO2

    MOV RESULTADO, AX

    MOV AH, 4CHINT 21H

    END INICIO

    12 Ejecuta el programa de la actividad 11 paso a paso desde la aplicacin. Observa las variables

    declaradas, utilizando los comandos: CodeView: WB Operando1, WB Operando2 y WW Resultado Emu8086 : Botn VARS

    13 Ejecuta el programa de la actividad 11, y al ejecutar la instruccinMOV AL,OPERANDOR1 realiza la siguiente operacin con la aplicacin:

    CodeView: teclea en la lnea de rdenes del CodeView la sentencia r AX (y daenter). Despus introduce el valor 255 (y da enter).

    Emu8086 : Haz doble clic sobre uno de los casilleros del registro AX, escribe en lacasilla Unsigned el valor 255

    Finalmente, contina ejecutando el programa. Qu pasa con el resultado?

    14 Cambia la lnea ADD AL,OPERANDO2del programa de la actividad 11 porSUB AL OPERANDO2. Ensambla, enlaza y ejecuta el nuevo programa. Qu hace?

    15 Escribe, ensambla y ejecuta el siguiente cdigo:

    ;-------------------------------------------------------------------------------NAME PRACTICA 1_15 ; Se debe omitir al utilizarCodeVIewORG 100h ;Se debe omitir al utilizarCodeView;--------------------------------------------------------------------------------

    DOSSEG ; Se debe omitir al utilizar Emu8086

    .MODEL SMALL

    .STACK 100H

    .DATA

    .CODEINICIO:

    MOV AX, @DATAMOV DS, AX

    XOR DX, DXMOV AX, 15MOV BL, 6

    DIV BL

    MOV AH, 4CHINT 21H

    END INICIO

    16 En el programa anterior coloca en AX el valor 0FFh. Ensambla y ejecuta el nuevo programa

    ACTIVIDADES DEL TEMA 1 Pgina2 de 4

  • 8/2/2019 ACTIVIDADES_TEMA_1

    3/4

    Arquitectura y Tecnologa de los Computadores.Departamento de Automtica.

    Universidad de Alcal.

    NUMEJER.

    EJERCICIO

    17 Cambia la instruccinDIVpor laIDIVen la actividad anterior, y observa qu es lo queocurre con el resultado de la divisin

    18 Prueba diferentes valores con la divisin, observa dnde queda el cociente y dnde el resto.

    19 Emu8086: Activa las ventanas de STACK, y de VARS.Escribe, ensambla y ejecuta el siguiente cdigo:;-------------------------------------------------------------------------------NAME PRACTICA 1_19 ; Se debe omitir al utilizarCodeVIewORG 100h ;Se debe omitir al utilizarCodeView;--------------------------------------------------------------------------------

    DOSSEG ; Se debe omitir al utilizar Emu8086

    .MODEL SMALL

    .STACK 100H

    .DATA

    OPERANDO1 DB 10H

    OPERANDO2 DB 20HRESULTADO DW 0000H

    .CODEINICIO:

    MOV AX, @DATA

    MOV DS, AX

    SUB AX, AXMOV AL, OPERANDO1PUSH AXADD AL, OPERANDO2

    POP AXMOV RESULTADO, AX

    MOV AH, 4CHINT 21H

    END INICIO

    20 Qu ocurre con el resultado de la ejecucin anterior?

    21 Escribe y ensambla siguiente cdigo:;-------------------------------------------------------------------------------NAME PRACTICA 1_21 ; Se debe omitir al utilizarCodeVIewORG 100h ;Se debe omitir al utilizarCodeView;--------------------------------------------------------------------------------

    DOSSEG ; se debe omitir al utilizar emu8086

    .MODEL SMALL

    .STACK 100H

    .DATANUMERO DB 17H

    .CODEINICIO:

    MOV AX, @DATAMOV DS, AXMOV CX, 4

    BUCLE:MOV BX, NUMERO

    MOV AX, CXSHR BH, 4MOV CX, AX

    MOV AH, 2MOV DL, BHCMP DL, 9

    ACTIVIDADES DEL TEMA 1 Pgina3 de 4

  • 8/2/2019 ACTIVIDADES_TEMA_1

    4/4

    Arquitectura y Tecnologa de los Computadores.Departamento de Automtica.

    Universidad de Alcal.

    NUMEJER.

    EJERCICIO

    JLE DIG1

    ADD DL, 7DIG1:

    ADD DL, 30HINT 21H

    MOV DL, NUMEROAND DL, 0FH

    CMP DL, 9JLE DIG3

    ADD DL, 7DIG2:

    ADD DL, 30HINT 21h

    MOV dl, 10

    INT 21hMOV dl, 13

    INT 21h

    MOV DL, NUMERO

    ADD DL, 4MOV NUMERO, DL

    LOOP BUCLE

    MOV AH, 4CH

    INT 21HEND INICIO

    22 Observa los errores detectados e identifica la lnea y el tipo de error que se produce.

    23 Corrige el cdigo con la siguiente informacin:

    Lnea MOV BX, NUMERO debe ponerMOV BH, NUMERO* (Slo en CV)Lnea SHR BH, 4 hay que ponerSHR BH, CL e introducir antes MOV CL, 4

    Lnea JLE DIG3 hay que ponerJLE DIG2Ensambla de nuevo y ejecuta. Qu hace el programa?.

    24 Emu8086 :Activa la ventana de FLAGS.Ejecuta paso a paso el programa corregido. Observa cmo a veces salta desde JLE DIG2 aADD DL, 30H y otras veces no. Por qu?

    25 Ejecuta el programa paso a paso, y al ejecutar la instruccin JLE DIG1 realiza la siguienteoperacin:

    CodeView: Teclea en la lnea de rdenes del CodeView la sentencia rf pl (y daenter).

    Emu8086 : Dentro de la ventana de FLAGS, coloca en la casilla SF el valor0.Finalmente, contina ejecutando el programa. Qu pasa con el resultado?

    26 Hacer un programa en ensamblador :

    Debe realizar las cuatro operaciones aritmticas bsicas, para dos datos de 8 bitsfacilitados al comienzo del programa en las variables Op1 y Op2. Los resultados deben dejarse en las variables ResSuma, ResResta, ResMul,

    CociDiv y RestoDiv.

    Esta prctica ha sido desarrollada para conocer y aprender a utilizar varias aplicaciones

    de ensamblador, como son:

    Debug incluido en el MS-DOS. Macro Assebler, Linker y CodeView del paquete ASM51 para MS-DOS de

    Microsoft.

    Emu8086 para Windows.

    ACTIVIDADES DEL TEMA 1 Pgina4 de 4