pub struct Assembler { /* private fields */ }
Implementations§
Source§impl Assembler
impl Assembler
pub fn new() -> Assembler
pub fn bytes(&self) -> Vec<u8> ⓘ
Sourcepub fn mw(&mut self, dest: Register, src: RegisterOrImm)
pub fn mw(&mut self, dest: Register, src: RegisterOrImm)
Moves a register or 8-bit immediate value from src
into a register dest
.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn lw(&mut self, dest: Register, src: Option<u16>)
pub fn lw(&mut self, dest: Register, src: Option<u16>)
Loads a 8-bit value from memory into a register dest
.
If src
is Some(...)
, the value passed in src
is used as the source address.
If src
is None
, the value in the HL
register is used as the source address.
Sourcepub fn sw(&mut self, dest: Option<u16>, src: Register)
pub fn sw(&mut self, dest: Option<u16>, src: Register)
Stores an 8-bit value from a register src
into memory.
If dest
is Some(...)
, the value passed in dest
is used as the destination address.
If dest
is None
, the value in the HL
register is used as the destination address.
Sourcepub fn push(&mut self, src: RegisterOrImm)
pub fn push(&mut self, src: RegisterOrImm)
Pushes a register or 8-bit immediate value onto the stack.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn pop(&mut self, dest: Register)
pub fn pop(&mut self, dest: Register)
Pops a value from the stack and loads it into a register dest
.
Sourcepub fn jnz(&mut self, src: RegisterOrImm)
pub fn jnz(&mut self, src: RegisterOrImm)
Jumps to the address specified by the HL
register if the immediate value src
or the
value in the register src
is not zero.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn inb(&mut self, dest: Register, src: RegisterOrImm)
pub fn inb(&mut self, dest: Register, src: RegisterOrImm)
Reads a byte from the port specified by src
into a register dest
.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn outb(&mut self, dest: RegisterOrImm, src: Register)
pub fn outb(&mut self, dest: RegisterOrImm, src: Register)
Writes a byte from a register src
to the port specified by dest
.
§Panics
Panics if the dest
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn add(&mut self, dest: Register, src: RegisterOrImm)
pub fn add(&mut self, dest: Register, src: RegisterOrImm)
Adds a register or 8-bit immediate value src
and the value in a register dest
.
The result is stored in the register dest
.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn adc(&mut self, dest: Register, src: RegisterOrImm)
pub fn adc(&mut self, dest: Register, src: RegisterOrImm)
Adds with carry a register or 8-bit immediate value src
and the value in a register dest
.
The result is stored in the register dest
.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn and(&mut self, dest: Register, src: RegisterOrImm)
pub fn and(&mut self, dest: Register, src: RegisterOrImm)
Performs a bitwise AND operating on a register or 8-bit immediate value src
and the value in a register dest
.
The result is stored in the register dest
.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn or(&mut self, dest: Register, src: RegisterOrImm)
pub fn or(&mut self, dest: Register, src: RegisterOrImm)
Performs a bitwise OR operating on a register or 8-bit immediate value src
and the value in a register dest
.
The result is stored in the register dest
.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn nor(&mut self, dest: Register, src: RegisterOrImm)
pub fn nor(&mut self, dest: Register, src: RegisterOrImm)
Performs a bitwise NOR operating on a register or 8-bit immediate value src
and the value in a register dest
.
The result is stored in the register dest
.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn cmp(&mut self, left: Register, right: RegisterOrImm)
pub fn cmp(&mut self, left: Register, right: RegisterOrImm)
Compares a register or 8-bit immediate value src
and the value in a register dest
.
Sets the flags register accordingly.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.
Sourcepub fn sbb(&mut self, dest: Register, src: RegisterOrImm)
pub fn sbb(&mut self, dest: Register, src: RegisterOrImm)
Subtracts a register or 8-bit immediate value src
from the value in a register dest
.
The result is stored in the register dest
.
§Panics
Panics if the src
operand is not RegisterOrImm::Reg()
or RegisterOrImm:Imm8()
.