169 похожих чатов

Does (E)IP Wrap Around in 16-bit Segments? | OS/2 Museum https://www.os2museum.com/wp/does-eip-wrap-around-in-16-bit-segments/

17 ответов

8 просмотров

тут в примере однобайтовая команда по смещению ffff, а если двухбайтовая?

s54820- Автор вопроса
disba1ancer
тут в примере однобайтовая команда по смещению fff...

Опять же, я думаю, что в 8086 будет врапаться (прочитает байты по 0), как и с данными (про данные там вполне определённо сказано во втором абзаце), а в 286+ должен быть GPF (проверял, но на современном компе).

s54820
Опять же, я думаю, что в 8086 будет врапаться (про...

А я вот думаю, что будет врапаться только через мегабайтную границу

disba1ancer
А я вот думаю, что будет врапаться только через ме...

Ха! Однажды я написал некий софт на своем 386DX40. И применил хак: через 32 разрядную адресацию начал писать в видеопамять прямо из сегмента данных. Но на целевом компьютере был уже 486 процессор, где эту ошибку исправили, и память за мегабайтом заворачивалась а-ля настоящий 8086. Софт не заработал. #былое

Alexander Morozov
Ха! Однажды я написал некий софт на своем 386DX40....

.Model Tiny .Code .386 Org 100h Start: xor ax, ax mov es, ax mov ebx, 000B8000h mov al, '*' mov ah, 8Fh mov cx, 80 * 25 @@C: mov es: [ebx], ax inc ebx inc ebx loop @@C mov ah, 00h int 16h ret End Start тестовый код

Alexander Morozov
Ха! Однажды я написал некий софт на своем 386DX40....

Её не совсем исправили, а скорее добавили костыль в виде A20

Alexander Morozov
.Model Tiny .Code .386 Org 100h Start: xor ...

И где тут заворот на мегабайт? Вообще, это даже на 386 не должно работать, если конечно какой-нибудь расширитель не попортил теневые части сегментных регистров огромным лимитом

disba1ancer
И где тут заворот на мегабайт? Вообще, это даже на...

Тут, как раз, нет заворота. А на целевом 486 компьютере он был.

s54820- Автор вопроса
Alexander Morozov
.Model Tiny .Code .386 Org 100h Start: xor ...

Я вот тоже не вижу, где тут мегабайт, и почему всплыл разговор про A20.

Alexander Morozov
Тут, как раз, нет заворота. А на целевом 486 компь...

Так у тебя тут до мегабайта не доходит, или ты имел ввиду 64к? Но в любом случае тот код должен был вызвать gp

s54820- Автор вопроса
Alexander Morozov
64K здесь обходим.

Тебе @disba1ancer правильно объяснил. Скорее всего, в одном из вариантов запуска был нереальный режим от какого-то другого софта. Когда ты сегментные регистры перезагружаешь, лимит не меняется. Поэтому работало.

Alexander Morozov
64K здесь обходим.

Тот код даже за границу 64к сегмента не заходит, что-то тут не чисто

Alexander Morozov
Он в видеопамять пишет при es=0.

На 486 должно было быть исключение

Похожие вопросы

Обсуждают сегодня

Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
у меня программа тысяч на 10 строк. Там в основном моя собственная логика. А по содержанию она просто работает с файловой системой (мастер для бэкапов) и таблицей с данными о ...
Дмитрий Завгородний
5
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Карта сайта