сегментация памяти

Тема в разделе "MASM", создана пользователем online_777, 30 мар 2021.

  1. online_777

    online_777 New Member

    Публикаций:
    1
    Регистрация:
    25 фев 2021
    Сообщения:
    8
    добрый день форумчане .
    помогите мне дурику, розобраться в сегментации и адресации сегментов в памяти. Как ето все происходит, машина сама определяет свободное место в памяти, сохраняет туда данные а адреса заносит в соответствующие регистры или как ... не могу выстроить логическую цепочку или по возможности подскажите литературу где етот процесс более менее понятным для новичка языком описан.
    Буду очень благодаен .
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
  3. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    online_777,

    Физическая память отображается на виртуальную через таблицы, в одной таблице описаны ссылки на другие таблицы. Из них формируется линейный/логический адреса. Это не вычисления адресов, а их табличная трансляция. Можно абстрактно только сказать что компоненты отображаемые вирт на физический адрес бинарные, а промежуточный механизм - выборка из таблиц. На самом деле механизмы крайне сложные, там кэши для оптимизации и уже никто не знает что туда напихали, тк технологии позволяют что угодно на кристалл напылить, любую схему.

    Лучше изучать оригинальную документацию(она на енг), просто совет иначе потом будет многое не понятно, не верные понятия, будешь понимать трансляцию формально а не как механизм выборки в память, технически это не описывается формулами.
     
    Mikl___ нравится это.
  4. online_777

    online_777 New Member

    Публикаций:
    1
    Регистрация:
    25 фев 2021
    Сообщения:
    8
    Данные в программах на ассемблере объявляются (или резервируются) с помо-
    щью директив.
    db 67h. Я это понял так: зарезервировать в памяти 1-н байт под символ 67h.
    Тогда что ето: db "assembler" Как можно виделить память в 1-н байт под строку из 9- ти символов, тоесь 9 байт . ?
     
  5. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    online_777,
    Код (ASM):
    1. db "assembler"
    это просто более удобная форма для записи
    Код (ASM):
    1.  
    2. db 'a'
    3. db 's'
    4. db 's'
    5. db 'e'
    6. db 'm'
    7. db 'b'
    8. db 'l'
    9. db 'e'
    10. db 'r'
    11.  
    Ты также можешь объявить одной директивой несколько значений одного типа через запятую или используя dup.
     
    online_777 нравится это.
  6. R81...

    R81... Active Member

    Публикаций:
    0
    Регистрация:
    1 фев 2020
    Сообщения:
    153
    Промежуточная
    db 'a','s','s','e','m','b','l','e','r'
    А также используйте структуры и записи.
     
    online_777 нравится это.
  7. online_777

    online_777 New Member

    Публикаций:
    1
    Регистрация:
    25 фев 2021
    Сообщения:
    8
    Добрый день . Необходимо вывести на екран слова " что ты наделал " синего цвета , как ето зделать на ASM.
     
  8. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    online_777 и MaKaKa нравится это.
  9. online_777

    online_777 New Member

    Публикаций:
    1
    Регистрация:
    25 фев 2021
    Сообщения:
    8
    тогда обьясните что ето за цыфры, что они значат, А ГЛАВНОЕ ОТКУДА ??? вы их берете ?
     

    Вложения:

    • rrrr.png
      rrrr.png
      Размер файла:
      27,6 КБ
      Просмотров:
      238
    • mmm.png
      mmm.png
      Размер файла:
      6,3 КБ
      Просмотров:
      239
  10. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    online_777,

    Берётся вначале описание SetTextColor.
    Там сразу указан модуль с обьявлением прототипов структур макро и тд wingdi.h
    Далее либо онлайн посмотреть COLORREF color:

    - либо в .h:

    Код (Text):
    1. COLORREF WINAPI SetTextColor(HDC, COLORREF);
    2.  
    3. typedef DWORD COLORREF;
    4.  
    5. #define RGB(r,g,b)      ((COLORREF)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16)))
    С остальным аналогично.
    --- Сообщение объединено, 25 сен 2021 ---
    Mikl___,

    wtf.png

    Странно :scratch_one-s_head:
     
  11. online_777

    online_777 New Member

    Публикаций:
    1
    Регистрация:
    25 фев 2021
    Сообщения:
    8
    Сам в шоке .:meeting:
     

    Вложения:

    • L1.png
      L1.png
      Размер файла:
      16,7 КБ
      Просмотров:
      219
  12. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.797
    online_777,
    самостоятельно читай Сказки дядюшки Римуса начиная с первой главы
     
    online_777 нравится это.