Está en la página 1de 5

Nombre: Jaidiver Gómez Quintero C.C.

100731465

Valor: 20% Fecha: 22-10-2020 Duración: 1:30 minutos

Parcial No. 1
Confío en su seriedad y responsabilidad al resolver esta prueba. Sus únicas
fuentes de consulta son: los conocimientos adquiridos, los documentos ubicados
en la web y los temas resueltos en talleres.

Programa para ser analizado.


En el supermercado La Rebaja, el valor de los diferentes artículos oscila entre $0 y $25500;
pero para su contabilidad, los valores unitarios se asignan en puntos de 0 a 255. Una
máquina lectora del código de barras, conectada al puerto B del MCU, va leyendo los
valores de los artículos a medida que son vendidos y los va entregando uno a uno a dicho
puerto. El sistema MCU basado en el JM60 y programado en lenguaje ensamblador lleva a
cabo varias estadísticas, con los valores de los primeros 200 artículos vendidos durante el
día.

INCLUDE 'derivative.inc'
XDEF _Startup
ABSENTRY _Startup

ORG Z_RAMStart
Contador1: DS.B 1 ; Contador
Contador2: DS.B 1
Contador3: DS.B 1
Contador4: DS.B 1
Num_Articulos: DS.B 1
Excellent: DS.B 1
Regular: DS.B 1
; Sección para definir variables en memoria RAM, por fuera de la página cero
;
ORG RAMStart

; Sección de código del programa.


ORG ROMStart
_Startup:
; Apagar WatchDOG
LDA #$20
STA SOPT1
; Llevar el SP a la última posición de la RAM
LDHX #RAMEnd+1
TXS ; Limpiar Registros
CLRA
CLRX
CLRH
CLR Contador1
CLR Contador2
CLR Contador3
CLR Contador4
MOV #200, Num_Articulos
CLR Excellent
CLR Regular
MOV #$00,PTAD
MOV #$FF,PTADD
MOV #$00,PTBD
MOV #$00, PTBDD
MOV #$00,PTCD
MOV #$FF, PTCDD
MOV #$00,PTDD
MOV #$FF, PTDDD
MOV #$00,PTED
MOV #$FF, PTEDD
MOV #$00,PTFD
MOV #$FF, PTFDD
MOV #$00,PTGD
MOV #$00, PTGDD ; entrada
; Cuerpo del programa

LDHX #$0100
again: BRCLR 0,PTGD,capture
BRA again
capture: MOV PTBD, X+ ; cada que se almacena un dato se actualiza H:X
DBNZ Num_Articulos, again
LDHX #$0100
MOV #200 , Num_Articulos ;
otra_vez: LDA ,X
CMP #200 ; 200 valor del artículo
BHS siga_1
CMP #100
BHI siga_2
CMP #50
BHS siga_3
CMP #10
BNE Final
INC Contador4
BRA Final

siga_1: INC Contador1


BRA Final
siga_2: INC Contador2
BRA Final
siga_3: INC Contador3
BRA Final
Final: INCX
DBNZ Num_Articulos , otra_vez

LDA Contador1
CMP #50
BHS siga_4
MOV #1, Regular
BRA to_display
siga_4: MOV #1, Excellent

to_display: MOV #$FF, PTBDD


MOV Contador1, PTAD
MOV Contador2, PTBD
MOV Contador3, PTCD
MOV Contador4, PTDD
MOV Excellent, PTED
MOV Regular, PTFD

Here: BRA Here

;* Interrupt Vectors *
;**************************************************************
ORG $FFFE
DC.W _Startup ; Reset

1. Valor 1.0. Que estadísticas lleva a cabo el programa analizado?. Indicar las variables
utilizadas y los puertos respectivos de despliegue.
C
Variables:

2. Valor 0.6. Qué condiciones se deben cumplir para activar la variable Excellent?. A través
de que puerto se despliega?
3. Valor 0.9 .La venta de un nuevo artículo de valor 222 pts, debe ser analizada. A usted se
le asigna la tarea de realizar un ajuste al programa, sin afectar las tareas iniciales, que
detecte si la venta del artículo en mención, durante el día respectivo, es al menos 45
unidades. Si se da esta condición, entonces se debe activar y desplegar una variable
llamada Venta_Exitosa.

4. Valor 1.3. Una vez terminada la ejecución del programa inicial, sin tomar en cuenta el
ajuste, indicar y justificar cuales son los contenidos finales de los registros:
4.1 A
4.2 SP
4.3 HX
4.4 PC

En el ítem 5, seleccione las afirmaciones incorrectas, justificando brevemente la razón de su


escogencia.

5. Valor: 1.2. Afirmaciones varias:


5.1 Una vez leída y decodificada una instrucción por la unidad de control de la CPU,
siempre será necesario regresar a memoria a leer un nuevo dato.
5.2 Asumiendo que el contenido del registro A es el menor número negativo del rango
de 8 bits, siempre es posible a través de varias instrucciones ASRA, dividir ese
número por 27, obteniendo un resultado correcto.
5.3 Una vez leído el OPCODE de una instrucción ADD/SUB, la unidad de control ya
conoce la dirección exacta donde se encuentra el operando.
5.4 El tiempo de ejecución de una instrucción, en el JM60, depende del número de Bytes
que ocupa en memoria.

También podría gustarte