Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2015, 14:49   #1
Denver23
Новичок
Джуниор
 
Регистрация: 19.06.2015
Сообщений: 2
Печаль Две программы по операции с числами.

Здравствуйте.
Помогите пожалуйста написать две программы на ассемблере под контроллер pic16f628. Программы писал в MathLab-е
1 задача:
Задан массив А из десяти одонбайтных чисел. Найти количество всех нечетных элементов массива.

Сразу написал такой код:
Код:
list p=16f628
#include <p16f628.inc>

1N EQU 20; обозначил адреса с числами для удобства
2N EQU 21
3N EQU 22
4N EQU 23
5N EQU 24
6N EQU 25
7N EQU 26
8N EQU 27
9N EQU 28
10N EQU 29
RESULT EQU 30; здесь по задумке должно быть конечное число нечетных чисел
clrf RESULT

movf 1N,w
bfsc w,8; проверяю 8-й бит чтобы узнать четное число или нет
goto result_save

movf 2N,w
bfsc w,8;
goto result_save

movf 3N,w
bfsc w,8;
goto result_save

movf 4N,w
bfsc w,8;
goto result_save

movf 5N,w
bfsc w,8;
goto result_save

movf 6N,w
bfsc w,8;
goto result_save

movf 7N,w
bfsc w,8;
goto result_save

movf 8N,w
bfsc w,8;
goto result_save

movf 9N,w
bfsc w,8;
goto result_save

movf 10N,w
bfsc w,8;
goto result_save

result_save
movlw 1,w
addwf RESULT,w
mavwf RESULT
END
Вроде правильно, но нужно сделать с помощью цикла, а я не совсем понимаю как реализовать это, а точнее как сделать чтобы после каждой проверки программа проверяла следующий адрес.

2 задача:
Задан массив А из десяти однобайтных чисел. Найти х=-|Сумма А|.
Здесь изначально застрял ибо сумму нужно тоже вроде как циклом найти.

Помогите пожалуйста. Заранее спасибо.

Последний раз редактировалось Аватар; 20.06.2015 в 07:53.
Denver23 вне форума Ответить с цитированием
Старый 20.06.2015, 03:27   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

..если последний бит в еденицу - число нечётное
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 20.06.2015, 09:57   #3
Denver23
Новичок
Джуниор
 
Регистрация: 19.06.2015
Сообщений: 2
По умолчанию

Так мне же и нужно найти количество нечетных чисел, поэтому и использовал команду bfsc. Но кажется я уже разобрался, нужно использовать FSR, так что спасибо за помощь
Denver23 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операции с двоичными числами gromdel Помощь студентам 3 20.01.2015 20:59
Арифметические операции с числами JeFix Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 12.10.2012 11:21
Операции с большими числами mrChester Общие вопросы C/C++ 4 08.12.2010 15:22
Borland C 3.1. Операции с 32-х разрядными числами ONiX Помощь студентам 8 23.06.2009 13:49