Beruflich Dokumente
Kultur Dokumente
Sintaxis: OR Rd, Rr
Operación: Rd ← Rd v Rr
Numero de ciclos: 1
Bits de estados que se afectan: Z, N, V
Operandos: 0 ≤ d ≤ 31, 0 ≤ R ≤ 31
Ejemplo:
Antes de la instrucción: R10=1 R11=0
OR R11, R10
Después de la instrucción: R10=1 R11=1
ORI OR lógico entre un registro y una constante
Sintaxis: COM Rd
Operación: Rd ← 0xFF - Rd
Numero de ciclos: 1
Bits de estados que se afectan: Z, C, N, V
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Antes de la instrucción: R5=11100101
COM R5
Después de la instrucción: R5=00011010
Sintaxis: NEG Rd
Operación: Rd ← 0x00 - Rd
Numero de ciclos: 1
Bits de estados que se afectan: Z, C, N, V, H
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Antes de la instrucción: R12=100101011
NEG R12
Después de la instrucción: R1=011010101
SBR Pone a set bit(s) del registro. SBR pone a set los bits del registro
Rd indicados. Realiza la ORI lógica entre el contenido del registro
Rd y una constante K, y deja el resultado en el registro destino
Rd.
CBR Borrar bit(s) del registro. CBR borra los bits indicados del
registro Rd. Realiza el AND lógico entre el contenido del registro
Rd y el complemento de la constante K. El resultado se deja en el
registro destino Rd.
INC Incrementar
Sintaxis: INC Rd
Operación: Rd ← Rd + 1
Numero de ciclos: 1
Bits de estados que se afectan: Z, N, V
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Antes de la instrucción: R8=2
INC R8
Después de la instrucción: R8=2
DEC Decrementar
Sintaxis: DE Rd
Operación: Rd ← Rd - 1
Numero de ciclos: 1
Bits de estados que se afectan: Z, N, V
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Antes de la instrucción: R5=10
DEC R5
Después de la instrucción: R1=9
Sintaxis: TST Rd
Operación: Rd ← Rd ● Rd
Numero de ciclos: 1
Bits de estados que se afectan: Z, N, V
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Antes de la instrucción: R11=10011
TST R11
Después de la instrucción: R11=10011
Sintaxis: CLR Rd
Operación: Rd ← Rd Rd
Numero de ciclos: 1
Bits de estados que se afectan: Z, N, V
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Antes de la instrucción: R16=11111
CLR R6
Después de la instrucción: R16=00000
Sintaxis: SER Rd
Operación: Rd ← 0xFF
Numero de ciclos: 1
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Antes de la instrucción: R12=00000000
SER R12
Después de la instrucción: R12=11111111
MUL Multiplicación sin signo
Numero de ciclos: 2
Bits de estados que se afectan: Z, C
Operandos: 0 ≤ d ≤ 31, 0 ≤ R ≤ 31
Ejemplo:
Antes de la instrucción: R8=10000100 R9=11001101
MUL R8, R9
Después de la instrucción: R1=00110100 R0=10110100
Numero de ciclos: 2
Bits de estados que se afectan: Z, C
Operandos: 16 ≤ d ≤ 31, 16 ≤ R ≤ 31
Ejemplo:
Antes de la instrucción: R2=11001100 R7=10101001
MULS R2, R7
Después de la instrucción: R1= 10000110 R0=10101100
Numero de ciclos: 2
Bits de estados que se afectan: Z, C
Operandos: 16 ≤ d ≤ 31, 16 ≤ R ≤ 31
Ejemplo:
Antes de la instrucción: R2=11001100 R7=10101001
MULS R14, R15
Después de la instrucción: R1= 10000110 R0=10101100
FMUL Multiplicación fraccional sin signo
Numero de ciclos: 2
Bits de estados que se afectan: Z, C
Operandos: 16 ≤ d ≤ 31, 16 ≤ R ≤ 31
Ejemplo:
Antes de la instrucción: R2=1001.1110 R7=1101.1001
FMUL R2, R7
Después de la instrucción: R1=10000101 R0=11101110
Numero de ciclos: 2
Bits de estados que se afectan: Z, C
Operandos: 16 ≤ d ≤ 31,16 ≤ R ≤ 31
Ejemplo:
Antes de la instrucción: R2=1001.1110 (+) R7=1101.1001 (-1)
FMULS R2, R7
Después de la instrucción: R1=10000101 R0=11101110) (-1)
Numero de ciclos: 2
Bits de estados que se afectan: Z, C
Operandos: 16 ≤ d ≤ 31,16 ≤ R ≤ 31
Ejemplo:
Antes de la instrucción: R2=1001.1110 R7=1101.1001 (-1)
FMULSU R2, R7
Después de la instrucción: R1=10000101 R0=11101110) (-1)
INSTRUCCIONES DE SALTO
Sintaxis: RJMP k
Operación: Pc ← Pc + k + 1
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: -2K < k < 2K
Ejemplo:
CPI r16,$42 ; Compara r16 con $42
BRNE error ; Desvío si r16 < > $42
RJMP ok ; Desvío incondicional
error: ADD r16,r17 ; Suma r17 a r16
INC r16 ; Incrementa r16
ok: NOP ; Destino de rjmp (no hacer nada)
Sintaxis: IJMP
Operación: Pc ← Z
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: Ninguno
Ejemplo:
Sintaxis: JMP k
Operación: Pc ← k
Numero de ciclos: 3
Bits de estados que se afectan: Ninguno
Operandos: 0 < k < 4M
Ejemplo:
Sintaxis: RCALL k
Operación: Pc ← Pc + k + 1
Numero de ciclos: 4
Bits de estados que se afectan: Ninguno
Operandos: -2K < k < 2K
Ejemplo:
RCALL routine ; Llamada a subrutina
...
routine: PUSH r14 ; Guardar r14 en la pila
...
POP r14 ; Restaurar r14
RET ; Retorno de subrutina
Sintaxis: ICALL
Operación: Pc ← Z
Numero de ciclos: 4
Bits de estados que se afectan: Ninguno
Operandos: Ninguno
Ejemplo:
Sintaxis: CALL k
Operación: Pc ← k
Numero de ciclos: 5
Bits de estados que se afectan: Ninguno
Operandos: 0 < k < 4M
Ejemplo:
Sintaxis: RET
Operación: Pc ← Stack
Numero de ciclos: 5
Bits de estados que se afectan: Ninguno
Operandos: Ninguno
Ejemplo:
Sintaxis: RETI
Operación: Pc ← Stack
Numero de ciclos: 5
Bits de estados que se afectan: I
Operandos: Ninguno
Ejemplo:
...
extint: PUSH r0 ; Guardar r0 en la pila
...
POP r0 ; Restaurar r0
RETI ; Retorno y habilitación de interrupciones
INC r2 ; Incrementar r2
CPSE r2,r0 ; Comparar r2 con r0
NEG r2 ; Sólo ejecutar si r2 < > r0
NOP ; Continuar (No hacer nada)
CP Comparar
Sintaxis: CP Rd, Rr
Operación: Rd - Rr
Numero de ciclos: 1
Bits de estados que se afectan: Z, N, V, C, H
Operandos: 0 ≤ d ≤ 31, 0 ≤ R ≤ 31
Ejemplo:
Sintaxis: SBIC A, b
Operación: Si I/O(A,b) = 0 entonces PC ← PC + 2 (o 3) sino
PC ← PC + 1
Numero de ciclos: 1/2/3
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ A ≤ 31, 0 ≤ b ≤ 7
Ejemplo:
Sintaxis: SBIS A, b
Operación: Si I/O(A,b) = 1 entonces PC ← PC + 2 (o 3) sino
PC ← PC + 1
Numero de ciclos: 1/2/3
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ A ≤ 31, 0 ≤ b ≤ 7
Ejemplo:
Sintaxis: BRBS s, k
Operación: Si SREG(s) = 1 entonces PC ← PC + k + 1, sino
PC ← PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ s ≤ 7, -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRBC s, k
Operación: Si SREG(s) = 0 entonces PC ← PC + k + 1, sino
PC ← PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ s ≤ 7, -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BREQ k
Operación: Si Z = 1 entonces PC ← PC + k + 1, sino PC ←
PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRNE k
Operación: Si Z = 0 entonces PC ← PC + k + 1, sino PC ←
PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRCS k
Operación: Si C = 1 entonces PC ← PC + k + 1, sino PC ←
PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRCC k
Operación: Si C = 0 entonces PC ← PC + k + 1, sino PC ←
PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRSH k
Operación: Si C = 0 entonces PC ← PC + k + 1, sino PC ←
PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRLO k
Operación: Si C = 1 entonces PC ← PC + k + 1, sino PC ←
PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRMI k
Operación: Si N = 1 entonces PC ← PC + k + 1, sino PC ←
PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRPL k
Operación: Si N = 0 entonces PC ← PC + k + 1, sino PC ←
PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRGE k
Operación:
← PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRLT k
Operación: Si
← PC + 1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRHS k
Operación: Si H= 1 entonces PC ←PC + k + 1 sino PC ← PC
+1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
; Desvío si el flag Half-carry está a set
BRHS hset
...
hset: NOP ; Destino de desvío (No hacer nada)
Sintaxis: BRHC k
Operación: Si H= 0 entonces PC ←PC + k + 1 sino PC ← PC
+1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRTS k
Operación: Si T = 1 entonces PC ←PC + k + 1 sino PC ← PC
+1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRTC k
Operación: Si T = 0 entonces PC ←PC + k + 1 sino PC ← PC
+1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRVS k
Operación: Si V = 1 entonces PC ←PC + k + 1 sino PC ← PC
+1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRVC k
Operación: Si V = 0 entonces PC ←PC + k + 1 sino PC ← PC
+1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRIE k
Operación: Si I = 1 entonces PC ←PC + k + 1 sino PC ← PC
+1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: BRID k
Operación: Si I = 0 entonces PC ←PC + k + 1 sino PC ← PC
+1
Numero de ciclos: 1/2
Bits de estados que se afectan: Ninguno
Operandos: -64 ≤ k ≤ +63
Ejemplo:
Sintaxis: LSL Rd
Operación: C b7-------------------b0 0
Numero de ciclos: 1
Bits de estados que se afectan: Z, C, N, V
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: LSR Rd
Operación: b7-------------------
0 C
b0
Numero de ciclos:
1
Bits de estados que se afectan: Z, C, N, V
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: ROL Rd
Operación: b7------------------
C C
-b0
Numero de ciclos:
1
Bits de estados que se afectan: Z, C, N, V
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: ROR Rd
Operación:
b7-------------------
C C
b0
Numero de ciclos:
1
Bits de estados que se afectan: Z, C, N, V
Operandos: 0 ≤ d ≤ 31
Ejemplo:
LSR r19 ; Dividir r19:r18 por dos
ROR r18 ; r19:r18 es un entero sin signo de dos-byte
BRCC zeroenc1 ; Desvío si carry está borrado
asr r17 ; Dividir r17:r16 por dos
ror r16 ; r17:r16 es un entero con signo de dos-byte
brcc zeroenc2 ; Desvío si carry está borrado
...
zeroenc1: NOP ; Destino de desvío (No hacer nada)
...
zeroenc2: NOP ; Destino de desvío (No hacer nada)
Sintaxis: ROR Rd
Operación:
Numero de ciclos: 1
Bits de estados que se afectan: Z, C, N, V
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: SWAP Rd
Operación: R(7:4) ← Rd(3:0), R(3:0) ← Rd(7:4)
Numero de ciclos: 1
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
INC r1 ; Incrementar r1
SWAP r1 ; Cambiar los nibbles alto y bajo de r1
Sintaxis: BSET s
Operación: SREG(s) ←1
Numero de ciclos: 1
Bits de estados que se afectan: SREG(s)
Operandos: 0≤s≤7
Ejemplo:
Sintaxis: BCLR s
Operación: SREG(s) ←0
Numero de ciclos: 1
Bits de estados que se afectan: SREG(s)
Operandos: 0≤s≤7
Ejemplo:
Sintaxis: SEC
Operación: C ←1
Numero de ciclos: 1
Bits de estados que se afectan: C
Operandos: Ninguno
Ejemplo:
Sintaxis: CLC
Operación: C ←0
Numero de ciclos: 1
Bits de estados que se afectan: C
Operandos: Ninguno
Ejemplo:
Sintaxis: SEN
Operación: N ←1
Numero de ciclos: 1
Bits de estados que se afectan: N
Operandos: Ninguno
Ejemplo:
Sintaxis: CLN
Operación: N ←0
Numero de ciclos: 1
Bits de estados que se afectan: N
Operandos: Ninguno
Ejemplo:
Sintaxis: SEZ
Operación: Z ←1
Numero de ciclos: 1
Bits de estados que se afectan: Z
Operandos: Ninguno
Ejemplo:
ADD r2,r19 ; Sumar r19 a r2
SEZ ; Poner a set el flag cero
Sintaxis: CLZ
Operación: Z ←0
Numero de ciclos: 1
Bits de estados que se afectan: Z
Operandos: Ninguno
Ejemplo:
Sintaxis: SEI
Operación: I ←1
Numero de ciclos: 1
Bits de estados que se afectan: I
Operandos: Ninguno
Ejemplo:
Sintaxis: CLI
Operación: I ←0
Numero de ciclos: 1
Bits de estados que se afectan: I
Operandos: Ninguno
Ejemplo:
Sintaxis: SES
Operación: S ←1
Numero de ciclos: 1
Bits de estados que se afectan: S
Operandos: Ninguno
Ejemplo:
Sintaxis: CLS
Operación: S ←0
Numero de ciclos: 1
Bits de estados que se afectan: S
Operandos: Ninguno
Ejemplo:
Sintaxis: SEV
Operación: V ←1
Numero de ciclos: 1
Bits de estados que se afectan: V
Operandos: Ninguno
Ejemplo:
Sintaxis: CLV
Operación: V ←0
Numero de ciclos: 1
Bits de estados que se afectan: V
Operandos: Ninguno
Ejemplo:
Sintaxis: SET
Operación: T ←1
Numero de ciclos: 1
Bits de estados que se afectan: T
Operandos: Ninguno
Ejemplo:
Sintaxis: CLT
Operación: T ←0
Numero de ciclos: 1
Bits de estados que se afectan: T
Operandos: Ninguno
Ejemplo:
Sintaxis: SEH
Operación: H ←1
Numero de ciclos: 1
Bits de estados que se afectan: H
Operandos: Ninguno
Ejemplo:
Sintaxis: CLH
Operación: H ←0
Numero de ciclos: 1
Bits de estados que se afectan: H
Operandos: Ninguno
Ejemplo:
LD Carga indirecta
Sintaxis: LD Rd, X
Operación: Rd ←(X)
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
CLR r27 ; Borrar el byte alto de X
LDI r26,$60 ; Poner el byte bajo de X a $60
LD r0,X+ ; Cargar r0 con la posición del espacio de datos $60
; (X post-incrementado)
LD r1,X ; Cargar r1 con la posición del espacio de datos $61
Sintaxis: LD Rd, X+
Operación: Rd ←(X), X← X+1
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
CLR r27 ; Borrar el byte alto de X
LDI r26,$60 ; Poner el byte bajo de X a $60
LD r0,X+ ; Cargar r0 con la posición del espacio de datos $60
; (X post-incrementado)
LD r1,X ; Cargar r1 con la posición del espacio de datos $61
Sintaxis: LD Rd, - X
Operación: X← X – 1, Rd ←(X),
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
CLR r27 ; Borrar el byte alto de X
LDI r26,$60 ; Poner el byte bajo de X a $60
LD r0,X+ ; Cargar r0 con la posición del espacio de datos $60
; (X post-incrementado)
LD r1,X ; Cargar r1 con la posición del espacio de datos $61
LDI r26,$63 ; Poner el byte bajo de X a $63
LD r2,X ; Cargar r2 con la posición del espacio de datos $63
LD r3,-X ; Cargar r3 con la posición del espacio de datos $62
; (X pre-decremento)
LD Carga indirecta
Sintaxis: LD Rd, Y
Operación: Rd ←(Y)
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
CLR r29 ; Borrar el byte alto de Y
LDI r28,$60 ; Poner el byte bajo de Y a $60
LD r0,Y+ ; Cargar r0 con la posición del espacio de datos $60
; (Y post-incrementado)
LD r1,Y ; Cargar r1 con la posición del espacio de datos $61
Sintaxis: LD Rd, Y+
Operación: Rd ←(Y), Y← Y + 1
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
CLR r29 ; Borrar el byte alto de Y
LDI r28,$60 ; Poner el byte bajo de Y a $60
LD r0,Y+ ; Cargar r0 con la posición del espacio de datos $60
; (Y post-incrementado)
LD r1,Y ; Cargar r1 con la posición del espacio de datos $61
Sintaxis: LD Rd, -Y
Operación: Y← Y – 1, Rd ←(Y)
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
LD Carga indirecta
Sintaxis: LD Rd, Z
Operación: Rd ← (Z)
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: LD Rd, Z+
Operación: Rd ← (Z), Z ← Z + 1
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
CLR r31 ; Borrar el byte alto de Z
LDI r30,$60 ; Poner el byte bajo de Z a $60
LD r0,Z+ ; Cargar r0 con la posición del espacio de datos $60
; (Z post-incrementado)
LD r1,Z ; Cargar r1 con la posición del espacio de datos $61
LD Carga indirecta y pre-decremento
Sintaxis: LD Rd, -Z
Operación: Z ← Z - 1, Rd ← (Z)
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
CLR r31 ; Borrar el byte alto de Z
LDI r30,$60 ; Poner el byte bajo de Z a $60
LD r0,Z+ ; Cargar r0 con la posición del espacio de datos $60
; (Z post-incrementado)
LD r1,Z ; Cargar r1 con la posición del espacio de datos $61
LDI r30,$63 ; Poner el byte bajo de Z a $63
LD r2,Z ; Cargar r2 con la posición del espacio de datos $63
LD r3,-Z ; Cargar r3 con la posición del espacio de datos $62
; (Z pre-decremento)
Sintaxis: ST X, Rd
Operación: (X) ← Rd
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: ST X+, Rd
Operación: (X) ← Rd, X ← X + 1
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: ST X-, Rd
Operación: X ← X - 1, (X) ← Rd
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: ST Y, Rd
Operación: (Y) ← Rd
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
CLR r29 ; Borrar el byte alto de Y
LDI r28,$60 ; Poner el byte bajo de Y a $60
ST Y+,r0 ; Guardar r0 en la posición del espacio de datos $60
; (Y post-increentado)
ST Y,r1 ; Guardar r1 en la posición del espacio de datos $61
Sintaxis: ST Y+, Rd
Operación: (Y) ← Rd, Y ← Y + 1
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
CLR r29 ; Borrar el byte alto de Y
LDI r28,$60 ; Poner el byte bajo de Y a $60
ST Y+,r0 ; Guardar r0 en la posición del espacio de datos $60
; (Y post-increentado)
ST Y,r1 ; Guardar r1 en la posición del espacio de datos $61
Sintaxis: ST -Y, Rd
Operación: Y ← Y - 1 , (Y) ← Rd
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: ST Y + q, Rd
Operación: (Y + q) ← Rd
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31, 0 ≤ q ≤ 63
Ejemplo:
CLR r29 ; Borrar el byte alto de Y
LDI r28,$60 ; Poner el byte bajo de Y a $60
ST Y+,r0 ; Guardar r0 en la posición del espacio de datos $60
; (Y post-increentado)
ST Y,r1 ; Guardar r1 en la posición del espacio de datos $61
LDI r28,$63 ; Poner el byte bajo de Y a $63
ST Y,r2 ; Guardar r2 en la posición del espacio de datos $63
ST -Y,r3 ; Guardar r3 en la posición del espacio de datos $62
; (Y pre-decrementado)
STD Y+2,r4 ; Guardar r4 en la posición del espacio de datos $64
ST Guardar indirectamente
Sintaxis: ST Z, Rd
Operación: (Z) ← Rd
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: ST Z+, Rd
Operación: (Z) ← Rd, Z ← Z + 1
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
CLR r31 ; Borrar el byte alto de Z
LDI r30,$60 ; Poner el byte bajo de Z a $60
ST Z+,r0 ; Guardar r0 en la posición del espacio de datos $60
; (Z post-increentado)
ST Z,r1 ; Guardar r1 en la posición del espacio de datos $61
ST Guardar indirectamente y pre-decremento
Sintaxis: ST -Z, Rd
Operación: Z ← Z - 1, (Z) ← Rd
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: ST Z + q, Rd
Operación: (Z + q) ← Rd
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31, 0 ≤ q ≤ 63
Ejemplo:
Sintaxis: ST k, Rd
Operación: (k) ← Rd
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31, 0 ≤ k ≤ 65535
Ejemplo:
LDS r2,$FF00 ; Cargar r2 con el contenido de la posición $FF00
; del espacio de datos
ADD r2,r1 ; Sumar r1 a r2
STS $FF00,r2 ; Escribir en SRAM
Sintaxis: LPM
Operación: R0← Z
Numero de ciclos: 3
Bits de estados que se afectan: Ninguno
Operandos: Ninguno, R0 implícito
Ejemplo:
IN Leer puerto
Sintaxis: IN Rd, P
Operación: R0← Z
Numero de ciclos: 1
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31, P es la dirección de un puerto
Ejemplo:
Sintaxis: PUSH Rd
Operación: P← Rd
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
Sintaxis: POP Rd
Operación: Rd← Stack
Numero de ciclos: 2
Bits de estados que se afectan: Ninguno
Operandos: 0 ≤ d ≤ 31
Ejemplo:
NOP No operar
Sintaxis: NOP
Operación: No opera
Numero de ciclos: 1
Bits de estados que se afectan: Ninguno
Operandos: Ninguno
Ejemplo:
Sintaxis: SLEEP
Operación: Vea la documentación del dispositivo para obtener
una
Descripción detallada del uso de SLEEP.
Numero de ciclos: 1
Bits de estados que se afectan: Ninguno
Operandos: Ninguno
Ejemplo:
Sintaxis: WDR
Operación: Resetea el Timer Watchdog
Numero de ciclos: 1
Bits de estados que se afectan: Ninguno
Operandos: Ninguno
Ejemplo:
Sintaxis: BREAK
Operación: Para al CPU
Numero de ciclos: 1
Bits de estados que se afectan: Ninguno
Operandos: Ninguno
Ejemplo: