Ce que j'utilisais :ss
(pour le soft reboot)
ROMBIOS_DATAsssssegment at 0400h
ssssorg 72h
ssssResetFlagss dwss?
ROMBIOS_DATAssssends
ROMBIOSssss segment at 0f000h
ssssorg 0fff0h
Resetss labelss far
ROMBIOS ends
Dans le code :
ssssmov ax, seg ROMBIOS_DATA
ssssmov ds, ax
ASSUME ds:ROMBIOS_DATA
ssssmov ResetFlag, 1234hssssssss; ou 0 si c'est un cold reboot
ssssjmp Reset
---------------
(et pour hard reboot)
jmp f000:fff0 ;Call BIOS intr vector
ou alors
jmp F000:E05B ;Call BIOS intr vectorss
La premiere instruction est en fait un long jump vers la deuxieme. Il serait donc (theoriquement) mieux de faire appel directement a la seconde adresse. La premiere etant une adresse standard mais succeptible de changer au cours des evolutions des BIOS, la deuxieme ne changera pas (ou alors pas avant de nombreuse annees... au prochain bios quoi !)
Voila, A+++