Автор Пинки Пинки задал вопрос в разделе Другие языки и технологии
объясните, пожалуйста, программу на ассемблер и получил лучший ответ
Ответ от Виктор Ковалёв[гуру]
Ассемблер какой-то незнакомый. Было бы хорошо, если бы было написано, к какому он процессору.
Можно только предположить суть программы по мнемоникам.
Поэтому только предположение.
Наверное, так.
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", на это довольно точно указывает.
В чем разница между глаголами to dismiss и to expel?
может remove? хе-хе
на мой взгяд, expell и suspend вы правильно трактуете, dismiss -
подробнее...
Перевести с латинского. Non scholae, sed vitae discimus
К сожалению, non vitae, sed scholae
подробнее...
Как установить Django на Windows 7?
Возьми pycharm установи, через него потом django
подробнее...
Какой профиль лучше Deceuninck или Rehau?
Считаю что Deceuninck все же превосходит Rehau по многим параметрам. Например у них даже В-шки
подробнее...
Кто нибудь знает такого DjSonic?:)
DjSonic
Женя
7 октября 1981
Основной стиль: House
Любимые стили: Acid House,
подробнее...
помогите с сочинением на испанском(me dia de descanco)
Me llamo Maria, estudio en la Universidad_ todos los dias son muy aburridos. Pero a veces, cuando
подробнее...
L'artisan Parfumeur Dzongkha и Passage D'enfer Ваши личные отзывы+++
Дорога в ад)) нет нет и нет...
Ну для меня это сказка - Проклятие царя Берендея.
подробнее...
в какой стране изобрели DiskOnKey?
Флеш-память была изобретена Фудзи Масуока (Fujio Masuoka), когда он работал в Toshiba в 1984 году.
подробнее...
Стоит ли взять GTX670-DCMOC-2GD5, если учесть, что стоит она ощутимо дешевле самой дешевой GTX760?
У меня такой же корпус. У самого 760 от MSI и я очень доволен. Советую взять. Батла 4 на
подробнее...
Почему по PHP материалов много, а по Django - нет?
php - мёртвый язык, а тот нет
Михаил
Профи
(637)
подробнее...
Подскажите название песни из фильма "джанго освобождённый" вообще какой то нигерский рэп, когда его убивать пришли?
Треклист фильма:
01 -James Russo -Winged
02 -Luis Bacalov and Rocky Roberts -Django
подробнее...
Любители дальнего радиоприема еще живы?
DX-синг ещё как популярен!
подробнее...