Форум РадиоКот • Просмотр темы - реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Сообщения без ответов | Активные темы
Страница 1 из 1
[ Сообщений: 13 ]
Автор
Сообщение
mrvarkaus
Заголовок сообщения: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Чт мар 11, 2021 05:18:29
Зарегистрирован: Чт мар 11, 2021 05:07:30Сообщений: 9
Рейтинг сообщения: 0
Всем привет. Попытался сделать умножение f4h_f4l * f5 = f6h_f6m_f6l , но так и не понял как работать с переполнением
делал по 2 способу.
Спойлер title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4l equ 0x20 f4h equ 0x21 f5 equ 0x22 f6l equ 0x23 f6m equ 0x24 f6h equ 0x25 k equ 0x26 org 00h goto Start Start clrf f6h clrf f6l clrf f6m movlw 0x8 movwf k bcf STATUS,C m1 rrf f5,1 btfsc STATUS,C goto m2 goto m3 m2 movf f4l,0 addwf f6l,1 btfsc STATUS,C goto m4 goto m5 m5 incf f6m m4 movf f4h,0 addwf f6m,1 btfss STATUS,C goto m3 goto m6 m6 incf f6h m3 rlf f4l,1 rlf f4h,1 decf k,1 btfss STATUS,Z goto m1 nop endВ итоге у меня получается так
, что он находит f6m, f6l . f6h я как ток не пытался сделать, но не получается. Мб кто нибудь сможет помощь. pic16f877.
Вернуться наверх
Реклама
Zikon
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Чт мар 11, 2021 09:30:34
Открыл глаза
Зарегистрирован: Вт фев 28, 2017 08:13:31Сообщений: 75Откуда: Свердловская обл.
Рейтинг сообщения: 0
зачем столько GOTO
вот первое что увидел
Код:
title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4l equ 0x20 f4h equ 0x21 f5 equ 0x22 f6l equ 0x23 f6m equ 0x24 f6h equ 0x25 k equ 0x26 org 00h goto Start Start clrf f6h clrf f6l clrf f6m movlw 0x8 movwf k bcf STATUS,C m1 rrf f5,1 btfss STATUS,C ;btfsc STATUS,C goto m3 ;goto m2 ;goto m3 ;m2 movf f4l,0 addwf f6l,1 btfsc STATUS,C ;btfsc STATUS,C ;goto m4 ;goto m5 ;m5 incf f6m ;incf f6m ;m4 movf f4h,0 addwf f6m,1 btfsc STATUS,C ;btfss STATUS,C ;goto m3 ;goto m6 ;m6 incf f6h ;incf f6h m3 rlf f4l,1 rlf f4h,1 decfsz k,1 ;decf k,1 ;btfss STATUS,Z goto m1 nop end
Добавлено after 10 minutes 25 seconds: увидел ошибку
сдвигаешь f4l и f4h влево и теряем старшие разряды
надо добавить f4hh
или другой алгоритм со сдвигом f6
Добавлено after 6 minutes 5 seconds: Код:
title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4l equ 0x20 f4m equ 0x21 f4h equ 0x22 f5 equ 0x23 f6l equ 0x24 f6m equ 0x25 f6h equ 0x26 k equ 0x27 org 00h goto Start Start clrf f6l clrf f6m clrf f6h clrf f4h movlw 0x8 movwf k bcf STATUS,C m1 rrf f5 btfss STATUS,C goto m3 movf f4l, W addwf f6l btfsc STATUS,C incf f6m movf f4m, W addwf f6m btfsc STATUS,C incf f6h movf f4h, W addwf f6h m3 rlf f4l rlf f4m rlf f4h decfsz k goto m1 nop end
Добавлено after 1 hour 38 minutes 52 seconds: Когда двигаем f6 то f5 двигаем в другую сторону
Код:
title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4l equ 0x20 f4h equ 0x21 f5 equ 0x22 f6l equ 0x23 f6m equ 0x24 f6h equ 0x25 k equ 0x26 org 00h goto Start Start clrf f6l clrf f6m clrf f6h movlw 0x8 movwf k bcf STATUS,C m1 rlf f5 btfss STATUS,C goto m3 movf f4l, W addwf f6l btfsc STATUS,C incf f6m movf f4h, W addwf f6m btfsc STATUS,C incf f6h m3 rlf f6l rlf f6m rlf f6h decfsz k goto m1 nop end
Вернуться наверх
Реклама
NStorm
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Чт мар 11, 2021 09:49:10
Поставщик валерьянки для Кота
Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57Сообщений: 1978
Рейтинг сообщения: 0
Вернуться наверх
mrvarkaus
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Чт мар 11, 2021 16:09:01
Зарегистрирован: Чт мар 11, 2021 05:07:30Сообщений: 9
Рейтинг сообщения: 0
А что там делать? Изобретение велосипеда. Всё давно уже сделано, в т.ч. 16x8:
http://www.piclist.com/techref/microchi ... /index.htm Просто мне дали ТЗ в университете , там было 4 способа и 5 способ просто сложение само на себя. Я сделал сначала обычное умножение f4*f5, а когда нужно было взять побольше, то все потерялся. Спасибо за ответ попробую проверить
Добавлено after 1 hour 54 minutes 40 seconds: Заработало!
Поменял местами h , l
Спойлер title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4l equ 0x20 f4h equ 0x21 f5 equ 0x22 f6l equ 0x23 f6m equ 0x24 f6h equ 0x25 k equ 0x26 org 00h goto Start Start clrf f6l clrf f6m clrf f6h movlw 0x8 movwf k bcf STATUS,C m1 rrf f5 btfss STATUS,C goto m3 movf f4l, W addwf f6h btfsc STATUS,C incf f6m movf f4h, W addwf f6m btfsc STATUS,C incf f6l m3 rrf f6h rrf f6m rrf f6l decfsz k goto m1 nop end
Вернуться наверх
Реклама
Zikon
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Чт мар 11, 2021 18:00:12
Открыл глаза
Зарегистрирован: Вт фев 28, 2017 08:13:31Сообщений: 75Откуда: Свердловская обл.
Рейтинг сообщения: 1
В последнем коде со сдвигом f6 накосячил
вот другой вариант
Спойлер Код:
title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4l equ 0x20 f4h equ 0x21 f5 equ 0x22 f6l equ 0x23 f6m equ 0x24 f6h equ 0x25 k equ 0x26 org 00h goto Start Start clrf f6l clrf f6m clrf f6h movlw 0x8 movwf k bcf STATUS,C m1 rlf f6l rlf f6m rlf f6h rlf f5 btfss STATUS,C goto m3 movf f4l, W addwf f6l btfsc STATUS,C incf f6m movf f4h, W addwf f6m btfsc STATUS,C incf f6h m3 decfsz k goto m1 nop end
Вернуться наверх
Реклама
mrvarkaus
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Чт мар 18, 2021 23:22:48
Зарегистрирован: Чт мар 11, 2021 05:07:30Сообщений: 9
Рейтинг сообщения: 0
Zikon ,
А с делением как произвести восстановление ?
я там ниже скрин кинул, и там подрисовал пункт, где идет восстановление., пытался реализовать, но что-то не идет.
Код:
title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4 equ 0x20 f5 equ 0x21 f6 equ 0x22 f6ost equ 0x23 k equ 0x24 z equ 0x25 goto Start Start clrf f6 clrf f6ost movlw 0x08 movwf k movf f4,W movwf f6 m2 rlf f6,1 movf f6,W movwf f6ost movf f5,W subwf f6ost,1 btfsc STATUS,C goto m4 goto m3 m4 movwf z ; делитель там movf f6,W movlw 0x0 movwf f6 movf z,W movwf f5 comf f6ost addwf f6ost,1 bsf f6ost,1 bcf STATUS,C comf f6ost m3 rlf f6,1 decf k,1 btfss STATUS,Z goto m2 nop end
Вернуться наверх
Реклама
Zikon
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Пт мар 19, 2021 08:00:36
Открыл глаза
Зарегистрирован: Вт фев 28, 2017 08:13:31Сообщений: 75Откуда: Свердловская обл.
Рейтинг сообщения: 0
восстановление - это надо вернуть f6ost f6ost = f6ost + f5
Вернуться наверх
mrvarkaus
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Сб мар 20, 2021 17:31:08
Зарегистрирован: Чт мар 11, 2021 05:07:30Сообщений: 9
Рейтинг сообщения: 0
Zikon , Zikon , title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4 equ 0x20 f5 equ 0x21 f6 equ 0x22 f6ost equ 0x23 k equ 0x24 goto Start Start clrf f6 clrf f6ost movlw 0x08 movwf k movf f4,W movwf f6 m2 rlf f6,1 movf f6,W movwf f6ost movf f5,W subwf f6ost,1 btfsc STATUS,C goto m4 goto m3 m4 addwf f6ost,1 bsf STATUS,C bcf STATUS,C m3 rlf f6,1 decf k,1 btfss STATUS,Z goto m2 nop end Пытался , не получается
Вернуться наверх
Zikon
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Сб мар 20, 2021 18:19:26
Открыл глаза
Зарегистрирован: Вт фев 28, 2017 08:13:31Сообщений: 75Откуда: Свердловская обл.
Рейтинг сообщения: 0
вот что может быть
Код:
title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4 equ 0x20 f5 equ 0x21 f6 equ 0x22 f6ost equ 0x23 k equ 0x24 goto Start Start clrf f6 clrf f6ost movlw 0x08 movwf k movf f4,W movwf f6 m2 rlf f6,W rlf f6ost movf f5,W subwf f6ost,1 btfss STATUS,C goto m3 addwf f6ost,1 bcf STATUS,C m3 rlf f6,1 decfsz k goto m2 nop end
Вернуться наверх
Реклама
mrvarkaus
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Сб мар 20, 2021 18:56:02
Зарегистрирован: Чт мар 11, 2021 05:07:30Сообщений: 9
Рейтинг сообщения: 0
Zikon , не работает, в остатке выбивает 6 , в ответе 0Добавлено after 6 minutes 19 seconds: Zikon , заработало , btfss на sc поставил! путаюсь всегда в них)Добавлено after 15 minutes 7 seconds: Zikon , Спасибо большое!
Вернуться наверх
Zhuk72
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Сб мар 20, 2021 20:07:48
Сверлит текстолит когтями
Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31Сообщений: 1231Откуда: Баку
Рейтинг сообщения: 1
... заработало , btfss на sc поставил! путаюсь всегда в них
Все очень просто:
btfss = Bit Test File Skip if Set (проверить бит регистра, пропустить следующую, если он выставлен, т.е. 1).
btfsc = Bit Test File Skip if Clear (проверить бит регистра, пропустить следующую, если он очищен, т.е. 0).
_________________ Каждый имеет право на свое личное ошибочное мнение. У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Вернуться наверх
mrvarkaus
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Сб мар 20, 2021 23:49:28
Зарегистрирован: Чт мар 11, 2021 05:07:30Сообщений: 9
Рейтинг сообщения: 0
Zikon ,
Попытался реализовать f4_f4l/f5=f6_f6l_f6ost . Не получается
Код:
title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4 equ 0x20 f4l equ 0x21 f5 equ 0x22 f6 equ 0x23 f6l equ 0x24 f6ost equ 0x25 k equ 0x26 goto Start Start clrf f6 clrf f6l clrf f6ost movlw 0x08 movwf k movf f4,W movwf f6 movf f4l,W movwf f6l m2 rlf f6,W rlf f6ost movf f5,W subwf f6ost,1 btfsc STATUS,C goto m3 addwf f6ost,1 bcf STATUS,C m3 rlf f6,1 decfsz k goto m2 m1 rlf f6l,W rlf f6ost movf f5,W subwf f6ost,1 btfsc STATUS,C goto m4 addwf f6ost,1 bcf STATUS,C m4 rlf f6l,1 decfsz k goto m1 nop end
Добавлено after 13 minutes 24 seconds: Zikon ,
Нашел костыль один , заново задать цикл после выполнения 1 деления
но думаю есть вариант проче
Код:
title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4 equ 0x20 f4l equ 0x21 f5 equ 0x22 f6 equ 0x23 f6l equ 0x24 f6ost equ 0x25 k equ 0x26 goto Start Start clrf f6 clrf f6l clrf f6ost movlw 0x8 movwf k movf f4,W movwf f6 movf f4l,W movwf f6l m2 rlf f6,W rlf f6ost movf f5,W subwf f6ost,1 btfsc STATUS,C goto m3 addwf f6ost,1 bcf STATUS,C m3 rlf f6,1 decfsz k goto m2 movlw 0x8 movwf k ; новый ЦИКЛ m1 rlf f6l,W rlf f6ost movf f5,W subwf f6ost,1 btfsc STATUS,C goto m4 addwf f6ost,1 bcf STATUS,C m4 rlf f6l,1 decfsz k goto m1 nop end
После этого заработало
Вернуться наверх
Zikon
Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Добавлено: Вс мар 21, 2021 09:23:53
Открыл глаза
Зарегистрирован: Вт фев 28, 2017 08:13:31Сообщений: 75Откуда: Свердловская обл.
Рейтинг сообщения: 0
а так?
Код:
title "PIC16f877 sample" list p=16f877 #include <p16f877.inc> f4l equ 0x20 f4 equ 0x21 f5 equ 0x22 f6l equ 0x23 f6 equ 0x24 f6ost equ 0x25 k equ 0x26 goto Start Start clrf f6l clrf f6 clrf f6ost movlw 0x10 movwf k movf f4l,W movwf f6l movf f4,W movwf f6 m2 rlf f6l,W rlf f6, 1 rlf f6ost, 1 movf f5,W subwf f6ost,1 btfsc STATUS,C goto m3 addwf f6ost,1 bcf STATUS,C m3 rlf f6l,1 decfsz k goto m2 nop end
Вернуться наверх
Страница 1 из 1
[ Сообщений: 13 ]
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения