Вопрос № 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