q/src/build/asm/MemoryNumber.go

28 lines
661 B
Go

package asm
import (
"fmt"
)
// 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 fmt.Sprintf("%dB [%s+%d], %d", data.Address.Length, data.Address.Base, data.Address.Offset, 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,
Data: &MemoryNumber{
Address: address,
Number: number,
},
})
}