Здравствуйте уважаемые волшебники асма)), кароч написал прогу, в которой есть 21 прерывание, когда пытаюсь протрассировать в debug и натыкаюсь на это прерывание, то надоедает смотреть, что делает это прерывание, можно ли дойдя до него как-нибудь по-быстрее протрассировать это прерывание и продолжить смотреть, что происходит дальше...???
Код (Text): CSEG segment assume cs:CSEG ds:CSEG ss:CSEG es:CSEG org 100h BEGIN: mov dx, offset FILE_NAME call OPEN_FILE jc QUIT_FROM_PROG mov bx, ax mov ah, 3Eh mov cx, FINISH-100h mov dx, offset BEGIN int 21h call CLOSE_FILE mov ah, 9 mov dx, offset MESS int 21h ret QUIT_FROM_PROG: mov ah, 2 mov dl, 7 int 21h ret OPEN_FILE proc cmp HANDLE, 0FFFFh jne ERROR mov ax, 3D00h int 21h mov HANDLE, ax ret ERROR: stc ret HANDLE dw 0FFFFh OPEN_FILE endp CLOSE_FILE proc mov ah, 3Eh mov bx, HANDLE int 21h ret CLOSE_FILE endp FILE_NAME db 'C:\afdpro\exec.com',0 MESS db 'O.K.',0Dh,0Ah,'$' FINISH equ $ CSEG ends end BEGIN Почему переменная помещена в процедуру и можно ли ее объявить перед CSEG segment? и еще вопрос, почему автор сравнивает именно с числом FFFFh??
Потому что это com-файл. Переменную нет. Потому что он её и задал в конце такой. Таким образом если вызвать OpenFile второй раз то HANDLE будет содержать хендл файла в первом OpenFile,