![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 07.11.2013
Сообщений: 5
|
![]()
Доброго времени суток, уважаемые форумчане.
Есть простая задача - вывести на экран фразу, используя алфавит. Как человек не очень оригинальный, решил вывести "Happy New Year". Вот только выводится совсем не то, что надо. Подскажите, пожалуйста, в чём мой косяк, а то в отладчике вроде бы проблему и вижу, а вот как исправить - ума не приложу. P.S. Объяснять, как пытался это реализовать, наверное, не стоит - и так всё видно. Используемый ассемблер - TASM. Код:
Последний раз редактировалось хирург-любитель; 07.11.2013 в 18:43. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Емнип, 09h выводит строку с адреса DS:DX и до символа "$"
т.е. оно будет выводить не одну букву, как вы того хотели, а всю строку с указанной позиции и до завершающего "$" Вам следует использовать функцию 02H, она в DL принимает код символа (одного символа) и выводит его на экран
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#3 |
Регистрация: 07.11.2013
Сообщений: 5
|
![]()
Никак нет. Выводит по одной букве, так как используется промежуточный массив ch1. Проблема пока упирается в эту строку
Код:
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 16.01.2011
Сообщений: 325
|
![]() Код:
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Тогда si нужно на 2 увеличивать, а не на единицу. В str_4 же двойные слова, т.е. по 2 байта элементы
![]() Цитата:
p.s. tasm'a нет на компе, компилирую в уме => могу ошибаться p.p.s. и все-же 02H здесь подошла бы больше ![]()
Благодарить в репутацию. Проклинать — туда же
![]() Последний раз редактировалось Luuzuk; 07.11.2013 в 17:44. |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 16.01.2011
Сообщений: 325
|
![]()
Luuzuk, пробел к алфавиту отношения не имеет. И в таблице символов он стоит намного раньше букв.
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
vadimych: а вы код вообще читали, или решили с хода привнести "умную" мысль в топик? В str_4 хранятся смещения символов, которые находятся в str_3. А про таблицу символов (ascii) речь вообще никто ни вел.
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 16.01.2011
Сообщений: 325
|
![]()
Luuzuk, да не, не читал, сразу написал. Буду знать, благодаря Вам, что пробел входит в латинский алфавит 27 символом.
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Не стоит благодарности, просто в следующий раз постарайтесь быть внимательнее
-- 26м, с нуля же нумерация *pardon*
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 16.01.2011
Сообщений: 325
|
![]()
Конечно же. Последнее слово по-любому останется за Вами, знаток латинского алфавита. Я, если Вы не заметили, довёл код ТСа до рабочего состояния. Не читая.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка массива...Что та не выходит у меня.. | Pavel Lapin | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 13.11.2011 16:57 |
Не выходит из цикла | RIO | Общие вопросы по Java, Java SE, Kotlin | 3 | 23.05.2010 23:54 |
при запуске винды какой-то синий экран с какими-то словами выходит и всё. Что за беда? | SergeyPerm | Windows | 11 | 08.02.2009 18:30 |
компилировать не выходит | 3.14oner | Общие вопросы по Java, Java SE, Kotlin | 5 | 08.11.2008 18:36 |
Что то не выходит на Паскале | Bagsi | Помощь студентам | 4 | 14.11.2007 15:26 |