Splint
Зарегистрирован: 25.02.2008 Сообщения: 5
|
Добавлено: Вт Дек 15 2009 23:45 Заголовок сообщения: Ошибка в коде программы |
|
|
Ассемблер
Микропроцессор TMS320C6000
Задание: Подсчитать количество нулевых элементов массива
В чем может быть ошибка?
.ref _c_int00 ;точка входа
_c_int00:
.data ;секция данных
array1: .word 0,0,1 ;создаем массив 8 разрядных чисел
size .set 3 ;размер массива(>1)(препроцессорная константа)
.text ;секция кода
;Инициализация:
MVKL .S1 array1,A3 ;загружаем адрес массива1 в A3
MVKH .S1 array1,A3
MVK .S1 size,A2 ;загружаем колво элементов массива в A2
MVK .S1 0,A0 ;текущий элемент массива
MVK .S1 0,A4 ;колличетво нулевых элементов массива
LOOP:
SUB .L1 A2,1,A2 ;A2 := A2 - 1
LDB .D1 *A3[A2], A0 ;загружаем текущий элемент в A1
NOP 4 ;4х тактовая задержка загрузки
CMPGT .L1 A0, 0, A1 ;если А1>0, то А0:=1 иначе А0:=0
[!A1] ADD .L1 A4, 1, A4 ;если А0:=0, то А4:=А4+1
[A2] B .S1 LOOP ;переход если A2 <> 0
NOP 5
.end |
|