22.05.2019, 19:03 [+3 UTC]
в нашей команде: 3 633 чел. | участники онлайн: 4 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.75 (18.05.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
16.05.2019, 21:07

Последний вопрос:
22.05.2019, 16:35
Всего: 149679

Последний ответ:
22.05.2019, 16:58
Всего: 258509

Последняя рассылка:
22.05.2019, 16:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
16.09.2009, 22:34 »
delmar
Desperate, спасибо за ваш отклик. Ваш вариант сборки будет стоить около 36.000 руб. По сравнению с вариантом vvl дороже почти на 13 тысяч. То есть дороже на 50 % Действительно ли ваш компьютер будет производителен настолько же по сравнению с его вариантом? И стоит ли переплачивать столько? С интересом послушал бы ваше мнение и других экспертов. [вопрос № 172215, ответ № 254270]
14.12.2010, 11:42 »
Detsle
Спасибо, за решение и разъяснение задачи. [вопрос № 181316, ответ № 264751]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 617
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 279
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 123

Перейти к консультации №:
 

Консультация онлайн # 142039
Раздел: • Assembler
Автор вопроса: Mishgan
Отправлена: 23.08.2008, 11:47
Поступило ответов: 2

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

Приложение:

Последнее редактирование 23.08.2008, 16:54 Зенченко Константин Николаевич (Старший модератор)

Состояние: Консультация закрыта

Ответ # 227819 от Airyashov

Здравствуйте, Mishgan!

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

сравнив со своим кодом разберётесь


Консультировал: Airyashov
Дата отправки: 25.08.2008, 08:50

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Здравствуйте, 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.
Удачи!


Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 26.08.2008, 12:24

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 142039
Boriss

# 1

= общий = | 24.08.2008, 12:44

Во-первых, в начале работы по Win XP нужно инициализировать текстовый режим

mov ax, 3
int 10h

Во-вторых, "стандартный" выход из EXE далеко не всегда работает в COM - не надо так
В-третьих, плохо понял, что нужно. Поясните. Вам не нравится Ваш вывод?

неизвестный

# 2

= общий = | 25.08.2008, 23:05

Boriss, я хотел, чтобы был вывод чисел таких же, что и при инициализации
На счет выхода из EXE: учту
Текстовый режим имеется в виду в командной строке (мои проги под ДОС) или для программирования 32-х разрядных прог?
Mishgan

Boriss

# 3

= общий = | 26.08.2008, 21:01

Под XP без инициализации текстового режима вывод не виден. СОМ - это ВСЕГДА DOS, "обычный" EXE (точнее, MZ-файл, от того, что в начале стоят эти две буквы, в отличие от PE, NE-файлов) - это тоже DOS

Далее, BP лучше не использовать так. Это специальный регистр для работы со стеком в подпрограммах. Потом поймете
А я не понял (нет времени анализировать): Ваша проблема не исчезла после ответов?

Зенченко Константин Николаевич
Старший модератор

ID: 31795

# 4

= общий = | 26.08.2008, 21:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Boriss:

© Цитата:
в отличие от PE, NE-файлов
, правда? эти фалы тоже начинаются с MZ-заголовка вернее заглушки.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

неизвестный

# 5

= общий = | 27.08.2008, 22:21

Boriss, проблемы больше нет
После того, как вставил иниц-ю тест. режима после метки main, в командной строке очистился предыд. ввод и прога выдала результат. В этом и есть суть инициализации режима?
Почему прогу под ДОС (например, эту, COM или EXE вер.) на асме нельзя запустить, а проги на Си или Pascal'e под ДОС можно прямо по щелчку мышкой?

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.17122 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.75 от 18.05.2019
Версия JS: 1.33 | Версия CSS: 3.35