Пример выполнения задания

Пусть в памяти программ расположена таблица Х однобайтных чисел начиная с адреса 500h. Используя команду сдвига влево подсчитать количество bit = 1 в объявленных данных в каждой единице данных с i = 5 по j = 3 бит включительно (i>j). Результат подсчета для каждого элемента сохранять в массиве Y начиная с адреса 50h. В качестве массива данных взять строку ‘Фамилия_студента’ = ’Petrov’.

Организовать циклически бегущий bit = 1 в количестве bits = 2 порту Pn =3 вправо. Программа должна начинаться с адреса 100h.

org 0h

jmp start

org 100h; начало программы

start:

;обработка массива

mov dptr,#500h; адрес массива в памяти программ

mov r3,#0; индекс текущего элемента

mov r0,#50; адрес выходного массива

mov r2,#6; число элементов заданного массива

cycle:

mov a,r3; задаем индекс извлекаемого элемента

movc a,@a+dptr; извлекаем текущий элемент для обработки

rl a; подвигаем к краю первый

rl a; обрабатываемый бит

mov r4,#0; число найденных битов

mov r5,#3; число обрабатываемых битов

bits:

rlc a; выдвигаем в CY обрабатываемый бит

jnc next_bit; анализируем его, если бит не равен 1, то к следующему биту

inc r4; найден еще бит равный 1

next_bit:

djnz r5,bits; если обработаны не все биты, то повторить обработку

mov @r0,4; сохранить результат обработки элемента массива

inc r0; переход к следующему элементу выходного массива

inc r3; переход к следующему обрабатываемому элементу заданного массива

djnz r2,cycle

;формирование бега битов

mov a,#11000000b; начальное состояние порта

beg:

mov p3,a; показать состояние в порту

rr a; подготовить следующее состояние

jmp beg

jmp $

org 500h

mas: db 'Petrov'; заданный массив

end

Контрольный просчет задания

Входные данные для программы

Данные P e t
Данные (h) 50h 65h 74h
Номер бита                                                
Значение бита                                                
Данные задачи х х       х х х х х       х х х х х       х х х
Результат      
Данные r o v
Данные (h) 72h 6Fh 76h
Номер бита                                                
Значение бита                                                
Данные задачи х х       х х х х х       х х х х х       х х х
Результат      

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: