Upload
leonel-barrera-rivas
View
228
Download
0
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