добрый день форумчане . помогите мне дурику, розобраться в сегментации и адресации сегментов в памяти. Как ето все происходит, машина сама определяет свободное место в памяти, сохраняет туда данные а адреса заносит в соответствующие регистры или как ... не могу выстроить логическую цепочку или по возможности подскажите литературу где етот процесс более менее понятным для новичка языком описан. Буду очень благодаен .
online_777, прочитай WASM.ARTICLES → Сказки дядюшки Римуса → Глава сорок девятая. Память Братца Кролика WASM.Публикации → Защищенный режим → цикл Broken Sword'a Процессор Intel в защищенном режиме (статьи с #1 по #13) WASM.Публикации → Защищенный режим → цикл SadKo Начала программирования в защищённом режиме (часть #1 и #2) Библиотека братьев Фроловых (frоlov-lib.ru) → "Защищенный режим процессоров Intel 80286/ 80386/ 80486" или статью Коцит'а Реальный и Защищённый режимы работы процессора
online_777, Физическая память отображается на виртуальную через таблицы, в одной таблице описаны ссылки на другие таблицы. Из них формируется линейный/логический адреса. Это не вычисления адресов, а их табличная трансляция. Можно абстрактно только сказать что компоненты отображаемые вирт на физический адрес бинарные, а промежуточный механизм - выборка из таблиц. На самом деле механизмы крайне сложные, там кэши для оптимизации и уже никто не знает что туда напихали, тк технологии позволяют что угодно на кристалл напылить, любую схему. Лучше изучать оригинальную документацию(она на енг), просто совет иначе потом будет многое не понятно, не верные понятия, будешь понимать трансляцию формально а не как механизм выборки в память, технически это не описывается формулами.
Данные в программах на ассемблере объявляются (или резервируются) с помо- щью директив. db 67h. Я это понял так: зарезервировать в памяти 1-н байт под символ 67h. Тогда что ето: db "assembler" Как можно виделить память в 1-н байт под строку из 9- ти символов, тоесь 9 байт . ?
online_777, Код (ASM): db "assembler" это просто более удобная форма для записи Код (ASM): db 'a' db 's' db 's' db 'e' db 'm' db 'b' db 'l' db 'e' db 'r' Ты также можешь объявить одной директивой несколько значений одного типа через запятую или используя dup.
Добрый день . Необходимо вывести на екран слова " что ты наделал " синего цвета , как ето зделать на ASM.
Взять учебник, компилятор, линкер, немного желания и упорства Сказки дядюшки Римуса→Глава пятьдесят первая. Братец Кролик узнает о тексте еще больше
online_777, Берётся вначале описание SetTextColor. Там сразу указан модуль с обьявлением прототипов структур макро и тд wingdi.h Далее либо онлайн посмотреть COLORREF color: - либо в .h: Код (Text): COLORREF WINAPI SetTextColor(HDC, COLORREF); typedef DWORD COLORREF; #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16))) С остальным аналогично. --- Сообщение объединено, 25 сен 2021 --- Mikl___, Странно