ELECTRÓNICA DIGITAL II
Views 101 Downloads 3 File size 70KB
ELECTRÓNICA DIGITAL II 1
PROBLEMAS RELACIONADOS CON EL CONJUNTO DE INSTRUCCIONES DEL 8051 1. ¿Cuál es el código hexadecimal en bytes para las instrucciones siguientes? a. INC DPTR b. MOV A,#‐2 c. CJNE A,#0DH,$+3 d. PUSH ACC e. SETB P2.2 f. MOV DPH,#84H g. JNB ACC.0,$ h. POP DPH i. MOV A,#’=’ j. XLR A,#’S’ k. CLR C 2. ¿Qué instrucciones representan los siguientes bytes de código de máquina? (CADA INCISO ES UNA SOLA INSTRUCCIÓN) a. 7EH, 02H b. C2H, 97H c. 13H d. F6H e. 22H f. 90H, 80H, 30H g. EFH h. 12H, 80H, 50H i. F5H, 8DH j. 04H k. 83H l. 75H, 8AH, E7H 3. La instrucción siguiente es del 8051: MOV 50H,#0FFH a. ¿Cuál es el código de operación para esta instrucción? b. ¿Cuántos bytes tiene la instrucción? c. Explique el propósito de cada byte de la instrucción. d. ¿Cuántos ciclos de máquina se necesitan para ejecutar la instrucción? 4. ¿Cuál es el offset relativo para la instrucción SJMP ADELANTE si la instrucción está en las direcciones 2FF0H y 2FF1H, y la etiqueta ADELANTE representa la localidad 041FH? 5. ¿Cuál es el offset relativo para la instrucción SJMP ATRAS DR. JAVIER VEGA PINEDA INSTITUTO TECNOLÓGICO DE CHIHUAHUA
ELECTRÓNICA DIGITAL II 2
si la instrucción está en las direcciones A050H y A051H, y la etiqueta ATRAS representa la localidad 9FE0H? 6. Asuma que la instrucción AJMP ADELANTE está en la memoria de código en las direcciones 2FF0H y 2FF1H, y la etiqueta ADELANTE corresponde a una instrucción en la dirección 2F96H. ¿Cuál es el código de máquina para esta instrucción? 7. Asuma que la instrucción ACALL FACTORIAL está en la memoria de código en las direcciones 06F4H y 06F5H, y la etiqueta FACTORIAL corresponde a una subrutina empezando en la dirección 07ABH. ¿Cuál es el código de máquina para esta instrucción? 8. En un cierto punto de un programa, se desea saltar a la etiqueta EXIT si el acumulador es igual al código ASCII de la letra ‘Q’ o ‘q’, de lo contrario que el programa continúe sin saltar. ¿Qué instrucción(es) debería(n) de usarse? 9. La instrucción SJMP BACK está en la memoria de código en la dirección 0100H y 0101H y la etiqueta BACK corresponde a una instrucción que está en la dirección 00AEH. ¿Cuál es el código hexadecimal de la instrucción? 10. La instrucción CJNE R7, #’Z’, NOCERO está su código de máquina en las direcciones 022AH a 022CH. ¿Cuáles son los bytes en lenguaje de máquina para esta instrucción? 11. ¿Qué hace la siguiente instrucción? SETB 0D7H 12. ¿Cuál es la diferencia entre las siguientes dos instrucciones? INC A e INC ACC 13. ¿Cuáles son los bytes de lenguaje de máquina para la siguiente instrucción? LJMP MAIN si la etiqueta MAIN representa la dirección A0F6H? 14. Asuma que el acumulador contiene 5AH. ¿Cuál es el contenido del acumulador después de la instrucción siguiente?: a. XRL A,#0FFH b. ORL A,#47H c. RLC A (con PSW = 0C0H antes de ejecutar la instrucción) d. RRC A (con PSW = 78H antes de ejecutar la instrucción) e. Después de la secuencia de operaciones: MOV A,#7FH MOV 50H,#29H MOV R0,#50H XCHD A,@R0
DR. JAVIER VEGA PINEDA INSTITUTO TECNOLÓGICO DE CHIHUAHUA
ELECTRÓNICA DIGITAL II 3
15. La memoria interna del 8051 está inicializada como sigue, inmediatamente antes de la ejecución de una instrucción RET: Dirección interna Contenido . SFRs Contenido 0B 9A SP 0B 0A 78 PC 0200 09 56 A 55 08 34 07 12 ¿Cuál es el contenido del PC después de que la instrucción RET se ejecuta? 16. Una subrutina del 8051 se muestra a continuación: SUB: MOV R0,#20h LOOP: MOV @R0,#0 INC R0 CJNE R0,#80H,LOOP RET a. ¿Qué hace la subrutina? b. ¿Cuántos bytes en memoria ocupa la subrutina? Seleccionados del libro: “The 8051 Microcontroller, 3rd Ed”, I. Scott MacKenzie, PH, 1999.
DR. JAVIER VEGA PINEDA INSTITUTO TECNOLÓGICO DE CHIHUAHUA