logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak przesunąć tablicę 25 danych z CODE do XRAM w mikrokontrolerze 8051?

Mi_chał 09 Sty 2006 11:52 810 5
REKLAMA
  • #1 2162171
    Mi_chał
    Poziom 11  
    Posty: 15
    Ocena: 1
    Witam was wszystkich potrzebuje program do mikrokontrolera 8051 niemoge sobie poradzić z zadaniem jeśli ktoś ma jakiś pomysł jak to wykonać to prosze napisać. treść zadania:Przesun tablice 25 danych stałych z pamięci CODE do pamięci XRAM.
  • REKLAMA
  • #2 2162613
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Mi_chał napisał:
    Przesun tablice 25 danych stałych z pamięci CODE do pamięci XRAM.
    Co ty pod tym stwierdzeniem rozumiesz ? Bo dla mnie jest to nie możliwe, ponieważ te obszary wcale nie muszą być ciągłe. Może miało być PRZENIEŚ albo KOPIUJ
  • REKLAMA
  • REKLAMA
  • #4 2163289
    Mi_chał
    Poziom 11  
    Posty: 15
    Ocena: 1
    Asembler w tym języku byłoby najlepiej. A jeśli chodzi o to przesun=skopiuj
  • REKLAMA
  • #5 2164616
    jj
    Poziom 19  
    Posty: 145
    Pomógł: 42
    Poniższy kod kopiuje N bajtów z pamięci programu (od adresu ADDR_CODE w górę) do pamięci xdata (od adresu ADDR_XRAM w górę):
    	mov		r3,#high(ADDR_CODE)	;
    	mov		r4,#low(ADDR_CODE)	;adres poczatkowy pamieci programu do r3:r4
    	mov		r5,#high(ADDR_XRAM)	;
    	mov		r6,#low(ADDR_XRAM)	;adres poczatkowy pamieci XRAM do r5:r6
    	mov		r7,#N				;licznik bajtow do skopiowania
    
    _LOOP:
    	mov		dph,r3				;
    	mov		dpl,r4				;adres komorki zrodlowej do dptr
    	clr		a					;zeruj akumulator
    	movc	a,@a+dptr			;pobierz do akumulatora wartosc z pamieci programu
    	inc		dptr				;ustaw adres na nastepny bajt
    	mov		r4,dpl				;
    	mov		r3,dph				;przepisz adres do r3:r4
    	
    	mov		dph,r5				;
    	mov		dpl,r6				;adres komorki docelowej do dptr
    	movx	@dptr,a				;zapisz do xram
    	inc		dptr				;ustaw adres na nastepny bajt
    	mov		r6,dpl				;
    	mov		r5,dph				;przepisz adres do r5:r6
    	djnz	r7,_LOOP			;zmniejsz licznik i jesli rozny od zera - kopiuj nastepny bajt
    


    pozdrawiam
    Jacek
  • #6 2164772
    Mi_chał
    Poziom 11  
    Posty: 15
    Ocena: 1
    Wielkie dzięki Jacek juz cos zaczynam kapowac :D Michał
REKLAMA