На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Все статьи должны быть оформлены согласно Правил оформления статей.
2. Любые обсуждения должны происходить в специальной теме, обсуждение в любых других темах раздела запрещены.
3. Запрещается писать статьи о создании и распространении вирусов, троянов и других вредоносных программ!
4. За грамотно написанные и правильно оформленные статьи авторы награждаются DigiMoney.

Дополнительные ссылки:
Желаю творческих успехов! ;)
Модераторы: Jin X
  
    > Формат машинных команд IA-32 , Общие вопросы
      Формат машинных команд IA-32

      Сейчас существует несколько сотен языков. Почти все компиляторы при компиляции транслируют программы в язык ассемблера. Ассемблер в свою очередь транслирует программу в особые комбинации нулей и единиц – машинный язык. Таким образом, компьютер понимает только один язык – язык машинных команд. На первых компьютерах все программы писались на машинном языке, но в 50-х гг. стали испольовать символический аналог машинного языка – язык ассемблера. Давайте посмотрим как на уровне формата машинной команды соответсвуют между собой машинные команды и команды ассемблера. Рассмотрим простейшую команду ассемблера:
      ExpandedWrap disabled
        mov ebx, eax

      На машинном языке это будет выглядеть так:
      ExpandedWrap disabled
        8B D8

      8B – это код операции. Теперь рассмотрим еще один пример:
      ExpandedWrap disabled
        mov ecx, 128

      А на машинном языке ей соответсвует:
      ExpandedWrap disabled
        B9 00000080

      Код операции – B9. Отсюда можно сделать вывод, что прямого соответсвия между структурой команды ассемблера и соответсвующей машинной команды нет. Хотя команда одна и та же, коды операции разные. Большинство команд ассемблера имеют несколько возможных вариантов сочетания операндов. Это говорит о том, что машинная команда всегда однозначна по отношению к производимым ею действиями на уровне аппаратуры. Код операции является номером микропрограммы в блоке микропрограммного управления для каждой конкретной команды ассемблера с каждым конкретным вариантом сочетания операндов. Логически любая команда ассемблера содержит несколько элементов:
      1.Элемент, опиывающий, что делать, называется кодом операции(далее КОП).
      2.Элементы, описывающие объекты, с которыми нужно что-то делать, называются операндами. Операнды могут не задаваться, а подразумеваться по умолчанию
      3.Элементы, описывающие, как делать, называются типами операндов и обычно задаются неявно.
      Сообщение отредактировано: miksayer -
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0195 ]   [ 15 queries used ]   [ Generated: 28.03.24, 22:58 GMT ]