Задать вопрос
Профиль пользователя заблокирован сроком «навсегда» без указания причины
Ответы пользователя по тегу Assembler
  • Assembler. Разный синтаксис в программах. почему?

    Aquarius-Michael
    @Aquarius-Michael
    Программист и железячник
    Вы имеете ввиду AT&T и Intel синтаксис ассемблера? Если это, то так приняли раньше в лохматые годы. Просто надо знать оба синтаксиса. Насколько знаю, что в Linux принят AT&T-синтаксис. А в Windows - Intel-синтаксис, но AT&T тоже принято, но в меньших масштабах, как мне кажется.
    Ответ написан
    Комментировать
  • В режиме совместимости 32 бит у современных ОС игнорируется сегментная адресация?

    Aquarius-Michael
    @Aquarius-Michael
    Программист и железячник
    1. Да, современные операционные системы игнорируют сегментную организацию в пользу плоской модели памяти, разбитой на страницы. Но оставили пару сегментов для виртуальных машин. Этим дело и ограничивается. Сегментная организация памяти была хороша в те времена, когда нужно адресовать память больше, чем позволяет 16-разрядный процессор. К тому же плоская модель память удобней и проще для переносимости приложений в различные архитектуры.
    2. PE -- это, по сути, структура самой программы при загрузке, указывает операционной системе, что и куда размещать в памяти и что подгрузить. Что-то вроде таблицы трансляций.ae48911f15de4bf69ff19d90dd786df2.jpg
    В Linux используется ELF-формат, если не ошибаюсь.
    3. Для гарантированной работы приложения в системе обычно используют соглашения и рекомендации. В 32-разрядной системе ещё можно получить к ним доступ. Но лучше их не трогать. Так как никто не знает последствия. Но на уровне системного программирования знание может быть очень полезным, особенно в сфере безопасности. А вот в 64-разрядной системе они выключены кроме пары сегментных регистров для контекста.
    Ответ написан
    1 комментарий