29 lines
720 B
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,
|
|
})
|
|
}
|