Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 21.02.2011, 14:21   #11
master.k
Частый гость
 
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
master.k на пути к лучшему
По умолчанию Re: Работа с массивами (PIC18, Assembler)

Код:
dat0        UDATA
count		res		1
temp		res		1

dat1		UDATA
ArrayA		res		128
ArrayB		res		128

cod1		CODE
            .....
		lfsr	FSR0, ArrayA
		lfsr	FSR1, ArrayB
		clrf	count
		bra		mm03
mm01:
                       movf	count, W
		movf	PLUSW0, W
		movwf	temp
                      movf	count, W
		movf	PLUSW1, W
		cpfslt	temp      ;  skip if A[i]‹B[i]
		bra		mm02
		....
		....

mm02:   	incf	count
mm03:		movlw	127
		cpfsgt  count    ; skip  if count › 127
		bra		mm01
вот еще исправленный (ещё ближе к задаче)

fsr1 и fsr0 в данном варианте не изменяются

а как без fsr вы хотите обработать массив?
Реклама:
master.k вне форума  
Непрочитано 21.02.2011, 14:30   #12
master.k
Частый гость
 
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
master.k на пути к лучшему
По умолчанию Re: Работа с массивами (PIC18, Assembler)

Код:
dat0        UDATA
count       res     1
temp        res     1

dat1        UDATA
ArrayA      res     128
ArrayB      res     128

cod1        CODE
            .....
            lfsr    FSR0, ArrayA
            lfsr    FSR1, ArrayB
            clrf    count
            bra     mm03
mm01:       movf    count, W
            movff   PLUSW0, temp
            movf    PLUSW1, W
            cpfslt  temp      ;  skip if A[i]‹B[i]
            bra     mm02
            ....
            ....
mm02:       incf	count
mm03:       movlw	127
            cpfsgt  count    ; skip  if count › 127
            bra		mm01
вот еще
master.k вне форума  
Непрочитано 21.02.2011, 14:35   #13
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Работа с массивами (PIC18, Assembler)

Сообщение от master.k Посмотреть сообщение
вот еще
Ну, все. окончательно запутал топикстартера
testerplus вне форума  
Непрочитано 21.02.2011, 14:38   #14
master.k
Частый гость
 
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
master.k на пути к лучшему
По умолчанию Re: Работа с массивами (PIC18, Assembler)

Код:
dat0        UDATA
count       res     1
temp        res     1

dat1        UDATA
ArrayA      res     128
ArrayB      res     128

cod1        CODE
            .....
            clrf    count
            bra     mm03
mm01:       movf    count, W
            lfsr    FSR0, ArrayA
            movff   PLUSW0, temp
            lfsr    FSR0, ArrayB
            movf    PLUSW0, W
            cpfslt  temp      ;  skip if A[i]‹B[i]
            bra     mm02
            ....
            ....
mm02:       incf	count
mm03:       movlw	127
            cpfsgt  count    ; skip  if count › 127
            bra		mm01
а вот вообще с одним регистром FSR


(а как это будет на AVR? )
master.k вне форума  
Непрочитано 21.02.2011, 14:40   #15
master.k
Частый гость
 
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
master.k на пути к лучшему
По умолчанию Re: Работа с массивами (PIC18, Assembler)

пусть учатся!
master.k вне форума  
Сказали "Спасибо" master.k
Opasif (21.02.2011)
Непрочитано 21.02.2011, 14:49   #16
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: Работа с массивами (PIC18, Assembler)

Сообщение от master.k Посмотреть сообщение
а как без fsr вы хотите обработать массив?
Ну, например так (fsr используется только один):
Код:
i:   res 1
.....
    clrf      fsr0h    ; temp = A[i]
    movfw     i                ;
    addlw     (low)A           ;
    movwf     fsr0l            ;
    movlw     (high)A          ;
    addfc     fsr0h, f         ;
    movff     indf0, temp      ;
Или нет?

Последний раз редактировалось Bill; 21.02.2011 в 14:53.
Bill вне форума  
Непрочитано 21.02.2011, 15:00   #17
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Работа с массивами (PIC18, Assembler)

Сообщение от master.k Посмотреть сообщение
(а как это будет на AVR? )
О! Сейчас опять холивар начнется.
testerplus вне форума  
Непрочитано 21.02.2011, 15:03   #18
master.k
Частый гость
 
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
master.k на пути к лучшему
По умолчанию Re: Работа с массивами (PIC18, Assembler)

Сообщение от Bill Посмотреть сообщение
Ну, например так (fsr используется только один):
Код:
i:   res 1
.....
    clrf      fsr0h    ; temp = A[i]
    movfw     i                ;
    addlw     (low)A           ;
    movwf     fsr0l            ;
    movlw     (high)A          ;
    addfc     fsr0h, f         ;
    movff     indf0, temp      ;
Или нет?
так из последнего примера
тоже самое, но FSR не изменяется
Код:
mm01:       movf    count, W
            lfsr    FSR0, ArrayA
            movff   PLUSW0, temp
master.k вне форума  
Непрочитано 21.02.2011, 15:25   #19
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Работа с массивами (PIC18, Assembler)

Сообщение от testerplus Посмотреть сообщение
О! Сейчас опять холивар начнется.
... тогда мы идём к вам!





шутка
omercury вне форума  
Непрочитано 21.02.2011, 16:25   #20
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: Работа с массивами (PIC18, Assembler)

Сообщение от master.k Посмотреть сообщение
(а как это будет на AVR? )
Для начала я лучше на STM8 нарисую:
Код:
    clrw   x              ; i = 0
1$:
    ld     a, (_A, x)     ; if (A[i] ‹ B[i])
    cp     a, (_B, x)     ;
    jruge  2$             ;
.......

2$:
    incw   x              ; ++i
    cpw    #128           ; if (i ‹ 128)
    jrult  1$             ;     continue;
Bill вне форума  
Закрытая тема

Закладки

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Напряжённая работа Roshens Отвлекитесь, эмбеддеры! 8 01.09.2010 23:08


Часовой пояс GMT +4, время: 22:21.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot