Diferencia entre revisiones de «Desplazamientos.fma»
De Wiki Asqueados
() |
(Quitar SPAM) |
||
(No se muestra una edición intermedia de otro usuario) | |||
Línea 1: | Línea 1: | ||
Programa de prueba de las instrucciones de desplazamiento: | Programa de prueba de las instrucciones de desplazamiento: | ||
− | + | == Código == | |
+ | |||
+ | <nowiki> | ||
+ | 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 | ||
+ | </nowiki> | ||
== Algoritmo == | == Algoritmo == |
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