|
0 / 0 / 2
Регистрация: 13.09.2014
Сообщений: 68
|
|||||||||||||||||||||
Какие регистры изменяются в прерываниях BIOS?01.03.2021, 13:02. Показов 1970. Ответов 1
Метки нет (Все метки)
Всем привет.
Пишу для реального режима. Тестирую на голом железе (не под DOSом). На одном из сайтов с описанием прерываний BIOS обнаружил информацию о том что, прерывания портят содержимое некоторых регистров. Вот описание одного из прерываний (выделил как код для наглядности):
И я не смогу нормально "размотать" стек по возврату из set_cursor_position. Ну Ок, конкретно в этом случае остается один регистр CX, который не испортится и указатель вершины стека можно сохранить в нем. Но есть прерывания в которых задействованы все регистры. Например вот это:
Сегментные регистры для этих целей я не рассматриваю. Это ведь не правильно, так их использовать? Да? Ссылку на сайт где я описания прерываний смотрю могу скинуть, если надо. Я с ассемблером пока на ВЫ, но уверенно прогрессирую. А тут прям затык)
0
|
|||||||||||||||||||||
| 01.03.2021, 13:02 | |
|
Ответы с готовыми решениями:
1
ответьте пожалуйста какие регистры Какие регистры есть в ассемблере? |
|
Модератор
|
|
| 02.03.2021, 14:50 | |
Сообщение было отмечено Krasnoyar как решение
Решение
Смотрите "Ralf Brown's Interrupt List" по винтажному x86 программированию
http://www.ctyme.com/intr/rb-0087.htm оригинальные текстовики: https://www.cs.cmu.edu/~ralf/files.html Сомнительно, что SP портится, кроме тех вызовов, где это часть конвенции http://www.ctyme.com/intr/rb-4113.htm ( обратите внимание на Notes: Original flags are left on stack, and must be popped by caller ) . А старшие половины 32-разрядных регистров EDI, ESI, EAX etc. 16-разрядный код не обязан сохранять, т.к. может и не подозревать о их существовании. Чтобы не беспокоится о разночтениях и багах, достаточно вставить PUSHA и POPA вокруг вызова.
0
|
|
| 02.03.2021, 14:50 | |
|
Помогаю со студенческими работами здесь
2
16-разрядный процессор. Какие регистры? Какие регистры для счётчика можно использовать и почему? Какие регистры и как изменятся при выполнении команды Определите, какие данные будут содержать регистры EAX и EDX Какие регистры и как изменятся после выполнения команды ret 8 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|