Added assembler instructions

This commit is contained in:
2023-10-21 13:41:47 +02:00
parent 61af142930
commit 4967719902
10 changed files with 438 additions and 21 deletions

8
src/asm/Assembler.go Normal file
View File

@ -0,0 +1,8 @@
package asm
import "bytes"
type Assembler struct {
Code bytes.Buffer
Data bytes.Buffer
}

View File

@ -0,0 +1,11 @@
package x64
import "io"
// AppendUint32 appends a 32 bit number in Little Endian to the given writer.
func AppendUint32(w io.ByteWriter, number uint32) {
w.WriteByte(byte(number))
w.WriteByte(byte(number >> 8))
w.WriteByte(byte(number >> 16))
w.WriteByte(byte(number >> 24))
}

View File

@ -0,0 +1,10 @@
package x64
import (
"io"
)
func MoveRegNum32(w io.ByteWriter, register byte, number uint32) {
w.WriteByte(0xb8 + register)
AppendUint32(w, number)
}

10
src/asm/x64/Syscall.go Normal file
View File

@ -0,0 +1,10 @@
package x64
import (
"io"
)
func Syscall(w io.ByteWriter) {
w.WriteByte(0x0f)
w.WriteByte(0x05)
}