IF ID EX MA WB
IF ID EX MA WB
Команды*процессора*с*точки*зрения*электроники
Здравствуйте, я пытаюсь разобраться с ассемблером и чисто физической стороной микропроцессора. Недавно купил книгу по ассемблеру, но честно говоря, читается очень тяжело и остаётся много вопросов. Так вот дошел до темы, где рассматривается код некоторых ассемблерных команд. Например, PUSH EAX, далее приводится код этой команды в шестнадцатеричной системе – 50h, и в двоичной системе 01010000B. Дальше объясняется, что тут зашифрован код команды PUSH (01010B) и код регистра EAX (000). Меня интересует, что происходит с точки зрения электроники? Процессор считывает, например 01010000B, и что происходит дальше, а вернее как и что происходит дальше. И еще, как процессор различает команды, от данных, ведь в памяти они хранятся в одинаковом формате – в виде бинарного кода. В общем, хотелось бы понять, как все происходит, на чисто механическом уровне, когда команды не имеют логический вид, а машинный.
Если тебе нужно понимание "как это работает" - найди книгу по микроэлектронике для чайников. Такие есть.
Процессор - достаточно сложная система - и напрямую соотнести обработку опкода команды и происходящие процессы в электронных компонентах непросто. По сути микропроцессор является конечным автоматом - благодаря чему и происходит "распознавание" команд и данных - вначале он переводится в состояние определенной командой, благодаря чему способен дальше читать (писать, обрабатывать) поступающие данные. Это конечно весьма упрощенно - подробности в документации интел и т.п..
Для начинающего изучать асм - это помоему бесполезно, так как только создает кашу в голове.
в современных процессорах код команды декодируется (а если используются операнды в памяти , то и пред выборка данных проходит) и помещается в очередь (в конвейер). декодированная команда имеет вид (ресурсы процессора-используемые регистры)-(непосредственные данные, если они есть)-(команды) . выполняется так : по мере освобождения ресурсов их коды выбираются из конвейера , а сами ресурсы помечаются как занятые . непосредственные данные выбираются из конвейера и заносятся в теневые регистры , непосредственно программисту недоступные . ну а затем уже выполняются микрокоманды и их коды выбираются из конвейера . фсё . )
1 - 2.4V
думаю, вам будет интересно почитать
http://www.ozon.ru/context/detail/id/2967330/
в сети можно найти электронную версия (правда не в лучшем качестве)
Цитата: Selja
Меня интересует, что происходит с точки зрения электроники?
Ну что происходит: открываются одни транзисторы, другие закрываются, электрические импульсы снуют туда-сюда... Примерно так, на дилетантском уровне :).
Цитата: Selja
И еще, как процессор различает команды, от данных, ведь в памяти они хранятся в одинаковом формате – в виде бинарного кода.
А никак он их не различает. Можно передать управление на блок данных, предварительно записав туда набор команд - и процессор их выполнит. Именно на этом основан один из видов вирусописательства.
koodeer,на самом-то деле есть такие архитектуры,в которых код и данные разделены.Так что не везде прокатит:)
Цитата: @pixo $oft
koodeer,на самом-то деле есть такие архитектуры,в которых код и данные разделены.Так что не везде прокатит:)
на самом деле для ТС это совершенно безразлично. Ему для начала стоит разобраться с более простыми вещами
Ну что ж, будем учится, спасибо за ответы :)
Определитесь о каком уровне абстракции вы разговариваете, логическом, физическом и какой частью этой абстракции оперируете.
Если это логический уровень и конвейер, то действия железки с тупым пятиступенчатым конвейером выглядят так:
Код:
IF - Instruction fetch
ID - Instruction decode
EX - Execution
MA - Memory access
WB - Write-back
и так до полного упокоения цели.
Как не странно, но выборку инструкций проц. начинает после ресета с одного конкретного для архитектуры места, на который указывает его IP (Instruction Pointer).
На физическом уровне с транзисторами, стробами и иже с ними ответы как не странно будут совершенно иными.
PS: Книжка такой же отстой как и профессор ее написавший и годится лишь для применения по прямому назначению ее бумажных листов.