Вопрос № 36601: Здравствуйте!
Хотелось бы в простенькой программке вывести несколько слов на экран, причём следующее слово должно выводиться лишь после нажатия на клавишу, но как ни старался - они выходят подряд в одной строке и причём без пробела. Хотелось бы ...
Вопрос № 36.601
Здравствуйте!
Хотелось бы в простенькой программке вывести несколько слов на экран, причём следующее слово должно выводиться лишь после нажатия на клавишу, но как ни старался - они выходят подряд в одной строке и причём без пробела. Хотелось бы , чтобы каждое начиналось с новой строки. В unix и Windows для перевода каретки на другую строку используется комбинация CR LF. Но вот применимо ли это в ассемблере и более того как перевести сообщение на следующую строку для вывода на экран в программе - не знаю. И наоборот, как
оставить в одной строке, но что бы между словами был пробел.
И второй вопрос - компилятор Masm хорошо справляется с определением ошибок в коде, выводя номера их строк. Тогда для каких целей служит отладчик? И если он позволяет заглянуть внутрь com-файла, то тогда зачем нужен дизассемблер?
Спасибо.
Отправлен: 02.03.2006, 22:03
Вопрос задал: Paltus (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Пан Павел Константинович
Здравствуйте, Paltus!
Ответ на второй вопрос:
Понимате masm показывает так назыв. синтаксические ошибки, а вот логические нет. Роль дизассемблер, упростить, поиск логических ошибок. Вы спросите как? я отвечу, дизассемблер, предстовляет из себя визульную систему, которая отображает состояние внутренних ресурсов программы(регистры, память, стек...) на момент её работы. И это позволяет вам не наблюдать за программой в естественной среде её обитания, да конечно можно использовать пресловутый листок с карандашом и записывать результат выполнения каждого шага,
но надо ли вам это, при этом кто ручается что при выполнении прерываний последнее возвращает именно тот результат который вы предпологали получить? Спецификация? она то же госпажа не постоянство, а дизассемблер поможет вам подогнать ваш код к Спецификации.
Программа которую вы хотели ниже:
С, Уважением MnEm0n!C
Отвечает: PRiSon
Здравствуйте, Paltus!
Дополнение на вопрос: И наоборот, как оставить в одной строке, но что бы между словами был пробел???
Просто между строк ставим код пробела(32) и всё.
;--------------------------------------
str1 db 'Vasa',32,'Katia$'
; или такой вариант как отдельные строки(перед строками ставим код пробела)
str1 db 32,'Vasa$'
str2 db 32,'Feda$'
str3 db 32,'Ola$'
;--------------------------------------
Удачи!
--------- Стремление - значит получится.
Ответ отправил: PRiSon (статус: 3-ий класс)
Отправлен: 03.03.2006, 07:59
Отвечает: FreeManC
Здравствуйте, Paltus!
Для перевода на другую строку надо использовать CRLF=0d0ah=13,10
Масм показывает синтаксические ошибки в то время как отладчик позволяет выловить ошибки, допущенные в алгоритме, такие как невыровненный стэк, или смена значения регистра функцией. Дизассемблер - тоже очень удобная вещь. Потом ты сам всё поёмешь
Ответ отправил: FreeManC (статус: 2-ой класс)
Отправлен: 07.03.2006, 10:01