Sie sind auf Seite 1von 4

UTP

FIE
Tarea No 4

Parte I
Anote el resultado de todos los registros en cada una de las instrucciones especificadas en el programa a
continuacin tal como si estuviese ejecutando el programa paso a paso en el simulador en caso de que
alguna memoria cambie entonces escriba el nuevo valor y la direccin de la misma.

; Include derivative-specific definitions


INCLUDE 'derivative.inc'

; export symbols
XDEF Entry, _Startup, main
; we use export 'Entry' as symbol. This allows us to
; reference 'Entry' either in the linker .prm file
; or from C/C++ later on

XREF __SEG_END_SSTACK ; symbol defined by the linker for the end of the stack
; smbolos para valores constantes
Kte1 equ $40 ; Valor de constante 1
Kte2 equ $abcd ; Valor de constante 2
Kte32h equ $78fd
Kte32l equ $6a24;

; variable/data section
MY_EXTENDED_RAM: SECTION
; Insert here your data definition.
Ent8bits ds.b 1 ; ejemplo de variable entera de 8 bits
Ent8bits2 ds.b 1 ; otra variable entera de 8 bits
Ent16bits ds.w 1 ; ejemplo de variable entera de 16 bits
Ent32bits ds.w 2 ; ejemplo de variable entera de 32 bits.
TABLA ds.b 30 ; ejemplo de tabla de 30 bytes.
Constantes: SECTION
Cadena dc.b "Esta es una tabla de cdigos ASCII"

; code section
MyCode: SECTION
main:
_Startup:
Entry:
LDS #__SEG_END_SSTACK ; initialize the stack pointer
; CLI ; enable interrupts
; uso de las instrucciones carga y almacena
1. ldaa #'A' ;
2. staa Ent8bits ;
3. ldab #Kte1 ;
4. stab Ent8bits2 ;
5. ldd #Kte2 ;
6. std Ent16bits
7. ldd #Kte32h El estado final en las posiciones de memoria:
8. std Ent32bits Ent16bits
9. ldd #Kte32l Ent32bits
10. std Ent32bits + 2 ; Ent32bits + 2
11. ldx #Ent8bits
12. ldaa #'A'
13. staa 0,x
14. ldy #Ent16bits
15. ldd #Kte32h
16. stab 1,y+
17. staa 0,y
18. ; uso de instrucciones de intercambio y transferencia
19. ldaa #Kte1
20. ldab #'a'
21. exg a,b
22. ldx #Kte2
23. ldd #Kte32l
UTP
FIE
Tarea No 4

24. xgdx
25. xgdx
26. tba
27. ldaa #'@'
28. tab
29. sex a,x
30. ldab #-20
31. sex b,d
32. ; instrucciones mov
33. movb Ent8bits2,Ent8bits
34. ldx #Ent32bits
35. ldy #(Ent32bits+2)
36. movw 0,x,0,y
37. ; instrucciones aritmticas
38. ldaa #$d2
39. ldab #$ba
40. aba
41. ldaa #-100
42. ldab #-30
43. aba
44. ldaa #$d2
45. ldab #$ba
46. sba
47. ; suma de nmeros dobles (Ent16bits + Ent32bits => Ent32bits)
48. ldd #Kte2 ; prepara demostracin de la suma
49. std Ent16bits
50. ldd #Kte32h
51. std Ent32bits
52. ldd #Kte32l
53. std Ent32bits + 2 ; w = 2bytes.
54. ldd Ent32bits + 2
55. addd Ent16bits
56. std Ent32bits + 2 ; Suma la parte menos significativa.
57. ldab Ent32bits + 1
58. adcb 0
59. stab Ent32bits + 1 El estado final en las posiciones de memoria:
60. ldab Ent32bits Ent16bits
61. adcb 0 Ent32bits
62. stab Ent32bits Ent32bits + 2
63. ; instrucciones de comparacin
64. ldaa #Kte1 ; a = 40
65. ldab #-1 ; b = ff
66. cba ; Verificar ccr
67. exg a,b ; a = ff, b = 40
68. cba ; Verificar ccr
69. ; instrucciones lgicas
70. ldaa #$f5
71. anda #$05
72. ldaa #$f5
73. oraa #$0f
74. ldab #$55
75. eorb #$ff
76. ; instrucciones de multiplicacin Presente los clculos iniciales
77. ldy #Kte2
78. ldd #Kte32l
79. emuls
80. ldy #Kte2
81. ldd #Kte32l
82. emul
83. ; instrucciones de divisin
84. ldx #Kte2
85. ediv
86. ldy #Kte2
87. ldd #Kte32l
88. emuls
UTP
FIE
Tarea No 4

89. ldx #Kte32h


Presente los clculos iniciales
90. edivs
91. ldd #2
92. ldx #100
93. fdiv

EndlessLoop:
bra EndlessLoop

II Parte
1. Cul ser valor del PC luego de la ejecucin una instruccin si:
a) La instruccin es LDD $F076?
PC = ______________ (3ptos.)
b) La instruccin lbra $f30?
PC = ______________(3ptos.)
c) La instruccin es lbra -168?
PC = ______________(4ptos.)

Para los ejercicios enmarcados asuma que el estado inicial de los 20F6 20
registros y la memoria del HC12 es: A =FF; B = FC; IX = 20F9; IY = 20FF; FF
SP = 20F6; PC = 2104. Nota: Los valores todos en hexadecimal. A0
41
2. Cul es la direccin efectiva y el valor final del registro(s) y de la 30
memoria(s) que vara(n), luego de ejecutar cada una de las 21
siguientes instrucciones por separado? 02
a) LDAA 3,+X (4ptos.) DE_________, X_________ y A__________ 20
b) STAB 4,S (4ptos.) DE_________, M_________ y S__________ 03
c) LDD 1,Y- (4ptos.) DE_________, D_________ y Y__________ 45
10
3. Cul es la direccin efectiva y el dato accedido con cada FA
siguiente instruccin ejecutada por separado? 11
a) LDD [0,S] (5ptos.) DE_______________, DATO_____________
98
b) LDAA [D,Y] (5ptos.) DE_______________, DATO_____________
40
c)
4. Si el dato almacenado a partir de la direccin $2100 corresponde a un
nmero real en formato IEEE de 16 bits, Escriba su valor en
decimal? ______________ (10ptos.)

5. Presente un programa usando las instrucciones del HC12 para obtener el valor absoluto de un nmero
con signo de 16b ubicado en la direccin $500. El valor absoluto debe estar en la direccin $504.

6. Presente un programa usando las instrucciones del HC12 para obtener el valor absoluto de un nmero
con signo de 16b ubicado en el tope de la pila. El resultado reemplaza este nmero en la pila.

7. Presente un programa para determinar el tamao de un bloque de memoria que contiene solamente
valores en cdigo ASCII. Esta cadena se asume almacenada a partir de la direccin $502 y se sabe
que el ltimo valor es 0. El tamao de la cadena se espera en la direccin $500.
UTP
FIE
Tarea No 4

8. Presente un programa para realizar la suma de dos nmeros enteros de 16 bits almacenados en los
4bytes ubicados mas en el tope de la pila. El resultado reemplaza estos nmeros en el tope de la pila
osea al final la pila resulta con dos bytes menos.

9. Presente un programa para duplicar el valor en el tope de la pila osea al ejecutar este programa la pila
debe quedar con dos valores iguales en el tope.

Das könnte Ihnen auch gefallen