Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Инженерный раздел > Микроконтроллеры, робототехника, схемотехника, 3D принтеры
Регистрация

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 26.10.2019, 12:05   #1
STboov
 
Регистрация: 12.10.2019
Сообщений: 3
По умолчанию Двоично-десятичная система

Здравствуйте, у меня возникла проблема с задачей: "Заполнить РОН банка №0 двоично-десятичными числами".
Код:
     #include p16f873a.inc
     __CONFIG _HS_OSC & _WDT_OFF;
     ORG      H'005'            ;вектор сброса 
CNT  EQU      H'A0'             ;определение регистра счётчика
                                ;с адресом А0(банк 1)

;запись возрастающих чисел в ОЗУ
     BCF      STATUS,RP1        ;выбираем банк регистров 1
     BSF      STATUS,RP0        ;
     MOVLW    H'20'             ;загрузка в рабочий регистр адреса            
                                ;первого POH в банке 0
     MOVWF    FSR               ;записываем начальный адрес
                                ;в регистр косв.адресации
     CLRF     CNT               ;обнуляем регистр счетчика
M10: MOVF     CNT,W             ;загружаем значение счетчика в рабочий регистр
     MOVWF    INDF              ;сохраняем очередной отсчет в косвенно адресуемый POH 
     INCF     FSR,F             ;увеличение адреса POH
                                ;в регистре косвенной адресации
     MOVF     CNT,W             ;загружаем значение счетчика в рабочий регистр
     MOVWF    INDF              ;сохраняем очередной отсчет в косвенно адресуемый POH
     INCF     CNT,F             ;увеличение счетчика на 1
     INCF     CNT,F             ;увеличение счетчика на 1
     MOVF     CNT,W             ;загружаем значение счетчика в рабочий регистр
     MOVWF    INDF              ;сохраняем очередной отсчет в косвенно адресуемый POH
     INCF     FSR,F             ;увеличение адреса POH на 1
     MOVF     CNT,W             ;загружаем значение счетчика в рабочий регистр
     MOVWF    INDF              ;сохраняем очередной отсчет в косвенно адресуемый POH
     DECF     CNT,F             ;уменьшение счетчика на 1
     
    
     MOVF     CNT,W             ;загружаем значение счетчика в рабочий регистр
     MOVWF    INDF              ;сохраняем очередной отсчет в косвенно адресуемый POH
     ANDLW 	  h'0F'				; побитное И с 0A
     XORLW 	  h'0A'				; сравнение с 0A
     BTFSS 	  STATUS,Z			; если не совпадают, скачок через команду
     GOTO	  M2				; вызов подпрограммы М2	
     MOVF	   CNT,W				; загружаем счетчик в W
     ADDLW    H'6'
     MOVWF    CNT
M2:     
     MOVF     CNT,W             ;загружаем значение счетчика в рабочий регистр
     MOVF	  FSR,W
     XORLW    H'80'             ;сравниваем его с последним значение +1
     BTFSS    STATUS,Z          ;если не совпадают, то скачек через одну команду
     GOTO     M10               ;если не совпадают, то возврат
                                ;к записи следующей ячейки
У меня получается перевести в двоично-десятичный код, но он почему-то пропускает несколько значений(объедены в черный круги). Как это исправить?
Изображения
 
STboov вне форума   Ответить с цитированием
Старый 28.10.2019, 23:46   #2
Desc
Форумчанин
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 284
По умолчанию

При активной вкладке Hex будет отображение данных в шестнадцатеричной системе счисления. Отсюда и Ваши 0A, 0B, 1A, 1B и т. д.
Hex-редактор
Двоично-десятичный код не-много иное понятие.

Последний раз редактировалось Desc; 28.10.2019 в 23:56. Причина: Добавление ссылки
Desc вне форума   Ответить с цитированием
Старый 29.10.2019, 11:25   #3
digitalis
Участник клуба
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 1,862
По умолчанию

Думается, он не о том спрашивает. 1B, 3A не могут быть двоично-десятичными числами. И человеку интересно, почему его программа на PIC'ах генерирует неправильные числа. А PIC'оводов на этом форуме мало, лучше на какой-нить микроконтроллерный форум, к примеру, radiokot.ru (это не реклама )

Последний раз редактировалось digitalis; 30.10.2019 в 11:24.
digitalis вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Assembler] Перевод в двоично-десятичный код STboov Помощь студентам 4 13.10.2019 15:13
Найти все натуральные числа, не превосходящие N, десятичная запись которых есть строго возрастающая или строго убывающая (на С++) Лаура_ Помощь студентам 0 09.12.2013 21:13
Двоично-десятичный код Wanderwayz Помощь студентам 0 08.11.2012 23:26
Из двоичной в Двоично-десятичную ftopkynik Общие вопросы C/C++ 0 05.07.2012 15:11
Умножение неупакованных двоично десятичных чисел ARtor Assembler - Ассемблер 0 06.06.2011 21:26


11:18.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.