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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2019, 11: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               ;если не совпадают, то возврат
                                ;к записи следующей ячейки
У меня получается перевести в двоично-десятичный код, но он почему-то пропускает несколько значений(объедены в черный круги). Как это исправить?
Изображения
Тип файла: png Безымянный.png (16.4 Кб, 67 просмотров)
STboov вне форума Ответить с цитированием
Старый 28.10.2019, 22:46   #2
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

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

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

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

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


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Assembler] Перевод в двоично-десятичный код STboov Помощь студентам 4 13.10.2019 14: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 - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 06.06.2011 21:26