Локальные сети персональных компьютеров Использование протоколов IPX, SPX, NETBIOS


         

приведен текст программы ESR,


printf("Ожидание ответа от сервера\n"); printf("Нажимайте любые клавиши\n"); printf("Для отмены нажмите клавишу <ESC>\n");
// Ожидаем прихода ответа от сервера
while(completed_ecb_ptr == NULL) { if( getche() == 27) { IPXCloseSocket(&Socket); exit(0); } } if(RxECB.CCode == 0) { printf("\nПринят ответ от сервера '%s'\n", RxBuffer); }
// Закрываем сокет
IPXCloseSocket(&Socket); exit(0); }
В листинге 8 приведен текст программы ESR, составленный на языке ассемблера. Программа загружает регистр DS адресом сегмента данных программы, затем записывает в глобальную переменную completed_ecb_ptr содержимое регистров ES:SI.
; =================================================== ; Листинг 8. Программа ESR ; Файл esr.asm ; ; (C) A. Frolov, 1992 ; ===================================================
.286 .MODEL SMALL
.DATA
_completed_ecb_ptr dd 0
.CODE
PUBLIC _ipxspx_esr PUBLIC _completed_ecb_ptr
_ipxspx_esr PROC FAR
mov ax, DGROUP mov ds, ax
mov word ptr _completed_ecb_ptr+2, es mov word ptr _completed_ecb_ptr, si
retf _ipxspx_esr ENDP
end

Содержание  Назад  Вперед