The VDM provides a complete set of API functions to manipulate the registers of an x86 processor. The VDD can use these functions to get and set registers as needed to facilitate its communication with its device. These functions can be used to get CS and IP during a memory hook, as described in Memory Hooks.The register functions are useful in a VDD if your modified application calls the VDD directly, because the direct interface between an MS-DOS application and a VDD requires certain arguments be passed in registers.
On a RISC-based Windows NT machine, these register manipulation functions use the virtual register set maintained by the x86 emulator.
Table 8.1 Register Manipulation Functions
| GET Register Functions | SET Register Functions |
| getEAX( ) | setEAX(value) |
| getAX( ) | setAX(value) |
| getAH( ) | setAH(value) |
| getAL( ) | setAL(value) |
| getEBX( ) | setEBX(value) |
| getBX( ) | setBX(value) |
| getBH( ) | setBH(value) |
| getBL( ) | setBL(value) |
| getECX( ) | setECX(value) |
| getCX( ) | setCX(value) |
| getCH( ) | setCH(value) |
| getCL( ) | setCL(value) |
| getEDX( ) | setEDX(value) |
| getDX( ) | setDX(value) |
| getDH( ) | setDH(value) |
| getDL( ) | setDL(value) |
| getESP( ) | setESP(value) |
| getSP( ) | setSP(value) |
| getEBP( ) | setEBP(value) |
| getBP( ) | setBP(value) |
| getESI( ) | setESI(value) |
| getSI( ) | setSI(value) |
| getEDI( ) | setEDI(value) |
| getDI( ) | setDI(value) |
| getEIP( ) | setEIP(value) |
| getIP( ) | setIP(value) |
| getCS( ) | setCS(value) |
| getSS( ) | setSS(value) |
| getDS( ) | setDS(value) |
| getES( ) | setES(value) |
| getCF( ) | setCF(value) |
| getPF( ) | setPF(value) |
| getAF( ) | setAF(value) |
| getZF( ) | setZF(value) |
| getSF( ) | setSF(value) |
| getIF( ) | setIF(value) |
| getDF( ) | setDF(value) |
| getOF( ) | setOF(value) |
| getMSW( ) | setMSW(value) |