Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Assembler Реализация шлейфа от курсора Здравствуйте! Мне нужно сделать шлейф от курсора в виде таких же курсоров, который должен исчезать при остановке движения курсора. Ниже приведен код с пиксельной графикой, который работает с огрехами и писался для наглядности. Не смог разобраться, как мне инициализировать сразу несколько курсоров, которые будут двигаться в направлении основного. Понятно, что я должен сохранять текущие... https://www.cyberforum.ru/ assembler-dos/ thread2337314.html Assembler Рисование кривой линии при нажатой ЛКМ
Сабж. Нужно отрисовывать кривую линию при нажатой ЛКМ. Видеорежим: 320х200 (13h). Беру координаты курсора с помощью функции 3h прерывания 33h (cx - x, dx - y). При зажатой ЛКМ отрисовка идёт почти как и надо, за исключением того, что есть небольшая область слева, в которой отрисовка не идёт совсем, и того, что по горизонтали линия начинает убегать от курсора. Читал, что в режиме 13h,...
Assembler Отформатировать дискету с размером сектора 128 байт Здравствуйте , задание звучит так : отформатировать дискету с размером сектора 128 байт , как это сделать , если дискеты уже давно не используются?так же преподаватель не сказал сколько всего секторов в дискете , в других темах форматируют некоторые сектора , а тут один сектор получается и форматировать всю дискету? https://www.cyberforum.ru/ assembler-dos/ thread2334150.html Assembler Наглядная демонстрация работы буфера клавиатуры https://www.cyberforum.ru/ assembler-dos/ thread2329809.html
Привет всем, после многих попыток сделать самому, всё таки решился попросить помощи Написать программу наглядно демонстрирующую работу буфера клавиатуры. Необходимо отображать содержимое буфера в табличной форме(значения ascii и scan-кодов) с указанием текущего положения «головы» и «хвоста». Предусмотреть возможность посимвольной очистки буфера. Уже всю голову сломал, помогите(
Выводить координаты мышки по срабатыванию любой кнопки мышки каждый раз разными цветами Assembler
Здравствуйте , никак не могу разобраться в задании , необходимо выводить координаты мышки по срабатыванию любой клавиши мыши (пкм и лкм) причем разными цветами каждый раз , насколько я понял необходимо использовать прерывания мышки и для разных цветов прерывания видеоадаптера , но найти информации про прерывания видеоадаптера на tasm найти не могу ровно как и понять
Assembler Макрос, генерирующий звук с заданными продолжительностью и тоном https://www.cyberforum.ru/ assembler-dos/ thread2325819.html
Дано Параметры (2): продолжительность звука и его тон. Макрос должен генерировать звук с заданными параметрами. Помогите пожалуйста, если не трудно. Смотрел этот учебник но понятно https://www.cyberforum.ru/assembler/thread1005284.html
Assembler Написать программу, выводящую на экран названия и содержимое регистров процессора 80386 Помогите пожалуйста Написать программу, выводящую на экран названия и содержимое регистров процессора 80386: EAX..EDI, CS..GS, CR0, CR2 СR3, EFLAGS, DR0..DR3, DR6, DR7. Добавлено через 1 час 25 минут Есть пример вывода 16 битного регистра, необходимо написать тоже самое для 32 sseg segment stack 'stack' dw 256 dup(?) sseg ends data segment https://www.cyberforum.ru/ assembler-dos/ thread2323686.html Выключение ПК средствами биос Assembler
Здравствуйте, как можно выключить компьютер средствами прерываний биос чтобы пк выключался при запуске программы на голом железе без винды?
Assembler Сброс бита регистра IRR контроллера прерываний 8259A https://www.cyberforum.ru/ assembler-dos/ thread2319023.html
Приветствую вас! При появлении запроса на прерывание (IRQ) в регистре запросов прерывания IRR контроллера 8259A устанавливается бит, соответствующий этому прерыванию. Если бит регистра обслуживаемых запросов ISR того же прерывания (и всех более приоритетных) сброшен и прерывание незамаскировано (в IMR или через cli), процессор подтверждает прерывание и соответствующий бит в IRR сбрасывается, а...
Assembler Номер текущей строки CRT-луча https://www.cyberforum.ru/ assembler-dos/ thread2318175.html
Всех категорически приветствую! Кто-нибудь знает, возможно ли прочитать из портов графического адаптера (VGA в частности) номер текущей строки (линии), на которой находится луч? Задача такая: вешаю обработчик на таймер (IRQ 0) и настраиваю частоту таймера как мне надо (чтобы он вызывался ≈ на каждой строке, на которой находится луч, либо раз в 5 строк). Процедура таймера совершает разные...
Assembler Очень маленький Random
Всем привет! Нужно сделать очень маленький Random от 0 до BX-1, возвращающий результат в AX. Меньше 9 байт ничего в голову не приходит: imul bp,45 inc bp mov ax,bp mul bx xchg ax,dxВысокая точность распределения значений особо не нужна. Но и in al,40h/rdtsc и т.п. не катят, т.к. при...
Assembler Подскажите область фактической памяти для работы *com - программы https://www.cyberforum.ru/ assembler-dos/ thread2284143.html
Эксперт Hardware
Эксперт Hardware
6160 / 2397 / 398
Регистрация: 29.07.2014
Сообщений: 3,143
Записей в блоге: 4
21.10.2018, 23:27 0

[AFDPRO] Найти INT 8 и объяснить, как он работает - Assembler - Ответ 12989913

21.10.2018, 23:27. Показов 4204. Ответов 6
Метки (Все метки)

Лучший ответ Сообщение было отмечено Mikl___ как решение

Решение

Аппаратное прерывание IRQ-0 вызывается каналом(0) м/схемы таймера по каждому тику часов. Обработчик INT-8 в первую очередь обновляет значение тиков в пространстве BIOS по адресу 0:046C, и следит за переполнением таймера по адресу 0:0470. Помимо этого, когда флоп FDD простаивает без операций ввода/вывода, по истечении 2 сек INT-8 выключает его двигатели:
Код
; адрес 0040:006C соответствует адресу 0:046C
-u
020E:074D B84000        MOV     AX,0040
020E:0750 8ED8          MOV     DS,AX                 ; сегмент BIOS
020E:0752 33C0          XOR     AX,AX
020E:0754 8EC0          MOV     ES,AX
020E:0756 FF066C00      INC     WORD PTR [006C]       ; увеличить тик в 0:046C
020E:075A 7504          JNZ     0760                  ; если не нуль..
020E:075C FF066E00      INC     WORD PTR [006E]       ; иначе увеличить ст.слово
;
;--- Дальше код зависит от текущих настроек канала(0) таймера
020E:0760 833E6E0018    CMP     WORD PTR [006E],+18   
020E:0765 7515          JNZ     077C
020E:0767 813E6C00B000  CMP     WORD PTR [006C],00B0
020E:076D 750D          JNZ     077C
020E:076F A36E00        MOV     [006E],AX
020E:0772 A36C00        MOV     [006C],AX
020E:0775 C606700001    MOV     BYTE PTR [0070],01    ; 0:0470 = флаг переполнения таймера
020E:077A 0C08          OR      AL,08

;--- Работа с флопом по адресу 0:0440
020E:077C 50            PUSH    AX
020E:077D FE0E4000      DEC     BYTE PTR [0040]       ; время до выкл.мотора FDD (выкл.когда 0).
020E:0781 750B          JNZ     078E                  ; если не нуль..
020E:0783 80263F00F0    AND     BYTE PTR [003F],F0
020E:0788 B00C          MOV     AL,0C
020E:078A BAF203        MOV     DX,03F2
020E:078D EE            OUT     DX,AL                 ; иначе: выключить флоп!
Цитата Сообщение от ACTIONFENIX Посмотреть сообщение
Почему прерывание находится просто в RAM? Разве оно не должно находится по адресу где-то FE00:0000 и выше?
Сейчас проверил адрес обработчика из под чистого доса и виртуальной машины,
оказывается реальный адрес у меня (в обоих случаях) 0EEE:0016,
только трассировать код не даёт, а нарывается сразу на LOCK и вылетает с ошибкой.
Дамп выше - это из под виндовой NTVDM, но обработчик видимо правильный, т.к. показывает то, что надо.

Вернуться к обсуждению:
[AFDPRO] Найти INT 8 и объяснить, как он работает Assembler
Миниатюры
[AFDPRO] Найти INT 8 и объяснить, как он работает  
2
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2018, 23:27
Готовые ответы и решения:

Не работает перегрузка индексного оператора [], вместо [int][int] почему то нужно ставить [0][int][int]
#include<iostream> #include<string> #include<vector> #include<algorithm> #include<ctime>...

Как вернутся на шаг назад в отладчике afdpro
Подскажите как вернутся на шаг назад в отладчике afdpro. Все пишут, а этой информации я что то...

Объяснить как работает программа
Объясните пожалуйста как работает ета программа,программу для себя я нашел а вот обьяснить как она...

Объяснить как работает задача
#include <stdio.h> int main(){ int s,l;//S-расстояние км,L-расход топлива в литрах на км....

6
21.10.2018, 23:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2018, 23:27
Помогаю со студенческими работами здесь

Объяснить как работает пример
Всем привет, ребята помогите разобраться с примером как он работает (взят из книги) using System;...

Объяснить как работает часть кода
Нужна помощь, объяснить как работает часть кода, а именно добавление элементов в двусвязный...

Прошу объяснить, как оно работает
Всем доброго времени суток. Пишу курсач, сдавать через три дня, надо в пояснительной записке...

Потоки. Объяснить как работает код
Вот у меня есть код программы, которая создает два процесса. Первый генерирует ряд натуральных...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru