Programación en lenguaje esamblador
Enviado por Sergio Daniel Garcia Rojas • 28 de Octubre de 2015 • Prácticas o problemas • 2.444 Palabras (10 Páginas) • 184 Visitas
1
Taller 1: Simulaci´on
Asignatura: Estructuras Computacionales
Docente: Jaime Le´on Hincapie
Monitor: Yohan Ricardo C´espedes Villar
Universidad Nacional de Colombia - Sede Manizales
Departamento de Ingenier´ia El´ectrica, Electr´onica y Computaci´on.
Abstract— En este documento se presenta una de
las muchas soluciones posibles para cada problema
planteado. Los c´odigos deben ser usados en un software
de simulaci´on compatible con los microcontroladores
Atmel de la serie 80C5X, bien sea Pinnacle o MCU.
El software de Simulaci´on se encuentra en el siguiente link:
http://xurl.es/m1ec7
I. EJERCICIO 1
Hallar el complemento del n´umero que se encuentre en la
posici´on de memoria 25H. El resultado se debe almacenar en
la posici´on de memoria 26H.
inicio:
mov a,25h
cpl a
mov 26h,a
sjmp inicio
end
II. EJERCICIO 2
Dividir en 2 nibbles el n´umero que se encuentre en la
posici´on de memoria 25H e intercambiarlos, es decir, el nibble
m´as significativo debe quedar en el menos significativo y
viceversa.
inicio:
mov a,25h
swap a
mov 26h,a
sjmp inicio
end
III. EJERCICIO 3
Dividir en 2 nibbles e intercambiar los menos significativos
de las posiciones de memoria 25H y 26H. Guardar los
resultados en 27H y 28H.
Ej: 25H = #15H y 26H = #36H
entonces 27H = #16H y 28H = #35H.
mov 25h,#15h
mov 26h,#36h
inicio:
mov a,25h
mov r0,#26h
xchd a,@r0
mov 27h,a
mov 28h,26h
sjmp inicio
end
IV. EJERCICIO 4
Intercambiar los 2 bits m´as significativos con los 2 bits
menos significativos del contenido que est´a en la posici´on
de memoria 25H y guardar el resultado en la posici´on de
memoria 26H.
Ej: 25H = #5BH = 01011011B
entonces 26H = #D9H = 11011001B.
inicio:
;guardo en registros cada par de bits
mov r0,25h
mov a,#03h
anl a,r0
mov r1,a
mov a,#0c0h
anl a,r0
mov r2,a
mov a,r0
subb a,r2
subb a,r1
;desplazo los bits a sus nuevas posiciones
mov r4,a
mov a,r2
rl a
rl a
mov r2,a
mov a,r1
rr a
rr a
mov r1,a
;se genera el resultado final por medio de la suma
mov a,r4
add a,r1
add a,r2
mov 26h,a
sjmp inicio
end
V. EJERCICIO 5
Sumar el n´umero que se encuentra en la posici´on de
memoria 25H con el que est´a en la posici´on de memoria 26H.
2
El resultado se debe almacenar en la posici´on 27H.
mov 25h,#04h
mov 26h,#07h
inicio:
mov a,25h
add a,26h
mov 27h,a
sjmp inicio
end
VI. EJERCICIO 6
Restar el n´umero que se encuentra en la posici´on de
memoria 25H con el que est´a en la posici´on de memoria 26H.
El resultado se debe almacenar en la posici´on 27H.
mov 25h,#07h
mov 26h,#02h
inicio:
mov a,25h
subb a,26h
mov 27h,a
sjmp inicio
end
VII. EJERCICIO 7
Correr el contenido de la posici´on de memoria 25H un bit
a la izquierda y almacenar el resultado en 26H, el bit a la
derecha debe ser
...