| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > секреты Интела |
| Автор: oleg1973 1.4.2005, 17:34 |
| кароче ктото спрашивал тока я не помню мпро микрокомманды процессора, тоесть к примеру команда mov свою очередь состоит из набора микрокоманд которые в результате и выполняются процессором, точнее ее hex код (команды) является указателем на адресс в таблице микрокодов по которому в свою очеред процессо производит их выборку самое интересное что данные микрокоды можно перепрограмировать тоесть к примеру команда mov eax,0 заносит в регистр еах нолик изменив несколько данную команду можно заставить ее делать и еше какуюнибуть операцию к примеру после занесения в еах нолика скопировать еах в евх надеюсь преимушества обьяснять не нада? и так как это работает: для перевода проца в режим редактирования используется недокументированый опкод 0x0F0B после него нада указать редактируемую команду и после нее добавочную сам микрокод занимает 4 байта тоесть mov eax,0 выглядит как 10111000000000000000000000000000 как видно имеем кучу свободных ноликов mov ebx,eax выглядит как 10001001110000110000000000000000 после наших махинаций данные числа сложатся и сформируют новую команду с новым опкодом внимание! если сумма чисел превысет 0xffffffff и запишется в проц то могут возникнуть проблемы с переполнением и появлением ошибок так что перед тем как ченить химичить лучше на калькуляторе все проверить. ну все в перед эксперементировать за последствия я не отвечаю |
| Автор: Chingachguk 1.4.2005, 20:19 |
| Чета я невкурил, как это так это. 1) Куда заносятся изменения ? В кристалл что-ли ? Не слишком крута ? 2) Если взять ту же mov eax,0 то команда будет типа opcode,operand(4). Хучь ты че суй в operand, а будет проста mov eax,другой операнд, ну а если ты опкод поменял, то эта уже будет не mov eax,operand, а что-та другое. Инженера ихние юзали-юзали байт опкода - да нехватило в конце концов - вот от этого видна и стали появляться команды с префиксами типа FF - по-моему это jmp dword ptr в 32-х битном коде или типа того. |
| Автор: oleg1973 1.4.2005, 21:23 |
| Chingachguk серезно тоесть разложение команды на подкоманды как на RISC lsl r1,r1,#0x12 вот такое даже можно будет соорудить! |
| Автор: Girder 2.4.2005, 01:02 |
| PS: И тебя oleg1973 с 1 апреля |
| Автор: AISIN 28.4.2005, 09:37 | ||||
| А почему бы просто макроопределения не использовать!!! Определяем макрокоманду с именем INCX1:
Макрокоманда INCX1 будет вызываться вот так MM1 INCX1 -------------------------------------------------------------------------------------------------- А кто нибудь юзал ассемблер версии 6.2.0.? Там можно делать вот так!
|
| Автор: oleg1973 28.4.2005, 19:30 |
| AISIN сильно загнул как ты |
| Автор: AISIN 28.4.2005, 20:48 |
| oleg1973 Да я сам удивился когда это увидел! Вобщето этот ассемблер был специально разработан для мобильных устройств. |