djnz



Автор Пинки Пинки задал вопрос в разделе Другие языки и технологии

объясните, пожалуйста, программу на ассемблер и получил лучший ответ

Ответ от Виктор Ковалёв[гуру]
Ассемблер какой-то незнакомый. Было бы хорошо, если бы было написано, к какому он процессору.
Можно только предположить суть программы по мнемоникам.
Поэтому только предположение.
Наверное, так.
Ex_2: ; Метка начала программы.
mov R0,#Arr; В регистр R0 записывается адрес массива Arr.
mov k,#size; В регистр k записывается длина массива Arr.
mov a,#0 ; Sum = 0. Обнуляется младший байт суммы.
mov R1,#0; Обнуляется старший байт суммы.
L2: ; Начала цикла сложения.
add a,@R0 ; Сумма
; К содержимому a прибавляется значение очередного элемента массива Arr.
; Адрес этого элемента записан в R0.
jnc m2; Обработка переполнения при сложении.
; Если переполнения не было, то переход на m2 на продолжение программы.
; Действие при переполнении.
inc R1; Увеличение R1 на единицу.
; При переполнении "a" к R1 прибавляется 1, и в R1 получается старший байт суммы.
m2: ; Продолжения после обработки переполнения. .
inc R0 ; Установка указателя в R0 на следующий элемент массива.
djnz k,L2; Проверка продолжения цикла.
; Из "k" вычитается 1 и проверяется новое значение "k".
; Если "k" не равно 0, то переход на L2 и новое выполнение цикла сложения.
; Если "k" равно 0, то цикл сложения закончен и продолжение программы.
mov Sum,a; Младший байт суммы записывается в ячейку с адресом Sum.
mov Sum+1,R1; Старший байт суммы записывается в ячейку с адресом Sum+1.
; По адресу Sum получается двухбайтовое значение суммы.
jmp $ ; Останов выполнения. Бесконечный цикл с переходом на саму команду jmp.
Начальный адрес массива Arr - 30H. На это указывает начальное значение R0.
Число элементов массива 10, это равно "k".
Перед первым проходом цикла "a" и R1 равны нулю.
После каждого прохода цикла в "a" и R1 сумма сложенный значений массива Arr.
В "a" - младший байт, в R1 - старший.
Про ассемблер.
Похоже, что это ассемблер не компьютерного процессора, а микроконтроллера. Отдельный аккумулятор "a", остальные регистры R0 и R1, специальный регистр "k" для счётчика. Всё вместе, особенно "k", на это довольно точно указывает.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: объясните, пожалуйста, программу на ассемблер
спросили в DJing
В чем разница между глаголами to dismiss и to expel?
может remove? хе-хе

на мой взгяд, expell и suspend вы правильно трактуете, dismiss -
подробнее...
спросили в DJing No pasaran
Как установить Django на Windows 7?
Возьми pycharm установи, через него потом django
подробнее...
спросили в DJing
Какой профиль лучше Deceuninck или Rehau?
Считаю что Deceuninck все же превосходит Rehau по многим параметрам. Например у них даже В-шки
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в 7 октября Deep Dish
Кто нибудь знает такого DjSonic?:)
DjSonic
Женя
7 октября 1981
Основной стиль: House
Любимые стили: Acid House,
подробнее...
спросили в Dir En Grey
помогите с сочинением на испанском(me dia de descanco)
Me llamo Maria, estudio en la Universidad_ todos los dias son muy aburridos. Pero a veces, cuando
подробнее...
спросили в DJing Embraer
L'artisan Parfumeur Dzongkha и Passage D'enfer Ваши личные отзывы+++
Дорога в ад)) нет нет и нет...

Ну для меня это сказка - Проклятие царя Берендея.
подробнее...

в какой стране изобрели DiskOnKey?
Флеш-память была изобретена Фудзи Масуока (Fujio Masuoka), когда он работал в Toshiba в 1984 году.
подробнее...
спросили в Железо DJing
Стоит ли взять GTX670-DCMOC-2GD5, если учесть, что стоит она ощутимо дешевле самой дешевой GTX760?
У меня такой же корпус. У самого 760 от MSI и я очень доволен. Советую взять. Батла 4 на
подробнее...
спросили в DJing
Почему по PHP материалов много, а по Django - нет?
php - мёртвый язык, а тот нет
Михаил
Профи
(637)подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*