Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
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
Подскажите начало диапазона фактических адресов памяти для работы собственно-ручно писанной *com - программы. Моя программа предпологала бы работу с фактическими адресами памяти указанных константами. Но какой именно адрес, как начало рабочего диапазона следует использовать для обычно-пользовательской программы: К примеру обращение к ячейке памяти: Mov , 4eh Но какая именно по адресу ячейка...
Assembler Bios boot order загрузка fdd,zip https://www.cyberforum.ru/ assembler-dos/ thread2283331.html
Всем привет. Есть у BIOS всех знакомая подпрограмма Boot Order, которая обычно располагается на горячей клавише F9. Нажимая её мы выбираем с какого устройства загрузиться, будь то: cdrom, fdd, hdd, usb и zip. И бывают случаи когда приносят какой-нибудь старый ПК, на котором мне надо загрузиться с загрузочного USB, но только вот нет этого пункта в Boot Order или точнее есть что-то типа usb-fdd,...
16-bit Real Mode в 2020 Assembler
Весь 16-битный код в реальном режиме, разработка которого в ближайшее время имеет практический смысл, сосредоточен где-то здесь: https://github.com/tianocore/edk2/tree/master/UefiCpuPkg/ResetVector/Vtf0/Ia16 Если вы разрабатываете firmware для компьютеров с архитектурой x86-64, задача, которую решает код - привести оборудование в рабочее состояние, т.е. в случае процессора - как можно раньше...
Assembler Резидентный обработчик 21h прерывания (из 10-й главы Калашникова) https://www.cyberforum.ru/ assembler-dos/ thread2274763.html
Имеется вот такой код резидентного обработчика прерываний, написанный предположительно на MASM данная программа должна после выполнения оставить часть себя в оперативной памяти подписать ее на прерывание 21h я изучаю ассемблер с компилятором FASM и не совсем могу понять реализацию данного примера по этому прошу помочь мне перевести этот код с MASM на FASM CSEG segment assume cs:CSEG,...
Assembler Чтение и запись файлов у меня возникла проблема с реализацией чтения файлов в сети полно примеров по этой теме, но в основном они написаны c под компиляторы MASM, NASM и пр., в то время как я использую FASM корень проблемы заключается в том что я не могу понять, как корректно объявить переменную-буфер в которую буду считывать файл в найденных мною примерах буфер объявлялся так Buffer equ $ или так Buffer DB... https://www.cyberforum.ru/ assembler-dos/ thread2274156.html Assembler Резидентный обработчик: перехват нажатия "F1" и после этого запись в буфер клавиатуры символа "о"
я пытаюсь разобраться с написанием обработчика и созданием резидентных программ на просторах сети нашел такой пример, который, по идее должен перехватывать нажатие "F1" и после этого записывать в в буфер клавиатуры символ "о" format mz jmp init old_09 dw 0, 0 new_09: push ax in al,60h cmp al, 3bh
Assembler Залипание клавиш https://www.cyberforum.ru/ assembler-dos/ thread2266701.html
Продолжаю клавиатурную тему :) Есть прога, которая показывает нажатые клавиши (т.е. жмём все 4 стрелки – видим, что все 4 нажаты, отпускаем по одной, видим 3, 2, 1, 0). Так вот, если быстро стукнуть по нескольким клавишам (по тем же стрелкам, например), получаем генерацию IRQ 1 с нажатием 4-х клавиш и следом IRQ 1 с отпусканием... не всегда 4-х, а чаще 3-х или 2-х. Соответственно, 1 или 2...
Assembler Светодиоды не переключаются https://www.cyberforum.ru/ assembler-dos/ thread2266589.html
Всем привет. В DOS светодиоды не реагируют, в VMware всё ok. Что не так-то? Помнится, давным давно (где-то в конце 90-х, начале 00-х) делал такое, всё работало, сейчас не хочет. SetLEDState PROC PASCAL State:BYTE pushf cli xor cx,cx @@1: in al,64h test al,2 loopnz @@1 ...
Assembler Ох уж эта загадочная клавиша Pause. и не только!
Клавиша Pause под чистым DOS'ом генерирует сразу 6 скан-кодов при нажатии (E1,1D,45, E1,9D,C5). При удержании же, как и при отпускании не генерирует ничего. Однако под Windows (включая DOSBox и VMware с DOS) нажатие на Pause генерирует скан-коды E1,1D,45 при нажатии и удержании (т.е. по
Asm/C++/Delphi/Py/PHP/VBA
6747 / 1993 / 231
Регистрация: 14.12.2014
Сообщений: 4,186
Записей в блоге: 12
09.09.2018, 13:10  [ТС] 0

