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

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


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

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

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 2466
∙ повысить рейтинг »
_Ayl_
Статус: Профессионал
Рейтинг: 1922
∙ повысить рейтинг »
vladisslav
Статус: 6-й класс
Рейтинг: 1227
∙ повысить рейтинг »

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

Номер выпуска:1366
Дата выхода:25.06.2010, 15:30
Администратор рассылки:Лысков Игорь Витальевич, Старший модератор
Подписчиков / экспертов:234 / 63
Вопросов / ответов:1 / 1
IRC-канал по теме:#assembler

Вопрос № 179157: Здравствуйте уважаемые эксперты! Помогите пожалуйста решить задачу на ассемблере: Дана последовательность байтов (положительные числа). Просуммировать их в цикле. Вывести 16-ричное представление суммы. Для организации вывода применить операции...



Вопрос № 179157:

Здравствуйте уважаемые эксперты! Помогите пожалуйста решить задачу на ассемблере:

Дана последовательность байтов (положительные числа). Просуммировать их в цикле. Вывести 16-ричное представление суммы. Для организации вывода применить операции сдвига
битов. Примечание: сумма может не помещаться в один байт.

В ассемблере я не очень, так что прошу с подробными комментариями. Программа Tasm 5.0. Заранее спасибо!

Отправлен: 20.06.2010, 15:00
Вопрос задал: Петров Юрий Иванович, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Airyashov, Студент :
Здравствуйте, Петров Юрий Иванович.
например так
Код:
; сегмента стека
s_s segment stack "stack"
dw 100h dup(?)
s_s ends

; сегмента данных
d_s segment
n=10 ; количество элементов массива
A db 1,2,3,4,5,6,7,8,9,10 ; определить массив
HexStr db '0123456789ABCDEF' ; для перевода в 16 СС
d_s ends

; сегмента кода
c_s segment
assume ss:s_s,ds:d_s,cs:c_s;

main PROC ; точка входа
.286 ; разрешить команды 80286
mov ax,d_s ; копируем адрес
mov ds,ax ; сегмента данных

mov cx,n ; определим количество итераций
xor si,si ; индекс первого элемента
xor dx,dx ; dx=0 тут получим сумму массива
next:
add dl,A[si] ; dl=элемент массив А
adc dh,0 ; учтем возможный перенос
inc si ; перейти к следующему элементу
loop next ; продолжить цикл

; выведем значение на экран
rol dx,4 ; переместим старшие 4 разряда в младшие
mov cx,4 ; количество итераций цикла, так как в 16 разрядном регистре 4 тетрады
next_ch:
mov bx,dx ; bx=dx
and bx,0fh ; выделим слажшую тетраду
mov al,HexStr[bx] ; получить из строки соответствующий цифре символ для вывода
int 29h ; вывести al на экран
rol dx,4 ; перейти к следующей тетраде
loop next_ch ; продолжить цикл

mov ax,0c07h ; ожидаем нажатие клавиши
int 21h ; вызов DOS

mov ax,4C00h ; выход из программы
int 21h ; вызов DOS
main ENDP
c_s ends
END main ; определить точку входа в программу

Ответ отправил: Airyashov, Студент
Ответ отправлен: 20.06.2010, 16:34
Номер ответа: 262192

Оценка ответа: 5
Комментарий к оценке:
Спасибо!

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 262192 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

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

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

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

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

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

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

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


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

    В избранное