Использование протоколов IPX, SPX, NETBIOS

       

POST-программа


POST-программа является программой обработки прерывания. Она получает управление в состоянии с запрещенными прерываниями. Регистры ES:BX содержат адрес блока NCB, который использовался при выполнении команды.

В регистр AL записано значение из поля FinalCCode блока NCB.

Учтите, что, как и из любой другой программы обработки прерывания, из POST-программы не следует вызывать функции MS-DOS.

Требования к POST-программе во многом такие же, как и к ESR-программе, используемой протоколами IPX и SPX. Она должна позаботиться о сохранении изменяемых регистров, установить регистр DS на сегмент данных программы (для обеспечения доступа к переменным). POST-программа должна работать как можно быстрее. Лучше всего если она будет использоваться только для установки флага, сигнализирующего основной программе о завершении выполнения команды.

Перед завершением своей работы POST-программа должна восстановить содержимое всех регистров и выполнить команду возврата из прерывания IRET.

Если вы составляете POST-программу на языке программирования Си, вы можете воспользоваться ключевым словом interrupt:

void interrupt NETBIOS_Post_Routine(void);

Лучше всего составить POST-программу на языке ассемблера, например, так:

.286 .MODEL SMALL

.DATA

_completed_ncb_ptr dd 0

.CODE

PUBLIC _netbios_post PUBLIC _completed_ncb_ptr

_netbios_post PROC FAR

push ax push ds push es push si

mov ax, DGROUP mov ds, ax

mov word ptr _completed_ncb_ptr+2, es mov word ptr _completed_ncb_ptr, si

pop si pop es pop ds pop ax

iret _netbios_post ENDP

end



Содержание раздела