Sistemas Digitales II Programación. MODOS DE DIRECCIONAMIENTO DEL µC51 Los modos de direccionamiento son la manera que tienen los µC para accesar a los distintos recursos con los que cuenta. Para manipular los datos y códigos de operación en cada programa se tienen las siguientes formas de acceso: Direccionamiento Inmediato Direccionamiento por Registro Direccionamiento Directo Direccionamiento Indirecto Direccionamiento Relativo Direccionamiento Absoluto Direccionamiento Largo Direccionamiento Indexado Ing. Ricardo Godínez Bravo. Sistemas Digitales II Programación. MODOS DE DIRECCIONAMIENTO DEL µC51 Direccionamiento Inmediato Este modo permite cargar o accesar memoria con datos o constantes numericas. Estos operandos deben ser precedidos por el carácter #. MNEMÓNICO [destino], #[dato] Ing. Ricardo Godínez Bravo. Sistemas Digitales II Programación. MODOS DE DIRECCIONAMIENTO DEL µC51 Direccionamiento por Registro Este modo de acceso y manipulación de datos se refiere al uso de los registros R0-R7 de los bancos 0-3 del area de memoria interna de datos, ademas de los registros SFR’s como el acumulador (Acc), registro auxiliar (B), el apuntador de programa (DPTR) y el contador de programa (PC). MNEMÓNICO [destino], [fuente] Ing. Ricardo Godínez Bravo. Sistemas Digitales II Programación. MODOS DE DIRECCIONAMIENTO DEL µC51 Direccionamiento Directo Este tipo de direccionamiento puede accesar cualquier variable o registro en la RAM interna. Este direccionamiento genera dos Bytes de código, el primer Byte se refiere a la instrucción y el segundo Byte a la direccion fisica del registro o variable a accesar. El bit mas significativo de la dirección de acceso determina en que area de memoria se encuentra dicho registro: Dir.7 = 0, dirección 00H – 7FH (RAM general) Dir.7 = 1, dirección 80H – FFH (SFR’s) Ing. Ricardo Godínez Bravo. Sistemas Digitales II Programación. MODOS DE DIRECCIONAMIENTO DEL µC51 Direccionamiento Indirecto En este modo de direccionamiento la instrucción especifica un registro que contiene la direccióndel operando. El bit menos significativo del segundo Byte de código de operación indica cual registro de entre R0 y R1 es usado como apuntador. Los registros R0 y R1 estan determinados por el valos de los bits RS0 y RS1 del registro PSW. MNEMÓNICO [destino], @[R0,1] ;lectura MNEMÓNICO @[R0,1], [fuente] ;escritura Ing. Ricardo Godínez Bravo. Sistemas Digitales II Programación. MODOS DE DIRECCIONAMIENTO DEL µC51 Direccionamiento Relativo Este tipo de direccionamiento es usado sólo con ciertas instrucciones de salto cuya dirección relativa (OFFSET) es un valor de 8 bits con signo, el cual es sumado al contador de programa (PC) para formar la dirección de la proxima instrucción que se ejecutará. El rango del offset para las instrucciones de salto es de –128 hasta +127. Generalmente el salto es especificado por una etiqueta. SJMP [OFFSET] Ing. Ricardo Godínez Bravo. Sistemas Digitales II Programación. MODOS DE DIRECCIONAMIENTO DEL µC51 Direccionamiento Absoluto Este tipo de direccionamiento es usado sólo con las instrucciones de salto AJMP y ACALL. Este direccionamiento genera dos Bytes de código y la dirección de salto esta dentro de los 2KBytes determinado por los 11 bits menos significativos de la dirección del código de operación y el Byte 2 de la instrucción. AJMP [destino] El PC se carga con la dirección destino formada por los bits A0-A10 (2KBytes). Los bits A11-A15 del PC determinan la pagina de salto. Ing. Ricardo Godínez Bravo. Sistemas Digitales II Programación. MODOS DE DIRECCIONAMIENTO DEL µC51 Direccionamiento Largo Este tipo de direccionamiento es usado sólo con las instrucciones de salto LJMP y LCALL. Este direccionamiento genera tres Bytes de código y puede direccionar hasta 64KBytes de memoria. LJMP [destino] Ing. Ricardo Godínez Bravo. Sistemas Digitales II Programación. MODOS DE DIRECCIONAMIENTO DEL µC51 Direccionamiento Indexado Este tipo de direccionamiento usa un registro base(PC ó DPTR) y un offset (Acc) para formar la dirección efectiva de salto mediante las instrucciones JMP y MOVC. Se usa basicamente para accesar a tablas de datos y saltos a localidades que cambian constantemente. MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR Ing. Ricardo Godínez Bravo.