![]() |
|
Модераторы: LSD |
![]()
|
|
| CD20 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.8.2005 Репутация: нет Всего: 1 |
Я вот тоже начал учить асм и решил разобраться в машинных кодах.
Стало ясно, что они вычисляются определённым образом. Вот, что я смог пронаблюдать:
Но они меняются в различных ситуациях, хоть и не сильно. Кто-нить знает по каким лагоритмам они меняются?!!! Это сообщение отредактировал(а) CD20 - 19.8.2005, 07:25 |
|||
|
||||
| CD20 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.8.2005 Репутация: нет Всего: 1 |
PS
Наверное, лучше будет перенести это в раздел "асма и прочих вопросов." |
|||
|
||||
| setq |
|
|||
|
Unregistered |
в intel та часть команды, в которой находится код операции может содержать в себе биты, которые говорят что-то об операндах. алгоритма не знаю, но это где-то описано 100 пд.
|
|||
|
||||
| CD20 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 18.8.2005 Репутация: нет Всего: 1 |
Короче, пипл. Коды жёстко проставлены. То бишь: то, что я привёл таблицу - она верная!
Есесно только не полная. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Код команды формируется по не самому простому принципу...
Перед командой может быть предикат - скажем переопределение сегмента операнда. Опкод команды может включать в себя биты, определяющие тип операнда и - для сегментных или битов флага - конкретное указание операнда. Затем идут данные - адреса и/или непосредственные значения. Подробнее - шагай на сайт Интела (или, если хочешь, АМД) и качай офигенного размеру PDF с названием типа "Intel Pentium IV opcode Datasheet"... чтиво на ночь лет на несколько. По сабжу. Я много написАл в свое врема программ в машинных кодах - для Электроники Д3-28. Однако там это было оправдано - набор команд весьма компактный (не RISC, но около того), нет такой развесистой клюквы регистров, плоская страничная память... АСМ-среды не было, а прилагаемый Барсик еле ворочался на самых простых вещах... даже ВТ-128С решал проблему лишь наполовину... а программы были такие, что обрабатывали массив данных по 3-4 месяца непрерывно - так что скорость работы была более чем критична. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: нет Всего: 93 |
Года полтора назад в одной из своих программ на С++ для Windows реализовал code-injection машинных кодов -- просто создавался массив, в него записывались числа, устанавливалось разрешение на исполнение и вперёд Там разбиралось математичекое выражение и по нему строилась подпрограмма его вычисления. А поскольку это выражение нужно было считать около 50 раз в секунду -- то решение вполне оправданно. Добавлено @ 14:07 Как справочником пользовался описанием интеловского 486 процессора. Мне хватило Особенно понравилось то, что, например, при перестановки некоторых независимых инструкций местами можно получать выигрышь в быстродействии аж до 10% !!! -------------------- Да. Именно так. |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
У Зубкова в "Ассемблер для DOS, Win, Unix" указывается, что возможно до сделать ускорение на 200% -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Mephistopheles |
|
|||
|
Бегущий от света ![]() Профиль Группа: Участник Сообщений: 146 Регистрация: 15.11.2005 Где: Где нет света Репутация: нет Всего: 6 |
Команда - слово - 2 байта.
Формируется по битам. Вот, блин, где узнать: как? --------------------
Ангелы и бесы кружат надо мной.Ангел или бес - делай выбор свой.Вспыхнуть огнём; вознестись до небесДелай выбор свой: ангел или бес?© Mephistopheles, бегущий от света. |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 4 Всего: 151 |
В справочных материалах по процессорам, по всей видимости. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| rsm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 999 Регистрация: 16.3.2005 Репутация: 7 Всего: 62 |
||||
|
||||
![]()
|
| Правила ведения Религиозных войн | |
|
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Религиозные войны | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |