169 похожих чатов

Ассемблеристы, смогёте мне тестовый набор команд для теста инструкции add

с ModR/M сделать?

25 ответов

61 просмотр

Конкретно add, или сразу https://sourceforge.net/projects/mediana/files/tests.bin/ ?

disba1ancer- Автор вопроса
s54820
Конкретно add, или сразу https://sourceforge.net/p...

пока конкретно, я другие пока не заимплементил у меня на add то многовато кода получилось надо делать меньше

disba1ancer- Автор вопроса

Ничего не понял. Что надо сделать?

КТ315
Ничего не понял. Что надо сделать?

00000000 00 add byte ptr [eax], al 00000002 00 add byte ptr [eax], cl 00000004 00 add byte ptr [eax], dl ... 0001d2ce 03 add esi, dword ptr [edx + edx*8] 0001d2d5 03 add esi, dword ptr [ebx + edx*8] 0001d2dc 03 add esi, dword ptr [esp + edx*8] 0001d2e3 03 add esi, dword ptr [ebp + edx*8] ... 0001dc18 03 add esp, edi 0001dc1a 03 add ebp, edi 0001dc1c 03 add esi, edi 0001dc1e 03 add edi, edi ...

s54820
00000000 00 add byte ptr [eax], al 00000002 00 add...

Типа всевозможные add сделать?

disba1ancer- Автор вопроса
КТ315
Типа всевозможные add сделать?

ну как бы да, но это мало полезно без тестовых входных данных в виде стейта процессора и памяти

КТ315
Типа всевозможные add сделать?

Да. Тест дизасма. Всё, что кодируется, минус числа. И это ещё не все, это только 0-3, а есть ещё те, где опкод в модрм.

s54820
Да. Тест дизасма. Всё, что кодируется, минус числа...

Я бы просто сгенерировал от 0 до макс. значения байтики, и закинул бы в дизасм, вывод отфильтровать на add)) надёжно, но долго.

КТ315
Я бы просто сгенерировал от 0 до макс. значения ба...

А теперь скажи, сколько байтиков нужно сгенерировать для 01 80?

s54820
А теперь скажи, сколько байтиков нужно сгенерирова...

Не только для этого. Там на выходе файл будет точно больше гигабайта)

КТ315
Не только для этого. Там на выходе файл будет точн...

Тут вся суть в том, чтобы не генерировать разные immediate/offset, остановившись на нулях, но все опкоды и все modrm/sib при этом обойти. И префиксы ещё. Ну когда 32 бита будут.

disba1ancer- Автор вопроса
КТ315
Не только для этого. Там на выходе файл будет точн...

проще методом отжига какого-нибудь тестить

disba1ancer
ещё + 2

На самом деле можно просто 01 80 90 90 90 90 90 90 90 90 90 90 90 90 90, этого точно не больше чем нужно, но и точно не меньше.

disba1ancer- Автор вопроса
disba1ancer
почему не больше?

Так лимит 15 байт на инструкцию.

disba1ancer- Автор вопроса
disba1ancer
а не 16?

Нет. times 14 cs nop Сделаешь 15 — упадёт.

disba1ancer
а не 16?

Описание #GP.

disba1ancer- Автор вопроса
s54820
screenshot Описание #GP.

такое уже сложнее эмулировать

disba1ancer- Автор вопроса
s54820
screenshot Описание #GP.

но у меня и #GP-то пока нет

disba1ancer- Автор вопроса
s54820
На самом деле можно просто 01 80 90 90 90 90 90 90...

это ведь add 0x9090[bx + si], ax или add 0x90909090[eax], eax, так?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта