Вопросы по теме 'real-mode'
Об адресации физической памяти в реальном режиме
Я и мой друг обдумывали вопрос об адресации физической памяти в реальном режиме и никак не могли уложиться в голове. Вот оно.
В реальном режиме 16 умножается на регистр селектора сегмента и добавляется к регистру смещения, чтобы получить 20-битный...
354 просмотров
schedule
10.08.2022
Реальный режим Простая сложность ОС
Я пишу простую ОС в реальном режиме ASM для удовольствия. Недавно я решил перейти к файловой системе. Я собрал код с
nasm -f bin -o boot.o boot.asm
nasm -f bin -o kernel.o kernel.asm
nasm -f bin -o fs.o fs.asm
dd if=boot.o bs=512 of=os.img
dd...
395 просмотров
schedule
23.10.2022
Как сравнить строки в ассемблере?
Я просмотрел Как сравнить сборку двух строк , и я пытаясь сравнить символ за символом, пока символ не будет совпадать, и я не могу заставить свой код работать так, как я хочу.
Я делаю простую оболочку и начинаю с команды help:
parseInput:...
1477 просмотров
schedule
07.09.2022
Как установка флага PE в CR0 включает защищенный режим?
Я пытаюсь понять, как машина переходит от включения к работе с ядром. Из того, что я собрал, полезно переключиться в защищенный режим во время загрузки, чтобы получить доступ к более адресуемой памяти, даже если мы в конечном итоге переключимся на...
1534 просмотров
schedule
12.07.2023
Почему нельзя написать BIOS для работы в защищенном режиме?
Используются ли все еще компьютеры на базе 8088 или компьютеры до 80286? Почему эта функция обратной совместимости «первый запуск в реальном режиме» все еще должна присутствовать, если эти старые процессоры больше не используются? Почему процессоры...
377 просмотров
schedule
06.05.2024
сравнение загрузочного сектора всегда неправильно
После того, как вы помогли мне с инструкцией hlt (я забыл про сброс прерываний cli ), я обнаружил еще одну проблему. Сравнение всегда очищает carry flag независимо от того, равен ли буфер правильному паролю или нет, фактически пароль всегда...
87 просмотров
schedule
07.05.2022
Как использовать адреса ORG › 0xFFFF?
Я пытаюсь написать простой загрузчик на ассемблере. Загрузчик копирует сектор 2 с дискеты по адресу 0x5000 (segment 0x500, offset 0x0) , переходит к сегменту и печатает сообщение.
Однако, когда я меняю адрес сегмента на 0x1000 , сообщение больше...
151 просмотров
schedule
29.07.2022
Где разместить стек и загрузить ядро
Я новичок в разработке операционных систем, и мне любопытна проблема, с которой я столкнулся при разработке собственного загрузчика. Моя операционная система будет написана на ассемблере и будет работать в 16-битном реальном режиме.
Я знаю, что...
305 просмотров
schedule
12.06.2022
Как распечатать нажатую клавишу клавиатуры в загрузчике сборки?
Я создал небольшую загружаемую ОС на ассемблере с помощью Flat Assembler. Я называю это PulsarOS. Однако я хочу создать для него программу набора текста. Как я уже сказал, все это на ассемблере x86. Я хочу просто туда, где пользователь может...
2761 просмотров
schedule
26.12.2023
Переход из реального в защищенный режим в ядре Linux
В настоящее время я изучаю низкоуровневую организацию операционных систем. Чтобы добиться этого, я пытаюсь понять, как загружается ядро Linux.
То, что я не могу понять, - это переход от 16-битного (реальный режим) к 32-битному (защищенный...
900 просмотров
schedule
25.12.2022
Любой способ перечислить номера дисков BIOS в реальном режиме
Есть ли способ вывести список индексов дисков BIOS в реальном режиме (например, 0x80, 0x81...)?
Я не нашел никакого прерывания, отвечающего за перечисление номеров дисков!!
1287 просмотров
schedule
22.03.2023
Самодельный обработчик прерываний клавиатуры
Пытаюсь написать свой обработчик прерывания клавиатуры (используется DOS), который только пишет сообщение на экран. Когда клавиатура не нажата, там бесконечно печатается другое сообщение (поэтому нет возможности нормально остановить программу, но это...
414 просмотров
schedule
11.09.2022
(реальный режим nasm x86) Как записывать/читать строки в загрузочный сектор?
Я использую NASM для написания минимальной ОС для реального режима x86 в образовательных целях. Я хочу использовать 512-байтовый загрузочный сектор для загрузки большего сектора, содержащего остальную часть ОС. Я успешно создал загрузочный сектор,...
462 просмотров
schedule
16.07.2022
Найти адрес сегмента по заданному физическому и действующему адресу
как найти адрес сегмента по заданным данным?
Физический адрес = 0x119B, эффективный адрес = 0x10AB
какая может быть формула?
987 просмотров
schedule
29.12.2022
Поддерживаются ли расширенные регистры общего и специального назначения в виртуальном 8086 x86_32 и реальном режиме?
Можно ли использовать EAX , EBX ,... в x86_32 виртуальном 8086 или реальном режиме? Я знаю, что эти регистры имеют размер 32 бита (и, конечно, их нерасширенные части имеют ширину 16 бит), однако на занятии не объясняется, в каких режимах они могут...
80 просмотров
schedule
30.03.2024
Как получить адрес сегментной памяти, когда у меня есть физический адрес?
Физический адрес ячейки памяти представлен в виде 1A32H. Какой адрес начала сегмента памяти. Или, точнее, адрес seg: off, который я должен использовать для доступа к нему.
Может кто-нибудь объяснить мне пошагово, как решить эту проблему?
388 просмотров
schedule
11.06.2023
Почему мой загрузчик неправильно загружает байт из памяти?
У меня есть следующая программа x86:
mov ah, 0x0e ; Set up call to BIOS routine to print character
mov al, [character] ; Stick the byte at label "character"
int 0x10 ; Display character in al
jmp $...
128 просмотров
schedule
11.06.2022
Порядок записи стека и порядок выполнения кода
Я читал известную книгу 1980-х годов Питера Нортона и Джона Сона, в которых утверждается, по крайней мере, в итальянской версии, что:
учитывая ассемблерный код без определения пространства, зарезервированного для STACK (следовательно, без директивы...
139 просмотров
schedule
03.01.2023
Переведите инструкцию по доступу к памяти в реальном режиме в синтаксис AT&T
Как перевести следующую инструкцию реального режима x86 в синтаксис gas AT&T?
cmp word [es:di], 0x1234
15 просмотров
schedule
21.12.2022
Почему INT 31H не настроен должным образом даже при активном хосте DPMI?
Я много экспериментировал с программированием на ассемблере в MS-DOS. Я читал, что Windows 3.1 действует как хост DPMI для программ DOS и что DPMI использует прерывание 31h для вызовов функций.
Итак, давайте попробуем. Я открываю приглашение DOS в...
75 просмотров
schedule
04.06.2023