Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Команды*процессора*с*точки*зрения*электроники

42K
06 декабря 2010 года
Selja
22 / / 10.11.2009
Здравствуйте, я пытаюсь разобраться с ассемблером и чисто физической стороной микропроцессора. Недавно купил книгу по ассемблеру, но честно говоря, читается очень тяжело и остаётся много вопросов. Так вот дошел до темы, где рассматривается код некоторых ассемблерных команд. Например, PUSH EAX, далее приводится код этой команды в шестнадцатеричной системе – 50h, и в двоичной системе 01010000B. Дальше объясняется, что тут зашифрован код команды PUSH (01010B) и код регистра EAX (000). Меня интересует, что происходит с точки зрения электроники? Процессор считывает, например 01010000B, и что происходит дальше, а вернее как и что происходит дальше. И еще, как процессор различает команды, от данных, ведь в памяти они хранятся в одинаковом формате – в виде бинарного кода. В общем, хотелось бы понять, как все происходит, на чисто механическом уровне, когда команды не имеют логический вид, а машинный.
1
06 декабря 2010 года
kot_
7.3K / / 20.01.2000
какая связь между пониманием ассеблера, опкодами и "чисто физической стороной" процессора?
Если тебе нужно понимание "как это работает" - найди книгу по микроэлектронике для чайников. Такие есть.
Процессор - достаточно сложная система - и напрямую соотнести обработку опкода команды и происходящие процессы в электронных компонентах непросто. По сути микропроцессор является конечным автоматом - благодаря чему и происходит "распознавание" команд и данных - вначале он переводится в состояние определенной командой, благодаря чему способен дальше читать (писать, обрабатывать) поступающие данные. Это конечно весьма упрощенно - подробности в документации интел и т.п..
Для начинающего изучать асм - это помоему бесполезно, так как только создает кашу в голове.
252
06 декабря 2010 года
koderAlex
1.4K / / 07.09.2005
в современных процессорах код команды декодируется (а если используются операнды в памяти , то и пред выборка данных проходит) и помещается в очередь (в конвейер). декодированная команда имеет вид (ресурсы процессора-используемые регистры)-(непосредственные данные, если они есть)-(команды) . выполняется так : по мере освобождения ресурсов их коды выбираются из конвейера , а сами ресурсы помечаются как занятые . непосредственные данные выбираются из конвейера и заносятся в теневые регистры , непосредственно программисту недоступные . ну а затем уже выполняются микрокоманды и их коды выбираются из конвейера . фсё . )
14K
07 декабря 2010 года
shoorick
48 / / 07.06.2006
0 - 0V
1 - 2.4V
394
07 декабря 2010 года
MegaMozg
317 / / 18.03.2006
2Selja
думаю, вам будет интересно почитать
http://www.ozon.ru/context/detail/id/2967330/
в сети можно найти электронную версия (правда не в лучшем качестве)
297
07 декабря 2010 года
koodeer
1.2K / / 02.05.2009
Цитата: Selja
Меня интересует, что происходит с точки зрения электроники?


Ну что происходит: открываются одни транзисторы, другие закрываются, электрические импульсы снуют туда-сюда... Примерно так, на дилетантском уровне :).

Цитата: Selja
И еще, как процессор различает команды, от данных, ведь в памяти они хранятся в одинаковом формате – в виде бинарного кода.


А никак он их не различает. Можно передать управление на блок данных, предварительно записав туда набор команд - и процессор их выполнит. Именно на этом основан один из видов вирусописательства.

7
07 декабря 2010 года
@pixo $oft
3.4K / / 20.09.2006
koodeer,на самом-то деле есть такие архитектуры,в которых код и данные разделены.Так что не везде прокатит:)
1
07 декабря 2010 года
kot_
7.3K / / 20.01.2000
Цитата: @pixo $oft
koodeer,на самом-то деле есть такие архитектуры,в которых код и данные разделены.Так что не везде прокатит:)


на самом деле для ТС это совершенно безразлично. Ему для начала стоит разобраться с более простыми вещами

42K
07 декабря 2010 года
Selja
22 / / 10.11.2009
Ну что ж, будем учится, спасибо за ответы :)
260
08 декабря 2010 года
Ramon
1.1K / / 16.08.2003
"На самом деле все не так".

Определитесь о каком уровне абстракции вы разговариваете, логическом, физическом и какой частью этой абстракции оперируете.

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

 
Код:
IF ID EX MA WB
    IF ID EX MA WB


IF - Instruction fetch
ID - Instruction decode
EX - Execution
MA - Memory access
WB - Write-back

и так до полного упокоения цели.

Как не странно, но выборку инструкций проц. начинает после ресета с одного конкретного для архитектуры места, на который указывает его IP (Instruction Pointer).

На физическом уровне с транзисторами, стробами и иже с ними ответы как не странно будут совершенно иными.

PS: Книжка такой же отстой как и профессор ее написавший и годится лишь для применения по прямому назначению ее бумажных листов.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог