Помогите плиз разобраться (только "на пальцах" если можно):
1. Программа СОМ не может превышать 65535 байт из-за размера страниц по 65к - здесь все понятно
2. Как выглядит карта памяти при ЕХЕ-проге размером 40кб и как при 510Кб? А если данных завались и сегмента данных не хватит, что произойдет тогда? Какой объем сегмента данных?
2.1. Почему-то в описаниях все сухо и сжато и не говорится от том, что если текстовый редактор в 500кб, причем все 400кб - код, остальное для текста, то как это все увязывается в ОЗУ? Видимо одна часть программы следит за клавишами и сидит в одном сегменте, а вывод текста в другом, а сохранение файла в третьем, а если сама процедура превышает 65к, то что получается, происходит JP в другой сегмент и счастье продолжается? А если 16-битный регистр может обращаться только к области RAM до 65535, то 32-битный наверное к 4Гб, правильно? (типа как мне переместить 10 Мегабайт данных с точки адреса памяти 1024576 в 2048000?).
2.2. Вообще-то, если бы в IBM-PC было не 10 банок по 65к, а больше, то теоретически, можно было бы создать драйвер непрерывной памяти в 4Гб (65535_банка *65535_16 битный регистр сегмента = 4.294.836.225 байт)
Но, скорее всего я не понимаю карту памяти IBM-PC и принцип работы программ.
3. Как включить режим 640*480&256 цветов (VGA), например в Турбо Паскале стандартно режим 640*480&16 и в хэлпе ни слова как получить 256
3.1. Не могли бы Вы кто-нить пожертвовать асм-код, для того, чтобы врубить этот режим и ессно вернуть прежний (если Паскаль умеет по выходу возвращать свой текстовый режим, то плиз отключения не надо)
3.1.1. Хочу в Паскале вывести 256-цветную картинку, но в 16 цв. понятно, что все за пределами 16 выводится коряво
4. Включается какой-то сегмент и после этого, если в оперативку посылать значения, то байты рисуются точками на экране. Как это понимать, часть ОЗУ компьютера отдано под видео, т.е. там не размещается код программы?
5. Последнее У меня 2048 байт находится по адресу 9000DEC их надо перекинуть в 2000DEC, есть ли команда, которая делает это одним махом?
Блин, наверное я не так выражаюсь, но кто юзал Z80 это будет примерно так:
LD HL, 9000
LD DE,2000
LD BC,2048
LDIR
RET
Вот хочу теперь все это "кроссассемблировать" на IBM-PC.
))))))))))))))
Сообщение отредактировано: nonpascaler -
Ram, СОМ, ЕХЕ и Графика |