· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Значения всех регистров при старте com-программы

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


Дата: Дек 21, 2002 15:59:22

Разные дебаггеры показывают разные значения
регистров при старте com-программы.

Можно, конечно, их вывести прямо из программы,
но значения некоторых регистров зависят
от определенных условий, например в cx вроде размер com-файла.

Поделитесь, плиз, информацией по этой теме.


Дата: Дек 22, 2002 02:02:31

ax=bx=cx=dx=di=si = 0h
cs=ds=es = ТВОЙ_СЕГМЕНТ

... вроде так , но я могу и ошибаться ! :-)


Дата: Дек 22, 2002 17:28:21

Брехня!

Вот правильные:

ax = bx = yyzz
yy - FCB1 status {0 | 0FFh},
zz - FCB2 status {0 | 0FFh}.
cx = 00??h
dx = cs = ds = es = ss
si = ip = 100h
di = sp = 0FFFEh


Дата: Дек 22, 2002 18:08:19

--==MurgatroiD==--

Это они только Turbo Debuger'е так выглядят.


Аноним

Спасибо. Похоже на правду.


Дата: Дек 22, 2002 18:19:33

А чёрт! Ошибка вкралась.

cx = 00FFh
bp = 09??h

Вот!


Дата: Дек 22, 2002 21:01:21

Первый вариант мне больше нравился ;)

Так как он не противоречил выражению:
В регистр CX заносится длина образа программы, равная длине
COM-файла.

из статьи http://virus.komi.ru/lmd/adebug1.htm


Дата: Дек 23, 2002 00:06:17

Попробовал вывести cx на экран.
У меня получилось cx=005fh, независимо от размера программы.


Дата: Дек 23, 2002 00:17:01

Блин. Выводил неправильно.

Все убедился - cx=00ffh


Дата: Дек 23, 2002 11:27:23

ax не всегда = 0 при старте:
al = ff, если первый параметр коммандной строки -
путь к файлу с несуществующим именем диска, иначе al = 0.
ah - то же для второго параметра.


Дата: Дек 23, 2002 21:09:57

Аноним

Понял. Еще раз спасибо.


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