The programmer's model, addressing modes, instruction timing and the compact encoding tricks that make MSP430 feel simple without being trivial. El modelo del programador, los modos de direccionamiento, la temporización de instrucciones y los trucos de codificación compacta que hacen que MSP430 parezca simple sin ser trivial.
Santi Scagliusi, PhD
PC already points forward during decode. El PC ya apunta hacia delante durante la decodificación.
1. SP = SP − 2
2. [SP] ← Rn
1. Rn ← [SP]
2. SP = SP + 2
`C`, `Z`, `N`, `V` consumed by conditional jumps.`C`, `Z`, `N`, `V` consumidos por saltos condicionales.
`GIE`, `CPUOFF`, `OSCOFF`, `SCG0`, `SCG1``GIE`, `CPUOFF`, `OSCOFF`, `SCG0`, `SCG1`
Hardware: source = R3, As=01. No extension word. Hardware: fuente = R3, As=01. Sin palabra extra.
Registers, ALU and base word size.Registros, ALU y tamaño de palabra base.
Code, RAM and peripherals share one map.Código, RAM y periféricos en un único mapa.
Low byte first in memory.El byte bajo va primero en memoria.
Even addresses only. PC += 2.Solo direcciones pares. PC += 2.
Rn
Register modeModo registro
X(Rn)
Indexed familyFamilia indexada
@Rn
Indirect sourceFuente indirecta
@Rn+
Autoincrement sourceFuente con autoincremento
Register `Rn`Registro `Rn`
Indexed `X(Rn)`Indexado `X(Rn)`
EA = R5 + X
Assembler encodes as X(PC)El ensamblador codifica como X(PC)
Assembler encodes as X(SR), base = 0El ensamblador codifica como X(SR), base = 0
EA = PC(after extension fetch) + X
EA = 0 + X = X
1 cycle, 1 word
6 cycles, 3 words
2 cycles, 1 word
6 cycles / 5 cycles
Source: 2 bits (As). Destination: 1 bit (Ad). Fuente: 2 bits (As). Destino: 1 bit (Ad).
PCnew = PCold + 2 + offset x 2
Range: -511 to +512 words. Rango: -511 a +512 palabras.
Read opcode at PC.Leer opcode en PC.
Format, registers, addressing bits.Formato, registros, bits de direccionamiento.
Offsets / literals if needed.Offsets / literales si hacen falta.
Memory read, ALU, or jump eval.Lectura de memoria, ALU o eval de salto.
Store result, update SR.Escribir resultado, actualizar SR.