Generalidades sobre ensamblador
El lenguaje ensamblador es un lenguaje de programación a muy bajo nivel, pero legible por humanos. Generalmente cada instrucción en ensamblador corresponde a una instrucción en código máquina, en ocasiones, hay instrucciones en ensamblado (macros) que representan dos o mas instrucciones de código máquina (pero no suele ser lo normal).
Tipos de instrucciones:
- Transferencia de datos: registros->memoria, memoria->registros, entrada/salida
- Operaciones aritmético-lógicas (procesadas por la ALU): suma, resta, multiplicación, división, AND, OR, XOR, NOT, desplazamiento de bits, SET, RESET…
- Operaciones de control de flujo: saltos condicional/incondicional, llamadas a funciones, retorno de funciones
En casi todos los procesadores suele haber dos registros muy importantes: PC (Program Counter) y SP (Stack Pointer) El primer registro se encarga de almacenar la dirección de memória de la instrucción que se va a ejecutar, mientras que el segundo registro se encarga de guardar la dirección de la pila.
Modos de direccionamiento:
El modo de direccionamiento indica la forma en que se llega al operando de una instrucción, los más usados son:
- Implícito o Inherente: La instrucción no requiere operandos.
Ejemplo: NOP Operación: NOP
- Inmediato: El operando sigue al código de operación.
(Para indicar este modo de direccionamiento se suele anteponer un numeral (#) al operando)
Ejemplo: LDA #$15 Operación: LDA Operando: $15 (15 en hexadecimal)
- Absoluto: La dirección del operando se indica a continuación del código de operación.
Ejemplo: STA $6885 Operación: STA Operando: Valor contenido en la dirección de memoria $6885.
- Indexado: La dirección del operando se indica a continuación del código de operación, expresada en forma de DIRECCION,REGISTRO_INDICE, estos valores se suman.
Ejemplo: LDA $4000,X Operación: LDA Operando: Valor contenido en la dirección de memoria $4000 más el contenido del registro índice X.
- Relativo: El operando es un valor, que debe sumarse a un registro base (usualmente el PC).
Ejemplo: BRA $08 (Siendo PC: 9950) Operación: BRA Operando: Valor que debe sumarse al PC para llegar a la dirección destino, cabe aclarar que de por sí la instrucción BRA suma 1 a este valor. Es decir, en este mismo ejemplo, el programa saltaría a $9950+$01+$08
Artículos sobre Arquitectura de Procesadores
- Procesadores RISC
- Generalidades sobre procesadores
- Codificación de instrucciones
- Procesadores CISC
- Generalidades sobre ensamblador
- Problemas de alineación
Artículos sobre traducción
Artículos sobre almacenamiento
- Información técnica sobre sectores y segmentos
- Información técnica sobre estructura de ROMs
- Información técnica sobre relocalizaciones (RELOCS) aplicadas a traducciones en sistemas compatibles
- Información técnica sobre punteros
- Información técnica sobre CDs y DVDs
Artículos de programación
Artículos sobre edición gráfica
Artículos sobre codificación
- Codificación UTF-8
- Tablas de traducción
- Codificación Shift-JIS
- Codificación numérica
- Tablas MTE
- Generalidades sobre la codificación
- Tablas DTE
- Codificación ASCII