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

           

регистры, доступные в x86-64 режиме


Регистр указатель команд RIP теперь адресуется точно так же, как и все остальные регистры общего назначения. Программисты, заставшие живую PDP-11 (или ее отечественный клон "Электроники БК" или "УКНЦ"), только презрительно хмыкнут — наконец-то до разработчиков "писюка" стали доходить очевидные истины, которые на всех нормальных платформах были реализованы еще черт знает когда (в эпоху меча и топора).

Возьмем простейший пример: загрузить в регистр AL опкод следующей машинной команды. На x86 приходится поступать так.

call

$ + 5    ; запихнуть в стек адрес след. команды и передать на нее управление

pop ebx              ; вытолкнуть из стека адрес возврата

add ebx, 6    ; скорректировать адрес на размер команд pop/add/mov

mov al, [ebx] ; теперь AL содержит опкод команды NOP

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



Содержание раздела