· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Статьи для дзенствующих

Посл.отвђт Сообщенiе


Дата: Ноя 19, 2003 04:38:26

Народ, я сейчас возможно буду говорить страшные вещи, но вы не пугайтесь, а лучше мне все на пальцах объясните :)

Я решил просмотреть статьи из раздела "Низкоуровневое программирование для дзенствующих". С ходу возникли проблемы.
Ну, во-первых, com-файл, содержащий "B823010525008BD803D88BCB31C0CD20" дизассемблится debug'ом на моей системе нормально, но получается не то, что в первой статье описано. В чем фишка? У меня w2k стоит. К слову, создав .com с помощью debug'a этого же и записав в него прогу, которая должна была получиться дизассемблированием, все равно "B823010525008BD803D88BCB31C0CD20" не получил. Расхождение начинается начиная с 6-го байта(если с 0 считать), т.е. с (89C3) вместо (8BD8). Это mov BX,AX.
HIEW так же, как и debug дизассемблирует. Что-то я уже ничего не понимаю, увлекся, надо поспать давно.
Во-вторых, при трэйсинге debug.exe периодически выдает сообщения о том, что VDM с чем-то там справиться не может(16-битным судя по всему) и трэйсинг программы приходится прекратить. Извините, сообщение сейчас не приведу, в самый ответственный момент не могу его заставить ругнуться. Я понимаю, что w2k не обязан поддерживать все старые проги, но есть способ с этой бедой справиться, не устанавливая window младших?
Ну все, в общем. Серия забавная, хочется последовательно дойти до SIce'a c IDA, при этом вспомнив little bit старые навыки программерства на асме под дос и поднабравшись теории виндового программирования. На очереди Iczelion и защищенный режим. Я вообще последовательность себе правильно представляю?

ps ms-dos вообще сложно поставить в довесок к форточкам?
он мои проблемы решит?


Дата: Ноя 19, 2003 05:45:56


т.е. с (89C3) вместо (8BD8). Это mov BX,AX.

и то и другое - mov BX,AX.
Тут нет никаких проблем, которые нужно решать.
mov reg,reg
может быть закодирована двумя способами просто.
Конекретный дебагер\ассемблер выберет одну из них,
но любой правильный дизассемблер распознает обе.

Если изменить значение бита D и поменять местами битовые
поля memr\codr то получается тотже результат.
Смотри раздел Инструменты\Образовательные программы\
Обучалки по строению опкода.
Конерктно этот момент разбирается в программке mod11bitsdw.exe


Дата: Ноя 19, 2003 18:32:36

Делаю с помощью Дзебуга комушник cd 20 в XP и у меня в место 2х байтов выходит 400 с лишним кило ПОЧЕМУ?


Дата: Ноя 20, 2003 06:15:49

EvilsInterrupt
Опиши, как делаешь.


Дата: Ноя 20, 2003 19:00:46

да все как обычно в Винде исрРаботает(типаХРproffessional)
запусаю дибаг. стучу e cs:100 enter выходит дурь и набиваю
cd 20 далее rcs:2 n pm.com w и усе.


Дата: Ноя 21, 2003 04:39:34 · Поправил: q_q

EvilsInterrupt
почему rcs:2? imho надо bx0 и cx2.
т.е. так:
c:\debug<Enter>
-a100<Enter>
xxxx:0100 int 20<Enter>
xxxx:0102<Enter>
-n c:\pm.com<Enter>
-rbx<Enter>
BX xxxx
:0<Enter>
-rcx<Enter>
CX xxxx
:2<Enter>
-w<Enter>
Запись 00002 байт
-q<Enter>
c:\dir c:\pm.com<Enter>
 Том в устройстве C не имеет метки.
 Серийный номер тома: хххх-хххх

 Содержимое папки c:\

21.11.2003  08:37                    2 PM.COM
               1 файлов              2 байт
               0 папок   x xxx xxx xxx байт свободно


Дата: Ноя 21, 2003 19:50:06

q_q круто что ты существуешь. Продолжай далее здравствовать.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.069