On this page:
ldl
ldh
ldw
ldd
ldr*
ldr
swap*
swap

3 0001 - Register Operations🔗

opcode

(ldl r i)

 
r = bb68-gpr
 
  r : (integer-in 0 15)
  i : (integer-in 0 255)

image

 mask: f000

value: 1000

load an 8-bit constant into the register, clearing its higher 8 bits

opcode

(ldh r i)

 
r = bb68-gpr
 
  r : (integer-in 0 15)
  i : (integer-in 0 255)

image

 mask: f000

value: 3000

load an 8-bit constant into the higher 8 bits of the register

macro opcode

(ldw r:bb68-gpr w:bb68-word)

macro documentation test

macro opcode

(ldd p:bb68-gprp l)

Loads 32-bit integer into the specified pair. The higher 16 bits go into the first register and the lower into the second.

private opcode

(ldr* n m)

 
n = bb68-gpr
     
m = bb68-gpr
 
  n : (integer-in 0 15)
  m : (integer-in 0 15)

image

 mask: ff00

value: 2000

macro opcode

(ldr variant)

 
variant = dest:bb68-gpr src:bb68-gpr
  | dest:bb68-gprp src:bb68-gprp
Copies/moves a value to a register or register pair dest from a given register (pair) src.

private opcode

(swap* n m)

 
n = bb68-gpr
     
m = bb68-gpr
 
  n : (integer-in 0 15)
  m : (integer-in 0 15)

image

 mask: ff00

value: 2100

macro opcode

(swap variant)

 
variant = dest:bb68-gpr src:bb68-gpr
  | dest:bb68-gprp src:bb68-gprp
Swaps values of a register or register pair dest with a given register (pair) src.