q/src/asm/MemoryNumber.go

29 lines
720 B
Go

package asm
import "strconv"
// MemoryNumber operates with a memory address and a number.
type MemoryNumber struct {
Address Memory
Number int
}
// String returns a human readable version.
func (data *MemoryNumber) String() string {
return data.Address.Format(strconv.Itoa(data.Number))
}
// MemoryNumber adds an instruction with a memory address and a number.
func (a *Assembler) MemoryNumber(mnemonic Mnemonic, address Memory, number int) {
a.Instructions = append(a.Instructions, Instruction{
Mnemonic: mnemonic,
Type: TypeMemoryNumber,
Index: Index(len(a.Param.MemoryNumber)),
})
a.Param.MemoryNumber = append(a.Param.MemoryNumber, MemoryNumber{
Address: address,
Number: number,
})
}