Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 813
от 30.07.2007, 15:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 393, Экспертов: 29
В номере:Вопросов: 3, Ответов: 5


Вопрос № 96224: 1) Здравствуйте, уважаемые эксперты!!! Обращаюсь к вам, т.к. сам вряд ли смогу ответить на свой вопрос. Я изучаю Asm по книге Олега Калашникова(Ассемблер?Это просто!). Дошел до 3-й главы и у меня не работает программа, которая в конце гл...
Вопрос № 96226: Ув. эксперты, подскажите, как программно узнать hint некоторой функции?...
Вопрос № 96275: Привет! Я изучаю ассемблер по книге Калашникова. В главе 8 я встретился с программой по работе с файлами. Когда я запускаю эту программу через отладчик ADFPRO то дойдя к открытию файла в отладчике, строка int 21h (регистр IP = 0106) отладчик преходит...

Вопрос № 96.224
1) Здравствуйте, уважаемые эксперты!!!
Обращаюсь к вам, т.к. сам вряд ли смогу ответить на свой вопрос.
Я изучаю Asm по книге Олега Калашникова(Ассемблер?Это просто!).
Дошел до 3-й главы и у меня не работает программа, которая в конце главы. Я и сам набирал и запускал Com-программу автора, все равно ничего не происходит. Программа должна выводить в верхний левый угол веселую рожицу(белую) на синем фоне.
Оп.система у меня: Windows XP Pro 2002 SP 2, ОЗУ 256 мб
процессор Intel Celeron 1300.
что интересно, в программе Emu8086v.2,57(обуч.программа) если заменить символ рожицы на 37h(символ"7"),то все работает. Хотя рожица в любом случае не отображается, ни с помощью Masm'а, ни с помощью этой проги)
В чем дело?
Привожу код программы:
2)и еще один небольшой вопрос...
в первой главе этой книги выводится сообщение"Hello,World".Так вот, я попробовал заменить эти слова на "Здравствуй, мир" и отобразились совсем не те символы. С чем это связано и как это исправить?
Заранее спасибо.

Приложение:

Отправлен: 24.07.2007, 17:01
Вопрос задал: Коваленко Дмитрий Александрович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Евгений Иванов
Здравствуйте, Коваленко Дмитрий Александрович!

Установите видеорежим:

mov ax,3
int 16

Успехов.
---------
Знания - сила
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +79519145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 24.07.2007, 17:09
Оценка за ответ: 5
Комментарий оценки:
cпасибо за ответ!жаль только что второй вопрос остался без ответа.ну да ладно.продолжаю изучение!!!
еще раз спасибо:)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Коваленко Дмитрий Александрович!

2) Весь код набираете в блокноте, а выводимый русский текст пишете в любом текстовом редакторе поддерживающим кодировку 886(EDIT.COM из системной папки COМMAND). У блокнота кодировка ср1251.
Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 24.07.2007, 17:20
Оценка за ответ: 5
Комментарий оценки:
Спасибо огромное!!!!!!!!

Отвечает: An42
Здравствуйте, Коваленко Дмитрий Александрович!
1.В программе добавьте в начале кода, две строки
mov ax,0002h ;можно и mov ax,0003h
int 10h
Они устанавливаю текстовый видео-режим,
в программе приложено исправление.
2. В программе Вы написали «Здравствуй, мир», а у Вас вышло нечто такое «‡¤а ўбвўг©, ¬Ёа»
это связано с кодировкой. Кодовые страницы у WIN и DOS разные для русских символов.
Простейшее решение, это использовать DOS-ский редактор (edit.com).
Вызвать его можно так, «Пуск»-> «Выполнить» -> ввести edit.com
Записав программу со словами "Здравствуй, мир", и выполнив Вы и прочитаете "Здравствуй, мир"

Удачи

Приложение:

Ответ отправил: An42 (статус: 4-ый класс)
Ответ отправлен: 25.07.2007, 05:54


Вопрос № 96.226
Ув. эксперты, подскажите, как программно узнать hint некоторой функции?

Приложение:

Отправлен: 24.07.2007, 17:27
Вопрос задал: Олег Владимирович (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Олег Владимирович!

Библиотеки DLL имеют PE заголовок, в котором есть секция .edata ( секция экспорта ).
В начале секции .edata расположена структура IMAGE_EXPORT_DIRECTORY, поля структуры и их описание смотрите в приложении. Получив значение AddressOfNames Вы получаете адрес списка имен всех экспортируемых функций, hint это порядковый номер функции в этом списке начиная с нуля. К примеру: hint(0009) Name: Beep, и в списке: AddAtomA, AddAtomW, AllocConsole, AllocLSCallback, AllocSLCallback, AreFileApisANSI, BackupRead, BackupSeek, BackupWrite, Beep
Более подробно структура РЕ.
Удачи!

Приложение:

---------
И только наступив на грабли мы приобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 24.07.2007, 20:22


Вопрос № 96.275
Привет! Я изучаю ассемблер по книге Калашникова. В главе 8 я встретился с программой по работе с файлами. Когда я запускаю эту программу через отладчик ADFPRO то дойдя к открытию файла в отладчике, строка int 21h (регистр IP = 0106) отладчик преходит на адрес IP = 107C и выдает не то что в программе. Почему так происходит? Почему отладчик не показует дальнейшую работу программы, хотя сама программа выводит сообщение что файл открыт и загружен в память, или не открыт!

Приложение:

Отправлен: 25.07.2007, 01:19
Вопрос задал: Artem88neo (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Стас
Здравствуйте, Artem88neo!
>строка int 21h (регистр IP = 0106) отладчик преходит на адрес IP = 107C и выдает не то что в программе.
Дебаггер уходит на int21 и показывает Вам "внутренности системы".
Чтобы это не происходило нужно вместо команды Trace (по моему F1 в AFD) использовать Proceed (F2 вроде). Тогда дебаггер как бы "пробежится" по INT (Call).
Ответ отправил: Стас (статус: Специалист)
Ответ отправлен: 25.07.2007, 11:25


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.53 beta от 09.07.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное