Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11639
Последний выпуск: 19.06.2015

Приостанавливаем задачу

Вообще-то я наверное зря создал целый раздел ради такой простой вещи, ну ладно.

Приостановка задачи сводится к записи в ее id значения 254.

doStop3:        call    _di
                mov     al,254
                mov     [cs:di],al
                mov     dx,[cs:di+3]
                call    _ei
                ret

Как вы помните, при переключении задач переход к следующей осуществляется следующим образом:

int201:        push  ax
                mov   dx,515
                mul   dx
                add   di,ax               ; DI = Абсолютное смещение вершины
                                          ; стека в структуре TTASK
               pop   ax
               cmp   [Byte Ptr ds:di],255
               je    nexttask
               cmp   [Byte Ptr ds:di],254  ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
               je    nexttask
               mov   [ds:numtask],al
               mov   ax,di

Таким образом если id содержит значаение 254, то задача при переключении пропускается.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог