|
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
|
|
Машинный код Intel-486 (подробно) + прочие процессоры28.04.2015, 11:31. Показов 8128. Ответов 16
Метки нет (Все метки)
Подскажите, пожалуйста, предельно исчерпывающую инфу (т. е. не обзорную, а очень подробную) по машинному коду, его синтаксису - со всеми там префиксами, операндами и пр. - как это выглядит в виде окончательного "байтового потока". Архитектура самого процессора не нужна (конвееры, АЛУ и пр.), нужен именно формат входных данных для него и то, как он их "кушает".
Интересуют Intel, 486 (прежде всего), а также RISC и AMD-64 + факультативно другие процессоры... Не по теме: Мануалы Интела и x86asm просмотрел - пользы мало. В "интеле" можно утонуть навечно, причём со словариком. :) А x86asm провоцирует много вопросов. Например, что за префиксы стоят перед базовым, когда они пишутся, когда нет? Что за "постфиксы" стоят после него? Какие поля таблицы имеют непосредственное отношение к будущему машинному коду? Ещё не понятно, что из себя представляет операнд1 в виде регистра (r8, r32) - ибо регистр это не данные, а контейнер... ну и т. д.
0
|
|
| 28.04.2015, 11:31 | |
|
Ответы с готовыми решениями:
16
Подскажите мать поддерживающую процессоры Intel Celeron D 347 и Intel Core i3-2100. Сильно ли отличаются процессоры по мощности: DualCore Intel Pentium D 820 от Intel Core 2 Duo E4500? В погоне за скоростью: многоядерные процессоры, пропускная способность шины и прочие технические нюансы |
|
Клюг
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
|
|
| 28.04.2015, 13:24 | |
|
Это имелось в виду?
0
|
|
|
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
|
||
| 28.04.2015, 13:36 [ТС] | ||
![]() Таблички с сайта x86asm очень хороши, но есть потребность в подробном описании их содержимого (желательно на русском языке и с примерами). Я хочу знать всё о каждом бите, ну или хотя бы байте...
0
|
||
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
|||
| 28.04.2015, 14:01 | |||
|
panotnap,
P.S. посмотри https://www.cyberforum.ru/asse... 05284.html там есть частичный разбор опкодов, хотя лучше чем в мануалах от Intel это никто не опишет
0
|
|||
|
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
|
|
| 28.04.2015, 15:10 [ТС] | |
|
09 r L OR r/m16/32 r16/32
09 (primary opcode) - тут всё понятно, байт есть байт r - (либо поле расширения опкода от 0 до 7, либо байт ModR/M, содержащий регистровый операнд и операнд r/m) ...Что это за расширение величиной в 8 значений? Его нужно добавлять к опкоду, но тремя битами или одним байтом? ...Второе понял пока всё это писал (речь об указании номера конкретного регистра).Но. Допустим, OR ax, bx. AX я выражаю через значение расширения r. А как же BX? В этой ситуации опкод будет 09 или 0B? Мне же надо OR r16, r16. Я такого не вижу. Другие префиксы / поля сколькими битами должны выражаться? Байтом? В поле первичного опкода в одной таблице написано 40+r, в другой - 40 в первичном опкоде и r в расширении (то есть отдельно). И как это понимать? Это одно и то же или это означает разное? Вообще, пытаться понять принципы формирования машинных кодов из англоязычных справочных таблиц - то ещё извращение... Поэтому проще, конечно, найти разъяснение. Добавлено через 5 минут (ремарка: ссылки форум потёр, они были на сайт x86asm, раздел coder32) Ещё забавно, что в этой таблице поле расширения базового опкода 0F стоит ДО этого поля, хотя является не другим полем вовсе а именно этим самым базовым; а то, что указано в поле базового опкода уже должно по идее занимать соседнюю, следующую полосу...
0
|
|
|
4195 / 1841 / 223
Регистрация: 06.10.2010
Сообщений: 4,127
|
||
| 28.04.2015, 17:53 | ||
1
|
||
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 29.04.2015, 04:34 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Бит d (бит направления) показывает, чем является регистр в поле Reg: операндом-источником (d=0) или операндом-приемником (d=1) Зависимость режима адресации от поля Mod
1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
||||
| 29.04.2015, 15:44 | ||||
|
Рисовалась, видать, с бодуна. Правильны оба ответа. Можно 09, а можно 0B : 09 D8 OR AX,BX 0B C3 OR AX,BX Добавлено через 5 минут TASM, кстати, компиляет 0B C3 , а вот MASM 09 D8. Из ностальжи : Когда-то давным давно некий перец выпустил книжку "Пишем вирусы и антивирусы", в котором привел текст простейшего нерезидентного файлового вируса. И пошла писать губерния. Авторам антивирусных программ пришлось ловить его в нескольких вариантах, в зависимости от того каким ассемблером откомпиляли. Добавлено через 2 минуты Добавлено через 5 минут Но их можно вполне однозначно понять. Если согласно принципу получается команда JMP FAR [AL], значит это она и есть. Отдельный вопрос куда произойдет этот JMP, но он произойдет. А вот когда следующие процессоры линейки стали насыщать дополнительными опкодами, принципы пошли лесом. Дополнительные опкода сразу стали вешать сделав POP CS префиксом. А какая команда была. Добавлено через 6 минут Вот тебе еще приколы : 87 D9 XCHG BX, CX 87 CB XCHG CX, BX Добавлено через 2 минуты А вот приколы с длиной команды : 83 E3 FE AND BX,0FFFEH 81 E3 FFFE AND BX,0FFFEH Добавлено через 4 минуты А вот тебе даже 3 разных опкода у одной команды : 93 XCHG AX, BX 93 XCHG BX, AX 87 C3 XCHG AX, BX 87 D8 XCHG BX, AX
1
|
||||
|
Клюг
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
|
||
| 29.04.2015, 15:59 | ||
|
2
|
||
|
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
|
||||||||||||||||
| 15.05.2015, 14:49 [ТС] | ||||||||||||||||
|
Я компилирую NASM'ом два следующих кода:
0
|
||||||||||||||||
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
||
| 15.05.2015, 16:42 | ||
|
panotnap,
потому, что
1
|
||
|
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
|
|||||||||||
| 15.05.2015, 18:02 [ТС] | |||||||||||
|
Подождите. А процессор-то как узнает по одинаковому байт-коду, что я от него хочу - mov eax или mov ax?
Добавлено через 37 минут
![]() Процессору приходит 89 D8 - что он будет делать с верхним словом регистра EAX? Процессору приходит 66 89 D8 - то же вопрос.
0
|
|||||||||||
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
||||
| 15.05.2015, 21:59 | ||||
|
А если тебе хочется наоборот, то прилепи перед инструкцией префикс переключения разрядности. Добавлено через 4 минуты А в 32-разрядном режиме скопирует ebx в eax. Т.е. изменит. Добавлено через 1 минуту Зато в 32-разрядном ничего не будет делать. Скопирует только bx в ax.
2
|
||||
|
656 / 409 / 76
Регистрация: 21.09.2008
Сообщений: 1,407
|
|
| 15.07.2015, 16:23 | |
|
0
|
|
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|
| 16.07.2015, 08:36 | |
|
Там-же сказано по ОДИНАКОВОМУ байткоду. А если лепить или не лепить 66, то это означает неодинаковость.
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||
| 22.07.2015, 23:56 | |||
|
panotnap,
![]() Почитайте Кулакова - Программирование на аппаратном уровне, специальный справочник(в сети есть djvu). Обратите внимание на перевод процессора в защищенный режим. Сами разработчики "Камня" не знают, что они сделали. Есть "реальный"(чистый Биос/Дос, прерывания и 1 Мб памяти), есть "защищенный"(исключения-типа прерывания, и памяти сколько подарили), а есть ещё(появился потом) и "не реальный" режим-(Биос/Дос + память, сколько подарили [ представили Биос/Дос и несколько гиг памяти ] ). А сколько этих режимов можно выжать из "Камня" - Х / З.
0
|
|||
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
||
| 23.07.2015, 00:32 | ||
|
На самом деле реальный режим в IA-32 -это не эквивалент режима оригинального 8086. По большому счету в нем поверх защищенного режима налеплены костыли, которыми легко воспользоваться, что и продемонстрировано в книге Кулакова. Ну так например в защищенном режиме в сегментый регистр пишется селектор и подгружается теневая часть и таблицы дескрипторов. В реальном при запись в сегментный регистр приводит к смещению базы в теневой части. А адресация работает одинаково, поэтому изменив предел можно получить доступ ко всей памяти. Более того, загрузив в CS соответствующую теневую часть можно в реальном режиме выполнять 32х-битный код (этим мало кто пользуется в силу очевидных причин). Кстати прерывания защиты в реальном режиме прекрасно работают.
0
|
||
| 23.07.2015, 00:32 | |
|
Помогаю со студенческими работами здесь
17
Процессоры Core-i5 Intel Процессоры g intel pentium Новые процессоры Intel! Подскажите дизассемблер, который переведет код ассемблера в машинный 8 битный код для КР580 (очередной раз) Java код в native (машинный) код Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|