Сброс бита регистра IRR контроллера прерываний 8259A - Assembler - Ответ 12887696

09.09.2018, 13:10. Показов 2188. Ответов 13
Метки (Все метки)

Ответ

И я так понимаю, тактовый генератор 1.19 МГц работает всегда в своём темпе, без перезапуска? Т.е. если я записал в счётчик какие-то число, он же (генератор) не перезапускается в этот момент, а продолжает работать (перезаписывается только значение счётчика).

Схематично (1 строка с частотой 1.19*4 МГц) значения счётчика:
100
100
100
100
99
99
99
99
98
98
тут я записал в счётчик 200, далее будет:
199
199
198
198
а не:
199
199
199
199
198
198
...
???

Добавлено через 4 часа 18 минут
Цитата Сообщение от Ethereal Посмотреть сообщение
Тут надо потестить. А то теоретически может казаться что произойдет одно, а на практике ... надо посмотреть.
Потестил. Очень забавно всё работает. Во-первых, при любом раскладе, если записываем 1 байт (только младший или старший), то изначально в счётчик заносится 2 одинаковых байта (на ноуте при записи в младший байт в старший заносится значение на 4 меньше, чем в младший, в DOSBox или при записи в старший такого нет).
Далее...
Если пишем только младший байт, счётчик уменьшается по 101h на каждый тик:
Кликните здесь для просмотра всего текста
48576
47291
45750
44465
43180
41895
40610
39324
38039
36754
35469
34184
32899
31614
30329
29044
27759
26474
25189
23648
22363
21078
19793
18508
17222
15937
14652
13367
12082
10797
9512
8227
6942
5657
4372
3087
1802
261
48320
47035
45749
44464
43179
41894
40609
39324
38039
36754

Если пишем только старший байт, счётчик уменьшается тоже по 101h, но не на каждый тик, а раз в... (101h тиков?)
Кликните здесь для просмотра всего текста
49088
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
49087
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48830
48574
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573
48573

Причём, забавный факт (если вы заметили в спойлерах): на первый раз значение иногда больше на 1, чем в последующий (в DOSBox такого нет).
Это всё для режима 2. Для режима 3 числа меняются в 2 раза быстрее (что, в общем-то, неудивительно) и разница не 4, а 8.

И ещё прикол: делаю последовательное чтение в цикле в буфер с включенным cli (прога под DOS на паскале). Запускаю на ноуте, получаю значение раз в 5 циклов (почти ровно).
Кликните здесь для просмотра всего текста
4659
4654
4649
4644
4639
4634
4629
4624
4619
4614
4609
4604
4599
4594
4589
4584
4579
4574
4568
4563
4558
4553
4548
4543
4538
4533
4528
4523
4518
4513
4508
4503
4498
4493
4488
4482
4477
4472
4467
4462
4457
4452
4447
4442
4437
4432
4427
4422

Почему так медленно, кто-нибудь знает???

Вернуться к обсуждению:
Сброс бита регистра IRR контроллера прерываний 8259A Assembler
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2018, 13:10
Готовые ответы и решения:

Сброс бита n
Создать функцию, сбрасывающую бит n без знакового однобайтового числа и отображает на экране...

Сброс бита CBI (Atmel Studio 6.2)
Картинки внизу... Использую Atmel Studio 6.2 для написания программы для Avr Mega. Проэкт...

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

Понимание работы контроллера вложенных прерываний
Никак не могу до конца понять работу контроллера вложенных прерываний в Arm Sortix M3. В...

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

Преобразовать 2 регистра 16 бит в 32 бита float
Подскажите, по modbus принимаю 2 регистра 16 бит, их необходимо преобразовать в 32 бита float?

Переписать три младших бита регистра ВХ на место 10,11 и 12 битов
Переписать три младших бита регистра ВХ на место 10,11 и 12 битов.

Сброс контроллера при появлении внешнего питания
Какой схемой можно сбросить микроконтроллер с ноги RESIT при появлении внешнего питания? То...

Как обнулить три старших бита регистра DH, без изменения остальных бит
Результат надо сохранить в регистре ВН

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