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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2016, 20:47   #1
Alissa93
Новичок
Джуниор
 
Аватар для Alissa93
 
Регистрация: 20.04.2016
Сообщений: 4
По умолчанию работа в Keil Vision

Доброго времени суток! Подскажите, пожалуйста, выдали задание: Подпрограмма преобразования 8-разрядного числа из BCD-кода в двоичный код. Число передается в регистре R4, результат – в регистре R3. Кто-нибудь может подсказать, как это реализовать в Keil Vision (для микропроцессора МК-51)? Столкнулась с этим впервые и очень хочется в этом разобраться! Спасибо заранее!
Alissa93 вне форума Ответить с цитированием
Старый 20.04.2016, 20:57   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Я когда-то работал в Keil. C ним идут примеры: "hello, world", светофор и т.д. В общем, нужно пробовать, выполнить в начале MOV, потом ADD, смотреть в отладчике, что происходит, смотреть документацию, которая идёт с Keil, документацию на МК-51 (он же 8051, 8052 (с большей оперативкой))

Купите или скачайте эту замечательную книжку: Микроконтроллеры серии 8051. Практический подход

В ней как раз МК-51 в среде Keil
8Observer8 вне форума Ответить с цитированием
Старый 20.04.2016, 21:14   #3
Alissa93
Новичок
Джуниор
 
Аватар для Alissa93
 
Регистрация: 20.04.2016
Сообщений: 4
По умолчанию

Нет, начальное понимание имеется: на днях разобралась как пересылать массив из ПЗУ в ОЗУ. Конкретно по этому заданию, я так понимаю, что мы помещаем в регистры двоичный код, а затем при помощи call bcd вызываем подпрограмму для преобразования BCD кода...? В общем, я запуталась >_<. Помогите, пожалуйста!
Alissa93 вне форума Ответить с цитированием
Старый 20.04.2016, 21:32   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

На каждую команду есть описание в документации: 8051 Instruction Set Manual или такая табличка

Можно много разных нагуглить. В общем, как видите бывает два вида Call: ACALL и LCALL

В общем, нужно открыть документацию, вчитываться и в пошаговом режиме в отладчике проверять, правильно ли вы понимаете, как работает та или иная команда ассемблера

Главное, не паникуйте. Решите вашу задачу на листочке. Вы можете на листочке расписать "алгоритм преобразования 8-разрядного числа из BCD-кода в двоичный код"? Сам алгоритм вы чётко и ясно преставляете на листочке и в голове?
8Observer8 вне форума Ответить с цитированием
Старый 20.04.2016, 21:42   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

этож команда DA A, в чём проблема-то? перегнать в аккумулятор из регистра и обратно?
100500 лет назад я писал такой отладчик на дельфи. вот кусок (еле откопал) :

Код:
procedure TI8051Processor.DA_A;                            // D4h      (1,1,1)
var
 Tetrada:Byte; // Тетрада
begin
 Tetrada:=Acc and $0F; // Выделяю младшую тетраду.
 if (Tetrada>9) or GetBitInByte(Psw,6)
  then Tetrada:=Tetrada+6;
 Acc:=Acc and (Tetrada or $F0);
 Tetrada:=Acc and $F0; // Выделяю старшую тетраду.
 if (Tetrada>9) or GetBitInByte(Psw,7)
  then Tetrada:=Tetrada+6;
 Acc:=Acc and (Tetrada or $0F);
 PC:=PC+1;
end;
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 20.04.2016 в 21:44.
min@y™ вне форума Ответить с цитированием
Старый 20.04.2016, 21:44   #6
Alissa93
Новичок
Джуниор
 
Аватар для Alissa93
 
Регистрация: 20.04.2016
Сообщений: 4
По умолчанию

Понимаете, я учусь на специальности, которая в принципе с этим связана довольно косвенно. И информатика у меня была только 1 семестр 1 курса в виде общих лекций. А сейчас просто поставлена перед фактом Я понимаю, что такое BCD-код, понимаю как перевести его в двоичный, но сам по себе алгоритм преобразования в среде Keil я не понимаю
Alissa93 вне форума Ответить с цитированием
Старый 20.04.2016, 21:53   #7
Alissa93
Новичок
Джуниор
 
Аватар для Alissa93
 
Регистрация: 20.04.2016
Сообщений: 4
По умолчанию

Спасибо, буду разбираться!
Alissa93 вне форума Ответить с цитированием
Старый 20.04.2016, 21:55   #8
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Alissa93, попробуйте написать и показать, как выделить из байта младшую тетраду на ассеблере. Или вы пишите на Си? Если на Си, то это тоже несложно
8Observer8 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(Keil uvision)Генерирование составного сигнала f_tony_f Фриланс 2 25.03.2014 08:38
Keil Vision 3 и ASM cbuilderx Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 08.01.2014 15:25
Keil, aduc842 Катюшка89 Помощь студентам 0 27.12.2012 19:05
Проги на Keil lolwhat Помощь студентам 6 07.06.2012 22:22
задачи на keil werturo Фриланс 0 22.05.2012 23:15