Вопросы по теме '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 просмотров

Как установка флага PE в CR0 включает защищенный режим?
Я пытаюсь понять, как машина переходит от включения к работе с ядром. Из того, что я собрал, полезно переключиться в защищенный режим во время загрузки, чтобы получить доступ к более адресуемой памяти, даже если мы в конечном итоге переключимся на...
1534 просмотров

Почему нельзя написать 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 просмотров

Любой способ перечислить номера дисков BIOS в реальном режиме
Есть ли способ вывести список индексов дисков BIOS в реальном режиме (например, 0x80, 0x81...)? Я не нашел никакого прерывания, отвечающего за перечисление номеров дисков!!
1287 просмотров
schedule 22.03.2023

Самодельный обработчик прерываний клавиатуры
Пытаюсь написать свой обработчик прерывания клавиатуры (используется DOS), который только пишет сообщение на экран. Когда клавиатура не нажата, там бесконечно печатается другое сообщение (поэтому нет возможности нормально остановить программу, но это...
414 просмотров
schedule 11.09.2022

(реальный режим nasm x86) Как записывать/читать строки в загрузочный сектор?
Я использую NASM для написания минимальной ОС для реального режима x86 в образовательных целях. Я хочу использовать 512-байтовый загрузочный сектор для загрузки большего сектора, содержащего остальную часть ОС. Я успешно создал загрузочный сектор,...
462 просмотров

Найти адрес сегмента по заданному физическому и действующему адресу
как найти адрес сегмента по заданным данным? Физический адрес = 0x119B, эффективный адрес = 0x10AB какая может быть формула?
987 просмотров

Поддерживаются ли расширенные регистры общего и специального назначения в виртуальном 8086 x86_32 и реальном режиме?
Можно ли использовать EAX , EBX ,... в x86_32 виртуальном 8086 или реальном режиме? Я знаю, что эти регистры имеют размер 32 бита (и, конечно, их нерасширенные части имеют ширину 16 бит), однако на занятии не объясняется, в каких режимах они могут...
80 просмотров
schedule 30.03.2024

Как получить адрес сегментной памяти, когда у меня есть физический адрес?
Физический адрес ячейки памяти представлен в виде 1A32H. Какой адрес начала сегмента памяти. Или, точнее, адрес seg: off, который я должен использовать для доступа к нему. Может кто-нибудь объяснить мне пошагово, как решить эту проблему?
388 просмотров

Почему мой загрузчик неправильно загружает байт из памяти?
У меня есть следующая программа 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