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

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


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

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

Лучшие эксперты данной рассылки

Boriss
Статус: Академик
Рейтинг: 2514
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2007
∙ повысить рейтинг »
vladisslav
Статус: 6-й класс
Рейтинг: 1228
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Assembler (Ассемблер)

Номер выпуска: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 (Россия) | Еще номера »
  • Отправить WebMoney:


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

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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.22 от 18.10.2010

    В избранное