Added x86 package
Some checks failed
/ test (push) Failing after 14s

This commit is contained in:
Eduard Urbach 2025-06-23 11:43:09 +02:00
parent 31c5ed614c
commit 9b2b2578f5
Signed by: akyoto
GPG key ID: 49226B848C78F6C8
57 changed files with 2661 additions and 0 deletions

19
src/x86/ModRM.go Normal file
View file

@ -0,0 +1,19 @@
package x86
// AddressMode encodes the addressing mode.
type AddressMode = byte
const (
AddressMemory = AddressMode(0b00)
AddressMemoryOffset8 = AddressMode(0b01)
AddressMemoryOffset32 = AddressMode(0b10)
AddressDirect = AddressMode(0b11)
)
// ModRM is used to generate a mode-register-memory suffix.
// - mod: 2 bits. The addressing mode.
// - reg: 3 bits. Register reference or opcode extension.
// - rm: 3 bits. Register operand.
func ModRM(mod AddressMode, reg byte, rm byte) byte {
return (mod << 6) | (reg << 3) | rm
}