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

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


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

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

Выпуск № 636
от 22.12.2006, 01:35

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


Вопрос № 67271: Здравствуйте, эксперты!!! Условие задачи: В заданной строке заменить каждую группу стоящих рядом точек одной точкой. Подскажите, пожалуйста, где моя ошибка. Спасибо за внимание!...
Вопрос № 67287: Здравствуйте ! Почему не работают прерывания в masm ? Все нормально компилится, но при запуске прога прога виснет....

Вопрос № 67.271
Здравствуйте, эксперты!!! Условие задачи: В заданной строке заменить каждую группу стоящих рядом точек одной точкой. Подскажите, пожалуйста, где моя ошибка. Спасибо за внимание!

Приложение:

Отправлен: 16.12.2006, 17:59
Вопрос задал: Oopbl (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

(1) зачем вам противоречащие друг другу LEA DI,str2 и MOV DI,SI? Второе нужно убрать, если вы собираетесь выводить в качестве результата str2.
(2) посмотрите, что оказывается в конце введённой строки - 0D0Ah! А вы эти символы без изменений копируете в str2 и выводите с помощью INT 21h AH=09h! Ведь это прерывание требует $ в качестве завершающего символа, а его нет => нужно к получившейся строке дописать 24h.
Остальное вроде ничего (правда, TASM выдал 40 ошибок по оформлению :)
Удачи!
---------
Факультет ПМ-ПУ - лучший в СПбГУ!
Ответ отправил: Олег Владимирович (статус: 8-ой класс)
Ответ отправлен: 16.12.2006, 18:38
Оценка за ответ: 5
Комментарий оценки:
спасибо)))))


Вопрос № 67.287
Здравствуйте ! Почему не работают прерывания в masm ? Все нормально компилится, но при запуске прога прога виснет.
Отправлен: 16.12.2006, 20:26
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Вiктор
Здравствуйте, Whiteman!
Похоже что вы задаёте неверные номера прерываний. Например, вместо 21h вы написали 21, это получается другой номер прерывания, соответственно действия у него другие. (При этом всё должно компилироваться, т.к. самому ассемблеру и линковщику всё равно какие номера вы указываете, их задача - точно перевести то, что вы написали, в машинный код). Проверьте, не ошиблись ли вы в десятичной или шестнадцатеричной записи номеров прерываний, уточните ещё раз по справочнику что делают те прерывания, которые вы используете.
(А вообще, на будущее, - в таких случаях принято приводить исходный текст программы.)
---------
ни дня без строчки (но не получается)
Ответ отправил: Вiктор (статус: 10-ый класс)
Ответ отправлен: 16.12.2006, 22:42


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.38 от 20.12.2006
Яндекс Rambler's Top100

В избранное