EjerciciosArquitectura Maquina
EjerciciosArquitectura Maquina
EjerciciosArquitectura Maquina
Microprocesador (80X86)
Ing.
Ejemplos de Ensamblador
EJERCICIO 1. El contenido de la localidad 0200 tiene un dato de 8 bits. Realizar un programa que coloque en la localidad de memoria 0201 el nibble (4bits) ms significativo, tomando en cuenta que el nibble menos significativo debe ser 0.
Ing.
Ejemplos de Ensamblador
SOLUCIN Se puede ver grficamente el contenido de las localidades 0200 y 0201 para comprender mejor el enunciado:
MASCARA: MOV AL, [200] ;mueve el contenido de la localidad 200 a AL AND AL, 0F0h ;coloca 1111 0000 en AL MOV [201], AL ;mueve el contenido de AL a la localidad 201 MOV AH, 04Ch ;mueve el contenido de 4C a AH INT 21h
Arq. de Computadora I Carlos Ortega H. Ing. 3
Ejercicio 3: Sumar 2 nmeros binarios de 24 bits y almacenar el resultado a partir de la localidad de memoria 0206h. Los bits menos significativos de los nmeros empiezan en las localidades 0200h y 0203h.
Ing.
mov [200], 000AAh mov [203], 000BBh mov [201], 000AAh mov [204], 000BBh mov [202], 000AAh mov [205], 000BBh
SUMA: MOV AL, [200] ;mover el contenido de la localidad 200 a AL ADD AL, [203] ;sumar el contenido de la localidad 201 a AL MOV [206], AL ;mover el contenido de AL a la localidad 206 MOV AL, [201] ;mover el contenido de la localidad 201 a AL ADC AL, [204] ;sumar el contenido de la localidad 204 con AL MOV [207], AL ;mover el contenido de AL a la localidad 207 MOV AL, [202] ;mover el contenido de la localidad 202 a AL ADC AL, [205] ;sumar el contenido de la localidad 205 con AL MOV [208], AL ;mover el contenido de AL a la localidad 208 RET
Arq. de Computadora I Carlos Ortega H. Ing.
8 LSB
2 BYTE
8 MSB
Ejercicio 4: Uso del registro CX como contador. Vamos a mover los 8 bits menos significativos del registro BL al registro BH.
ROTA8: MOV BX, 043A6h ;(1) MOV CX, 00008h ;(2) OTRAVEZ: RCL BX, 1 ;(3) LOOP OTRAVEZ ;(4) MOV AH, 04Ch ;(5) INT 21h ;(6)
Ing.
Ejercicio 5: Realice un programa que imprima en pantalla letra por letra el texto ArqMC.
ORG 100h ; intruccion para hacer un segmento de programa MOV AH, 0Eh ; seleccionar la subrutina INT 10h MOV AL, A' ; codigo ASCCI 72 INT 10h ; imprimirlo ; hacer lo mismo con los caracteres restantes MOV AL, R' INT 10h MOV AL, Q' INT 10h MOV AL, M' INT 10h MOV AL, M' INT 10h RET ; regresar al sistema operativo
Arq. de Computadora I
Ejercicio 6: Calcular la suma verificacin de una serie de datos. La longitud de la serie de datos est en la localidad 201h y la serie comienza en la localidad 202h. Almacenar la suma verificacin en la localidad 200h. La suma verificacin se forma haciendo la suma O exclusiva entre todos los nmeros de la serie. SUGERENCIA: Utilice CX como contador.
mov [201], 00018h mov [203], 00020h SUMAVERIF: MOV CH, 0 ;poner 0 en CH MOV CL, [201] ;mover el contenido de la localidad 201 a CL MOV BX, 200 ;mover el contenido de 200 a BX MOV AL, [BX] ;mover el contenido de BX a AL SUMAO: INC BX ;incrementar BX XOR AL, [BX] ;O exclusiva contenidos AL y BX DEC CX ;decrementar CX LOOP SUMAO MOV [200], AL ;mover el contenido de AL a la localidad 200 RET
Arq. de Computadora I Carlos Ortega H. Ing. 8
Ejercicio 7: Calcular la suma de una serie de nmeros de 16 bits. La longitud de la serie est en la localidad de memoria 0202 y la serie empieza en la localidad de memoria 0203. Almacenar la suma en las localidades de memoria 0200 y 0201. Considere que la adicin puede estar contenida en 16 bits
INICIO: CLC MOV CH, 0 MOV CL, [202] MOV BX, 203 MOV AX, 0 RETORNO: ADC AX, [BX] INC BX LOOP RETORNO MOV [200], AX END
Ing.
Ing.
10