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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 1048
от 28.08.2008, 12:05

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

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


Вопрос № 142039: Уважаемые специалисты, как вывести элементы массива поочередно в строке? После вывода одного элемента очищаю строку для вывода следующего. В результате после ввода (ф. vvod закомментировал) или инициализации massiv dw 123,56,1,0,89,104 получаю 123...

Вопрос № 142.039
Уважаемые специалисты, как вывести элементы массива поочередно в строке? После вывода одного элемента очищаю строку для вывода следующего. В результате после ввода (ф. vvod закомментировал) или инициализации massiv dw 123,56,1,0,89,104 получаю
123
563
1 3
0 3
893
104
Код com-проги в приложении:
Если можно, то прокомментируйте Ваш вариант-нужно разобраться, а не только сдать
Заранее спасибо

Приложение:

Отправлен: 23.08.2008, 11:47
Вопрос задал: Mishgan (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Airyashov
Здравствуйте, Mishgan!

mov schetchikstroki,7
mov di,offset string
ochistkastroki:
mov byte ptr[di],20h
inc di
dec schetchikstroki
jnz ochistkastroki

сравнив со своим кодом разберётесь
Ответ отправил: Airyashov (статус: 7-ой класс)
Ответ отправлен: 25.08.2008, 08:50
Оценка за ответ: 5
Комментарий оценки:
спасибо, Airyashov, и всем в rusfaq.ru за то, что работают в инете

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Mishgan!

Данный цикл в Вашей программе лишний:
Код:
ochistkastroki:
. . .
jnz ochistkastroki

т.к. получается Вы два раза заполняете свою строку, первый раз когда записываете цифры числа, второй когда записываете пробел. Зачем? Вам достаточно только добавить команду:
Код:
loop .reverse
mov byte ptr[bp],'$';записываем маркер конца строки
ret

Тем самым Вы записываете после своего сформированого числа, маркер конца строки для функции 09h прерывания 21h.
Ещё как совет, можно иначе записать саму строку вывода:
Код:
ent db 13,10
string db 7 dup(20h),'$'

Формируете число как в программе с метки string , а вот выводите начиная с метки ent . Таким образом можно выбросить ещё код п/п perevodkursora.
Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессор)
Украина, Киев
Тел.: +380979536619
Адрес: Украина г.Киев
----
Ответ отправлен: 26.08.2008, 12:24
Оценка за ответ: 5
Комментарий оценки:
благодарю за понятный комментарий


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

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

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

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

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

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


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


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

∙ Версия системы: 5.1 beta(win) от 11.08.2008

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

В избранное