troubles with trace...

Тема в разделе "WASM.BEGINNERS", создана пользователем under, 11 окт 2006.

  1. under

    under New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2006
    Сообщения:
    9
    Здравствуйте уважаемые волшебники асма)), кароч написал прогу, в которой есть 21 прерывание, когда пытаюсь протрассировать в debug и натыкаюсь на это прерывание, то надоедает смотреть, что делает это прерывание, можно ли дойдя до него как-нибудь по-быстрее протрассировать это прерывание и продолжить смотреть, что происходит дальше...???
     
  2. horpis

    horpis New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    154
    наверное если F1 нажать то можно
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Либо T, либо P.
    А вообще набери ?.
     
  4. under

    under New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2006
    Сообщения:
    9

    Код (Text):
    1. CSEG segment
    2.     assume cs:CSEG ds:CSEG ss:CSEG es:CSEG
    3.     org 100h
    4.    
    5. BEGIN:
    6.     mov dx, offset FILE_NAME
    7.     call OPEN_FILE
    8.     jc QUIT_FROM_PROG
    9.    
    10.     mov bx, ax
    11.     mov ah, 3Eh
    12.     mov cx, FINISH-100h
    13.     mov dx, offset BEGIN
    14.     int 21h
    15.    
    16.     call CLOSE_FILE
    17.    
    18.     mov ah, 9
    19.     mov dx, offset MESS
    20.     int 21h
    21.     ret
    22.    
    23.     QUIT_FROM_PROG:
    24.     mov ah, 2
    25.     mov dl, 7
    26.     int 21h
    27.     ret
    28.    
    29.     OPEN_FILE proc
    30.         cmp HANDLE, 0FFFFh
    31.         jne ERROR
    32.         mov ax, 3D00h
    33.         int 21h
    34.         mov HANDLE, ax
    35.         ret
    36.         ERROR:
    37.         stc
    38.         ret
    39.         HANDLE dw 0FFFFh
    40.         OPEN_FILE endp
    41.    
    42.     CLOSE_FILE proc
    43.         mov ah, 3Eh
    44.         mov bx, HANDLE
    45.         int 21h
    46.         ret
    47.         CLOSE_FILE endp
    48.    
    49.     FILE_NAME db 'C:\afdpro\exec.com',0
    50.     MESS db 'O.K.',0Dh,0Ah,'$'
    51.     FINISH equ $
    52.    
    53.     CSEG ends
    54. end BEGIN

    Почему переменная помещена в процедуру и можно ли ее объявить перед CSEG segment? и еще вопрос, почему автор сравнивает именно с числом FFFFh??
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Потому что это com-файл.
    Переменную нет.
    Потому что он её и задал в конце такой.
    Таким образом если вызвать OpenFile второй раз то HANDLE будет содержать хендл файла в первом OpenFile,