How to Reboot Your Machine Within a MASM ApplicationLast reviewed: January 6, 1995Article ID: Q68805 |
The information in this article applies to:
SUMMARYYou can perform a complete reboot (cold boot) on an 8086-based machine by jumping to the address FFFF:0000. This action also reboots many 80286 and 80386 machines. The address contains a jump instruction that leads to the machine's initialization code. For this method to succeed, your machine must be in real-mode operation.
MORE INFORMATIONTo prevent a memory check on IBM and many compatibles (warm boot), you should store the value 0 x 1234 in the memory location at 0040:0072. On 100-percent IBM BIOS compatible machines, an alternative method is to call int 19h instead of jumping to the address mentioned above.
Sample Code; Assemble options needed: none .MODEL small .CODE Start: mov ax, @data ; Load ds with data segment mov ds, ax mov ax, 40h ; These three lines cause a memory mov es, ax ; test NOT to be performed. To mov WORD PTR es:[72h], 1234h ; do a memory test, remove them. jmp DWORD PTR b_vec ; Jump to the reboot address.DATA b_vec DW 00000h ; Offset of reboot vector DW 0FFFFh ; Segment of reboot vector.STACK END Start
|
Additional reference words: 5.10 5.10a 6.00 6.00a 6.00b
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |