Вопрос № 27841: Доброе время суток, уважаемые эксперты!
Прошу разяснить мне следующее- вот простенькая программулька.
В dx заносится адрес метки Mess (строка 9), но при просмотре её в отладчике ( Afdpro)
по этому адресу находится совершенно левый код, п...
Вопрос № 27.841
Доброе время суток, уважаемые эксперты!
Прошу разяснить мне следующее- вот простенькая программулька.
В dx заносится адрес метки Mess (строка 9), но при просмотре её в отладчике ( Afdpro)
по этому адресу находится совершенно левый код, почему так? И что за число
возвращает 21h прерывание в регистр ax?
Приложение:
Отправлен: 17.10.2005, 14:15
Вопрос задал: Macshm (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Евгений Иванов
Здравствуйте, Macshm!
у тебя два раза записывается в DX.
первый раз - неправильно
второй - правильно
используй второй вариант
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 17.10.2005, 14:35
Отвечает: Хузин Макс
Здравствуйте, Macshm!
1. Никогда не пользовался Afdpro, ничего не могу про него сказать.
2. Цитата из книги Зубкова:
~~~~~~~~~~~~~
Функция DOS 09h - Записать строку в STDOUT с проверкой на Ctrl-Break
Ввод: ah = 0h9
ds:dx = адрес строки заканчивающейся символом $(24h)
Вывод: Никакого согласно документации, но на самом деле:
al = 24h (код последнего сивола)
~~~~~~~~~~~~~
Ответ отправил: Хузин Макс (статус: 1-ый класс)
Отправлен: 17.10.2005, 14:55
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Macshm!
Очевидно, сбили с толку строки, указанные в приложении.
Их надо убрать, тогда все станет просто и понятно...
Кстати, ты видел не левый код, а свою собственную программу с адреса 100h :)
9-я ф-я ничего не возвращает в AX (скажем, возвращает "мусор"). Этот регистр используется как рабочий и в процессе отработки функции в AL остается последний обработанный символ, т.е. '$'=24h
Отвечает: Стас
Здравствуйте, Macshm!
В дополнение к предидущим ответам:
ты смотрел что находится по второму адресу (mov dx,offset Mes)? (именно там должен быть Ха-ха!!!)
Еще возможно адрес тот, а вот сегмент где смотришь не тот.
(оценоку можешь не ставить :))
Ответ отправил: Стас (статус: Специалист)
Отправлен: 18.10.2005, 00:48
Отвечает: Юра Устинов
Здравствуйте, Macshm!
Я просмотрел вашу программу и не нашёл левый код.
на месте mov dx,offset Mess у меня(правда смотрел под TD) mov dx,010f
Если вы это назвали левым кодом, то не пугайтесь, просто offset Mess равен(у меня, у вас может быть другое число )010f.
Если же вы не это имели ввиду, то либо касячит AFD либо MASM.
Удачи в поиске истины!
--------- Спасём Россию!!!
Ответ отправил: Юра Устинов (статус: 2-ой класс)
Отправлен: 18.10.2005, 07:34