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

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


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

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

Чемпионы рейтинга экспертов в этой рассылке

Лысков Игорь Витальевич
Статус: Специалист
Рейтинг: 92
∙ повысить рейтинг >>
Зенченко Константин Николаевич
Статус: Профессор
Рейтинг: 70
∙ повысить рейтинг >>
Airyashov
Статус: Студент
Рейтинг: 25
∙ повысить рейтинг >>

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

Выпуск № 1131
от 12.12.2008, 04:35

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 153187: Здравствуйте. В 16 главе книге Калашникова приводится в пример программа !debug16.com которая создает такойже файл и перезаписывает себя же. Почему после запуска этой программы и второго запуска ее под отладчиком nop меняется на int3, ведь там был п...


Вопрос № 153225: Уважаемые эксперты, помогите с решением задачи, не получается занести элементы массива из одного сегмента памяти в другой...
Вопрос № 153268: Уважаемые эксперты, у меня возникла проблема по выводу результат на экран. Задача такова, что нужно введенные данные с клавиатуры общитать c=a+b и вывести результат на экран. Помогите пожалуйста....

Вопрос № 153.187
Здравствуйте. В 16 главе книге Калашникова приводится в пример программа !debug16.com которая создает такойже файл и перезаписывает себя же. Почему после запуска этой программы и второго запуска ее под отладчиком nop меняется на int3, ведь там был пустота? Поясните пожлуйста.

Приложение:

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

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Емельянов Дмитрий Алексеевич!
Все дело в том, что Вы сделали шаг (по F2) в отладчике...
И что при этом произошло?
А произошло следующее:
1) Отладчик поменял первый байт следующей команды за текущей на int3 (а это nop).
2) запускает на работу
3) останавливается на int3
4) меняет байт на тот, что был раньше.
Итак, у нас работает за один шаг процедура Create_file, которая пишет образ программы на диск.
При этом следующий байт за вызовом (nop) изменен на int3.
Естественно, именно в таком виде и будет записано на диск!
Вот если запустить программу под отладчиком по g, то программа запишется без изменений...
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 08.12.2008, 09:22

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 238055 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 153.225
    Уважаемые эксперты, помогите с решением задачи, не получается занести элементы массива из одного сегмента памяти в другой

    Приложение:

    Отправлен: 06.12.2008, 18:10
    Вопрос задал: Dagra (статус: Посетитель)
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 7)

    Отвечает: Шевченко Александр Владимирович
    Здравствуйте, Dagra!
    Что делает команда xor в данном случае? Может, она лишняя?
    Ответ отправил: Шевченко Александр Владимирович (статус: 3-й класс)
    Ответ отправлен: 06.12.2008, 18:54

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 237931 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: an42
    Здравствуйте, Dagra!
    Приложение чуть подправил (поставил точки .data; .stack; .code) и добавил строку
    mov es, ax чтоб DS и ES имели один сегментный адрес.
    Удачи

    Приложение:

    Ответ отправил: an42 (статус: Студент)
    Ответ отправлен: 07.12.2008, 12:30

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 237982 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 153.268
    Уважаемые эксперты, у меня возникла проблема по выводу результат на экран. Задача такова, что нужно введенные данные с клавиатуры общитать c=a+b и вывести результат на экран. Помогите пожалуйста.

    Приложение:

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

    Отвечает: Лысков Игорь Витальевич
    Здравствуйте, Николаенко Антон Юрьевич!
    Когда данные вводятся с клавиатуры, то они вводятся как строка (или как отдельные символы)
    Чтобы можно было было работать как с числами, сначала надо преобразовать строку в число.
    И обратно, перед выводом на экран, сначала надо преобразовать число в строку.
    Подправленная программа в приложении.
    Обратите внимание, что предполагается, что числа < 65536 (значение помещается в 16-битный регистр)
    И ожидается строка только из цифр (нет проверки на корректность символа)

    Приложение:

    ---------
    Удачи!

    Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
    Ответ отправлен: 08.12.2008, 10:03

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 238059 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

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

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

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

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

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


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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное