Diferencia entre revisiones de «Desplazamientos.fma»

De Wiki Asqueados
Saltar a: navegación, buscar
(Quitar SPAM)
 
(No se muestran 6 ediciones intermedias de 3 usuarios)
Línea 1: Línea 1:
 +
Programa de prueba de las instrucciones de desplazamiento:
 +
 +
== Código ==
 +
 
   <nowiki>
 
   <nowiki>
 
LDI 1,1    ;0
 
LDI 1,1    ;0
Línea 4: Línea 8:
 
LDI 300,C
 
LDI 300,C
 
LDI 340,D
 
LDI 340,D
LDI COCO,3  ; punto y aparte
+
LDI C0C0,3  ; punto y aparte
 
LDI CACA,4  ; fin
 
LDI CACA,4  ; fin
  
 
RL A      ;C
 
RL A      ;C
 
ST A,C
 
ST A,C
CMP D,C
 
 
ADD 1,C
 
ADD 1,C
JGE C
+
JGE D,C,C
  
LDI 380,D  ;12
+
LDI 380,D  ;11
 
ST 3,C
 
ST 3,C
 
ADD 1,C
 
ADD 1,C
  
RR A        ; 16
+
RR A        ; 15
 
ST A,C
 
ST A,C
CMP D,C
 
 
ADD 1,C
 
ADD 1,C
JGE 16
+
JGE D,C,15
  
LDI 3C0,D    ;1C
+
LDI 3C0,D    ;1A
 
ST 3,C
 
ST 3,C
 
ADD 1,C
 
ADD 1,C
  
RL A        ;20
+
SL A        ;2E
 
ST A,C
 
ST A,C
CMP D,C
 
 
ADD 1,C
 
ADD 1,C
JGE 20
+
JGE D,C,2E
  
LDI 400,D    ;26
+
LDI 400,D    ;23
 
ST 3,C
 
ST 3,C
 
ADD 1,C
 
ADD 1,C
 
LDI 0101,A
 
LDI 0101,A
  
RR A        ;2C
+
SR A        ;29
 
ST A,C
 
ST A,C
CMP D,C
 
 
ADD 1,C
 
ADD 1,C
JGE 2C
+
JGE 29
  
 
ST 4,C
 
ST 4,C
 
</nowiki>
 
</nowiki>
 +
 +
== Algoritmo ==
 +
*Carga la dirección de memoria 0101 en el registro A, y le aplica diferentes operaciones de desplazamientos, guardando los resultados en memoria:
 +
*300 a 340 -> operación RL
 +
*hasta 380 -> operación RR
 +
*hasta 3C0 -> operación SL
 +
*Volvemos a cargar 0101 en A y
 +
*hasta 400 -> operación SR

Revisión actual del 00:29 16 jul 2008

Programa de prueba de las instrucciones de desplazamiento:

Código

 
LDI 1,1    ;0
LDI 0101,A 
LDI 300,C
LDI 340,D
LDI C0C0,3  ; punto y aparte
LDI CACA,4  ; fin

RL A       ;C
ST A,C
ADD 1,C
JGE D,C,C

LDI 380,D   ;11
ST 3,C
ADD 1,C

RR A        ; 15
ST A,C
ADD 1,C
JGE D,C,15

LDI 3C0,D     ;1A
ST 3,C
ADD 1,C

SL A        ;2E
ST A,C
ADD 1,C
JGE D,C,2E

LDI 400,D    ;23
ST 3,C
ADD 1,C
LDI 0101,A

SR A        ;29
ST A,C
ADD 1,C
JGE 29

ST 4,C

Algoritmo

  • Carga la dirección de memoria 0101 en el registro A, y le aplica diferentes operaciones de desplazamientos, guardando los resultados en memoria:
  • 300 a 340 -> operación RL
  • hasta 380 -> operación RR
  • hasta 3C0 -> operación SL
  • Volvemos a cargar 0101 en A y
  • hasta 400 -> operación SR