Download - ejercicios emu8086.docx
UNIVERSIDAD NACIONAL DE SAN AGUSTINFacultad de Ingeniera de Produccin y ServiciosEscuela Profesional De Ingeniera Electrnica
Curso: Arquitectura de Computadoras Docente: Ing. Erasmo Sulla EspinozaAlumnos: Charca Morocco Hernn 20100040Torreblanca monzon Antonio
Arequipa 20151.1. Programa 1
SUMA Y PROMEDIO DE 5 NMEROS (2 Bytes) Los sumandos se guardan a partir de la direccin 0100 hasta la direccin 0108, pero separados por una direccin, es decir un sumando va en 0100, el otro en 0102, y as sucesivamente. El valor de la suma se guardar en el registro [0100: 014Ah] despus de haberse ejecutado el programa. Posteriormente en la direccin [0100: 014Ch] se guardara el valor del promedio se guardar.xxxx: 014009
014206
014402
014603
014807
El programa ser el siguiente:XOR AX,AXXOR BX,BXMOV [0140h],0X03MOV [0142h],0X03MOV [0144h],0X03MOV [0146h],0X03MOV [0148h],0X03CLCADC AX,[0140h]ADC AX,[0142h]ADC AX,[0144h]ADC AX,[0146h]ADC AX,[0148h]MOV [014Ah],AXMOV BL,05DIV BLMOV [014Ch],AXINT 21h
Abrimos el software emu8086, escribimos el cdigo del programa y damos click en el botn emulate.
A continuacion usando el boton Single step ejecutamos el programa paso a paso para finalmente obtener los resultados en las respectivas direcciones:
Los resultados se obtuvieron correctamente, terminando el programa con una interrupcion.
1.2. Programa 2
ORDENAMIENTO DE 5 NMEROS El siguiente programa realiza el ordenamiento de menor a mayor respecto a la direccin de su localizacin, de 5 nmeros. El algoritmo utilizado es descrito de la siguiente manera:Despus de haber cargado los valores respectivos en memoria: Se inicializan los registros BX, SI y CX Se carga en el Stack los valores inicializados de CX y SI Se inicia la secuencia de ordenamiento Se comparan nmeros: el primero con el segundo y si el segundo es mayor, se realiza un cambio de posicin, en caso contrario se sigue con el tercero Cuando ya termino de evaluar una vez (una pasada), se cambia el valor del registro CX, para que se ajuste a la siguiente pasada, en donde se realiza 1 comparacin menos, debido a que ya no se compara el primer numero Se realiza una ltima comparacin (tercer y cuarto numero). Con esto quedan ordenados los 4 nmeros, de menor a mayor.
xxxx: 010006
010202
010401
010605
010804
XOR BX,BXXOR CX,CXXOR DX,DX
CLC
MOV [130h],8MOV [132h],6MOV [134h],4MOV [136h],1MOV [138h],7
todo:XOR BX,BXXOR CX,CXXOR DX,DX
MOV BX,[130h]MOV CX,[132h]CMP BX,CXJNL ORDENAR1uno:MOV [130h],BXMOV [132h],CX
MOV BX,[132h]MOV CX,[134h]CMP BX,CXJNL ORDENAR2 dos:MOV [132h],BXMOV [134h],CX
MOV BX,[134h]MOV CX,[136h]CMP BX,CXJNL ORDENAR3tres: MOV [134h],BXMOV [136h],CX
MOV BX,[136h]MOV CX,[138h]CMP BX,CXJNL ORDENAR4cuatro:MOV [136h],BXMOV [138h],CX
loop todo
ORDENAR1:MOV DX,BXMOV BX,CXMOV CX,DXjmp uno
ORDENAR2:MOV DX,BXMOV BX,CXMOV CX,DXjmp dos
ORDENAR3:MOV DX,BXMOV BX,CXMOV CX,DXjmp tres
ORDENAR4:MOV DX,BXMOV BX,CXMOV CX,DXjmp cuatro
INT 21
Luego procedemos a presionar el boton run para ver el resultado de la simulacion:
Obteniendo el resultado deseado en sus respectivas direcciones.