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

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


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

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

Выпуск № 887
от 26.10.2007, 20:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 375, Экспертов: 21
В номере:Вопросов: 4, Ответов: 4


Вопрос № 106197: Здравствуйте подскажите мне как в ассемблерной программе вывести на экран сообщение или содержание переменной...
Вопрос № 106208: вот программка :0102 MOV CX,0000 :0105 ADD AX,0001 :0108 LOOP 0105 если запустить ее в debuger число циклов будет 10000h=1h+(0-1h) если запускать в AFDPRO и CodeView - цикл будет один. так кто неверно работает с регистром CX -...
Вопрос № 106215: Здравствуйте уважаемые эксперты! Недавно начала изучать ассемблер. Заинтересовал следующий вопрос: Зачем в ассемблере по команде pusha в числе занесенных в стек регистров заносится регистр sp (регистр указателя стека) причем используется значени...
Вопрос № 106271: Здравствуйте уважаемые эксперты! я уже задавал вопрос по поводу вызова резидента по сочетанию клавиш №106176. Так вот резидент вызывается, но не с первого раза. приходится несколько раз нажимать CTRL+Y. Подскажите пожалуйста в чем ошибка?(программа в...

Вопрос № 106.197
Здравствуйте подскажите мне как в ассемблерной программе вывести на экран сообщение или содержание переменной
Отправлен: 20.10.2007, 21:36
Вопрос задал: Мишаков Максим (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Овчинников Алексей
Здравствуйте, Мишаков Максим!
Приложение под Fasm 1.67.14

Приложение:

---------
Любая задача имеет бесконечное множество решений

Ответ отправил: Овчинников Алексей (статус: 2-ой класс)
Ответ отправлен: 20.10.2007, 23:06


Вопрос № 106.208
вот программка
:0102 MOV CX,0000
:0105 ADD AX,0001
:0108 LOOP 0105
если запустить ее в debuger число циклов будет 10000h=1h+(0-1h)
если запускать в AFDPRO и CodeView - цикл будет один.
так кто неверно работает с регистром CX - debugger или Afdpro и
codeview?
Отправлен: 20.10.2007, 22:38
Вопрос задал: Соболев Юрий Вячеславович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Овчинников Алексей
Здравствуйте, Соболев Юрий Вячеславович!
debugger работает правильно.
команда loop, сначала вычитает из регистра cx
единицу, потом сравнивает его с нулём.
---------
Любая задача имеет бесконечное множество решений
Ответ отправил: Овчинников Алексей (статус: 2-ой класс)
Ответ отправлен: 20.10.2007, 23:13


Вопрос № 106.215
Здравствуйте уважаемые эксперты! Недавно начала изучать ассемблер. Заинтересовал следующий вопрос:
Зачем в ассемблере по команде pusha в числе занесенных в стек регистров заносится регистр sp (регистр указателя стека) причем используется значение которое находилось в этом регистре до начала работы команды ?...

Заранее спасибо!
Отправлен: 21.10.2007, 00:59
Вопрос задала: 8strange10 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

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

Регистр ESP или SP (указатель стека) является регистром общего назначения
Команда: PUSHA|PUSHAD
Назначение: Поместить в стек все регистры общего назначения.

Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 24.10.2007, 12:53
Оценка за ответ: 1
Комментарий оценки:
Ответ бесполезен. спрашивалось не что делает команда PUSHA, а зачем помещать в стек указатель стека и по возможности как его использовать..


Вопрос № 106.271
Здравствуйте уважаемые эксперты! я уже задавал вопрос по поводу вызова резидента по сочетанию клавиш №106176. Так вот резидент вызывается, но не с первого раза. приходится несколько раз нажимать CTRL+Y. Подскажите пожалуйста в чем ошибка?(программа в приложении) Резидент должен обязательно обрабатывать скэн-код до системного обработчика и после передавать ему управление. Или так не возможно решить эту проблему?

Приложение:

Отправлен: 21.10.2007, 16:15
Вопрос задал: Lammer (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

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

На момент первого запуска обработчика ячейки которые Вы используете не заполнены. Их заполняет системный обработчик вызываемый Вами в конце.
Вот и получается:
- первый раз при нажатии клавиш Ваш обработчик отработал с пустыми ячейками, вызвал системный обработчик который заполнил ячейки;
- второй раз при нажатии клавиш Ваш обработчик работает с данными полученными в первый раз.

Вам нужно после метки М2: добавить вызов системнного обработчика.
M2:pushf;сохраняем флаг
call dword ptr old_09;вызываем обработчик
. . .


Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 24.10.2007, 11:29
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ! Более четкого ответа и не могло быть.


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

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

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

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

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


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


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

В избранное