q/src/build/arch/x64/ModRM.go
2024-07-20 00:58:39 +02:00

17 lines
350 B
Go

package x64
const (
AddressMemory = byte(0b00)
AddressMemoryOffset8 = byte(0b01)
AddressMemoryOffset32 = byte(0b10)
AddressDirect = byte(0b11)
)
// ModRM is used to generate a ModRM suffix.
// - mod: 2 bits
// - reg: 3 bits
// - rm: 3 bits
func ModRM(mod byte, reg byte, rm byte) byte {
return (mod << 6) | (reg << 3) | rm
}