INICIO WEB

                
                             bolaverd.gif (257 bytes) Modos de direccionamiento de programa y datos
                                            globul2a.gif (67 bytes) Registro Directo, Registro simple RD
                                            globul2a.gif (67 bytes) Registro Directo, dos registros Rd y Rr
                                            globul2a.gif (67 bytes) I/O Directo
                                            globul2a.gif (67 bytes) Dato directo
                                            globul2a.gif (67 bytes) Dato indirecto con desplazamiento
                                            globul2a.gif (67 bytes) Dato indirecto
                                            globul2a.gif (67 bytes) Dato indirecto con pre-decremento
                                            globul2a.gif (67 bytes) Dato indirecto con post-incremento
                                            globul2a.gif (67 bytes) Direccionamiento de una Constante usando la Instrucción LPM
                                            globul2a.gif (67 bytes) Direccionamiento de programa indirecto, IJMP e ICALL
                                            globul2a.gif (67 bytes) Direccionamiento de memoria relativo, RJMP y RCALL
                      

150.gif (1063 bytes)

      

MODOS DE DIRECCIONAMIENTO DE PROGRAMA Y DATOS

          

Los microcontroladores AVR RISC AT90S8515 soportan modos de direccionamiento poderosos y eficaces para el acceso a la memoria de programa (FLASH) y memoria de datos (SRAM, archivo de Registro y memoria de I/O). Esta sección describe los diferentes modos de direccionamiento soportados por la arquitectura AVR. En las figuras, OP es el código de funcionamiento de la palabra (word) de la instrucción. Para simplificar, no todas las figuras muestran la situación exacta de los bits de direccionamiento.

         
Registro Directo, Registro simple RD
            

Direccionamiento.gif (1602 bytes)

        

Figura. Direccionamiento directo de registro simple

  
El operando está contenido en el registro d (Rd).
          
Registro Directo, dos registros Rd y Rr
              

Dir_directo.gif (1767 bytes)

     

Figura. Direccionamiento de registro directo, dos registros

 

Los operandos están contenidos en los registros r (Rr) y d (Rd). El resultado es almacenado en el registro d (Rd).

              
I/O Directo
            

I-O_directo.gif (1602 bytes)

             

Figura. Direccionamiento directo de I/O

          

La dirección del operando está contenida en seis bits de la palabra (word) de la instrucción. n es el destino o dirección de registro fuente.

               
Dato directo
             

dato_directo.gif (2210 bytes)

              

Figura. Direccionamiento directo de datos

                     

Una dirección de datos de 16 bit está contenida en los 16 LSBs de una instrucción de 2-word. Rd/Rr especifican el destino o registro fuente.

      
Dato indirecto con desplazamiento
               

dato_indirec.gif (2501 bytes)

             

Figura. Dato indirecto con desplazamiento

            

La dirección del operando es el resultado del contenido de los registros Y o Z sumada a la dirección contenida en seis bits de la palabra (word) de la instrucción.

          
Dato indirecto
              

dato_indirec2.gif (2090 bytes)

           

Figura. Direccionamiento indirecto de datos

         

La dirección del operando es el contenido del registro X, Y o del Z.

     
Dato indirecto con pre-decremento
                

dato_indir_predec.gif (2610 bytes)

                 

Figura. Direccionamiento indirecto de datos con pre-decremento

         

El registro X, Y o el Z es decrementado antes de la operación. La dirección del operando es el contenido decrementado del registro X, Y o Z.

             
Dato indirecto con post-incremento
               

Dato_indirec_post-incre.gif (2540 bytes)

            

Figura. Direccionamiento indirecto de datos con post-incremento

         

El registro X, Y o el Z se incrementa después de la operación. La dirección del operando es el contenido del registro X, Y o Z previo al incremento.

                
Direccionamiento de una Constante usando la Instrucción LPM
                  

constante_LPM.gif (2623 bytes)

                

Figura. Direccionamiento de una constante de memoria código

                

La dirección del byte constante está especificada por el contenido del registro Z. Los 15 MSBs seleccionan la dirección de la palabra (0 - 4K), el LSB selecciona el byte bajo si está borrado (LSB = 0) o el byte alto si está a set (LSB = 1).

             
Direccionamiento de programa indirecto, IJMP e ICALL
                 

indir_program.gif (2405 bytes)

           

Figura. Direccionamiento de memoria de programa indirecto

            

La ejecución del programa continúa en la dirección contenida por el registro Z (es decir, el PC está cargado con el contenido del registro Z).

       
Direccionamiento de memoria relativo, RJMP y RCALL
           

direc_relativo.gif (2763 bytes)

            

Figura. Direccionamiento de memoria de programa relativo

         

La ejecución del   programa continúa en la dirección  PC + k + 1.  La dirección relativa k va de -2048 a 2047.

              
                                         

ARRIBA