Diferencia entre revisiones de «Desplazamientos.fma»
De Wiki Asqueados
(Quitar SPAM) |
|||
(No se muestran 7 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 | + | 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 | ||
− | |||
ADD 1,C | ADD 1,C | ||
− | JGE C | + | JGE D,C,C |
− | LDI 380,D ; | + | LDI 380,D ;11 |
ST 3,C | ST 3,C | ||
ADD 1,C | ADD 1,C | ||
− | RR A ; | + | RR A ; 15 |
ST A,C | ST A,C | ||
− | |||
ADD 1,C | ADD 1,C | ||
− | JGE | + | JGE D,C,15 |
− | LDI 3C0,D ; | + | LDI 3C0,D ;1A |
ST 3,C | ST 3,C | ||
ADD 1,C | ADD 1,C | ||
− | + | SL A ;2E | |
ST A,C | ST A,C | ||
− | |||
ADD 1,C | ADD 1,C | ||
− | JGE | + | JGE D,C,2E |
− | LDI 400 ; | + | LDI 400,D ;23 |
ST 3,C | ST 3,C | ||
ADD 1,C | ADD 1,C | ||
LDI 0101,A | LDI 0101,A | ||
− | + | SR A ;29 | |
ST A,C | ST A,C | ||
− | |||
ADD 1,C | ADD 1,C | ||
− | JGE | + | 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