рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

NOP ; команда, чем опкод мы хотим загрузить в AL

NOP ; команда, чем опкод мы хотим загрузить в AL - раздел Программирование, Архитектура x86-64 под скальпелем ассемблерщика Листинг 4 Загрузка Опкода Следующей Машинной Команды На X86-64 Кррра...

Листинг 4 загрузка опкода следующей машинной команды на x86-64

Крррасота! Только следует помнить, что RIP всегда указывает на следующую, а отнюдь не текущую инструкцию! К сожалению, ни Jx RIP, ни CALL RIP не работают. Таких команд в лексиконе x86-64 просто нет. Но это еще что! Исчезла абсолютная адресация, а это гораздо хужее. Если нам надо изменить содержимое ячейки памяти по конкретному адресу, на x86 мы поступаем приблизительно так:

 

dec byte ptr [666h] ; уменьшить содержимое байта по адресу 666h на единицу

Листинг 5 абсолютная адресация в классическом x86

Под x86-64 транслятор выдает ошибку ассемблирования, вынуждая нас прибегать к фиктивному базированию:

 

xor r9, r9 ; обнулить регистр r9

dec byte ptr [r9+666h] ; уменьшить содержимое байта по адресу 0+666h на единицу

Листинг 6 использование фиктивного базирования на x86-64 для абсолютной адресации

Есть и другие отличия от x86, но они не столь принципиальны. Важно то, что в режиме совместимости с x86 (Legacy Mode) ни 64-битные регистры, ни новые методы адресации недоступны! Никакими средствами (включая черную и белую магию) дотянуться до них нельзя и прежде чем что-то сделать, необходимо перевести процессор в "длинный" режим (long mode), который делиться на два под-режима: режим совместимости с x86 (compatibility mode) и 64-битный режим (64-bit mode). Режим совместимости предусмотрен только для того, чтобы 64-разрядная операционная система могла выполнять старые 32-битные приложения. Никакие 64-битные регистры здесь и не ночевали, поэтому нам этот режим фиолетов как заяц.

Реальная 64-битность обитает только в 64-bit long mode, о котором мы и будем говорить!

 

Таблица 1 режимы работы процессора AMD-64 и их особенности

– Конец работы –

Эта тема принадлежит разделу:

Архитектура x86-64 под скальпелем ассемблерщика

На сайте allrefs.net читайте: "Архитектура x86-64 под скальпелем ассемблерщика"

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: NOP ; команда, чем опкод мы хотим загрузить в AL

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Что нам понадобиться?
Для программирования в 64-режтме желательно иметь компьютер с процессором AMD Athlon FX или Opertorn, но на худой конец можно обойтись и эмулятором. Существует не так уж много эмуляторов под x86-64

Обзор x86-64
За подробным описанием x86-64 архитектуры лучше всего обратится к фирменной документации "AMD64 Technology — AMD64 Architecture Programmer's Manual Volume 1:Application Programming" (http

NOP ; команда, чем опкод мы хотим загрузить в AL
Листинг 3 загрузка опкода следующей машинной команды в классическом x86 Это же умом поехать можно пока все это писать! И еще здесь очень легко ошибиться в размере команд, которых приходитс

gt;>> врезка переход в 64-разрдяный режим
В исходниках FreeBSD можно найти файл amd64_tramp.S, быстро и грязно переводящий процессор в 64-режим. Откомпилировав, его можно записать в boot-сектор, загружающий нашу собственную операционную си

Hello world на x86-64
Программирование под 64-битную версию Windows мало чем отличается от традиционного, только все операнды и адреса по умолчанию 64-разярные, а параметры API-функций передаются через регистры, а не че

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги