Locate_Byte_In_ROM

include vmm.inc

mov al, Byte ; byte to locate

VMMcall Locate_Byte_In_ROM

jc not_found ; carry flag set if byte not found

mov [Location], eax ; linear address of byte


The Locate_Byte_In_ROM service scans the system ROM for a specified byte. Virtual devices use this service to locate single-byte instructions, such as the iret instruction, that must be protected from modification by programs running in a virtual machine.

Parameters

Byte

Specifies the value of the byte to search for.

Return Value

If the carry flag is clear, the EAX register contains the linear address of the byte. This address will be less than 1 megabyte. If the carry flag is set, the byte was not found or the user has disabled the service.

Comments

Users can disable this service by setting to false the SystemROMBreakpoint setting in the [386Enh] section of the SYSTEM.INI file.

Uses

EAX, Flags