Хостинг портала RFpro.ru: Московский хостер Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64 РАССЫЛКИ ПОРТАЛА RFPRO.RU Лучшие эксперты данной рассылки Номер выпуска: | 1378 | Дата выхода: | 31.10.2010, 12:30 | Администратор рассылки: | Лысков Игорь Витальевич (Старший модератор) | Подписчиков / экспертов: | 226 / 66 | Вопросов / ответов: | 1 / 1 | Вопрос № 180452: Добрый день уважаемые эксперты! подскажите что нужно изменить в программе что бы: Перед выводом массива В на экран вывести текстовую строку: ”Это второй массив В”, т.е. на экране должно быть: Это второй массив В 1 2 3 4 5 Элементы масс... Вопрос № 180452: Добрый день уважаемые эксперты! подскажите что нужно изменить в программе что бы: Перед выводом массива В на экран вывести текстовую строку: ”Это второй массив В”, т.е. на экране должно быть: Это второй массив В 1 2 3 4 5 Элементы массива вывести через пробелы (или запятую).
вот сам код программы:
sseg segment db 128 dup(?) sseg ends dseg segment A db 1,2,3,4,5 B db 5 dup(?) dseg ends cseg segment assume ss:sseg, cs:cseg, ds:dseg
start: mov ax,dseg mov ds,ax mov si,0 mov cx,5 M1: mov al, A[si] mov B[si],al inc si loop M1 mov cx,5 mov si,0 M2: mov ah,2h mov dl,B[si] int 21h inc si loop M2 mov ah,4ch int 21h cseg ends end start
заранее спасибо! Отправлен: 26.10.2010, 13:28 Вопрос задал: Андреев Дмитрий Фёдорович (Посетитель) Всего ответов: 1 Страница вопроса » Отвечает Лысков Игорь Витальевич (Старший модератор) : Здравствуйте, Андреев Дмитрий Фёдорович! В следующей программе ответы на все Ваши вопросы. Обратите внимание, что:
1) строка mess задана в кириллице, поэтому, чтобы она корректно отобразилась, необходимо, чтобы текст программы был в ASCII (кодировке ДОС-а), который я прикрепил к ответу.
2) предполагаем, что наши данные - числа 0-9. Поэтому, для их вывода мы просто добавляем код символа '0' Если числа будут другие или нужен будет другой вывод (например, в HEX), то придется вывод переделать
Удачи в освоении ассемблера!
Код: sseg segment dw 128 dup(?) ;стек лучше задавать слов ами, а не байтами sseg ends
dseg segment mess db 'Это второй массив В$' ;текстовая строка, заканчивается '$' для функции 9 A db 1,2,3,4,5 B db 5 dup(?) dseg ends
cseg segment assume ss:sseg, cs:cseg, ds:dseg
start: mov ax,dseg mov ds,ax mov si,0 mov cx,5 M1: mov al, A[si] mov B[si],al inc si loop M1
lea dx, mess ;выводим строку mov ah, 9 int 21h
mov cx,5 mov si,0 mov ah,2h ;вынесем за цикл, меняться не будет M2: mov dl, ' ' int 21h ;выведем разделяющий пробел mov dl,B[si] ;код 0-9 or dl, 30h ;превратим число 0-9 в символ '0'-'9' int 21h ;выведем inc si loop M2
mov ah,4ch int 21h cseg ends end start
Прикрепленный файл: загрузить »
----- Люби своего ближнего, как самого себя Ответ отправил: Лысков Игорь Витальевич (Старший модератор) Ответ отправлен: 26.10.2010, 14:05 Номер ответа: 263665 Украина, Кировоград Тел.: +380957525051 ICQ # 234137952 Mail.ru-агент: igorlyskov@mail.ru
Оценка ответа: 5 Комментарий к оценке: большое спасибо за помощь!!! Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"? | Отправить SMS #thank 263665 на номер 1151 (Россия) | Еще номера » | Оценить выпуск » Нам очень важно Ваше мнение об этом выпуске рассылки! Скажите "спасибо" эксперту, который помог Вам! Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА на короткий номер 1151 (Россия) Номер ответа и конкретный текст СМС указан внизу каждого ответа. Полный список номеров » * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов) ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются. *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании. |
Комментариев нет:
Отправить комментарий