Blandade C++ frågor, nybörjarnivå

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Blandade C++ frågor, nybörjarnivå

Inlägg av lillahuset »

Varierar naturligtvis mellan processorarkitekturer.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4693
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Blandade C++ frågor, nybörjarnivå

Inlägg av Swech »

Kod: Markera allt

   LDS  XL,NrToCheck      ;HÄMTA LÅGA 8 BITARNA
   LDS  XH,NrToCheck+1  ;HÄMTA HÖGA 8 BITARNA
   LDI   R16,0                 ;RESULTAT = 0
   LDI   R17,0                 ;VI BEHÖVER ETT REGISTER MED 0
LOOP1:
   LSR   XH                    ;SKIFTA BIT
   ROR  XL                     ;SKIFTA BIT -> CARRY
   ADC  R16,R17             ;ADDERA 0 + CARRY TILL R16
   CP    XL,R17              ;FÄRDIGA
   CPC  XH,R17
   BRNE LOOP1               ;NEJ 

; RESULTAT I R16

Gör det snabbare i C :D
Swech
Användarvisningsbild
adent
Inlägg: 4100
Blev medlem: 27 november 2008, 22:56:23
Ort: Utanför Jönköping
Kontakt:

Re: Blandade C++ frågor, nybörjarnivå

Inlägg av adent »

Magnus_K skrev:Ni får sucka men jag förstår ändå inte :(
Och det är just detta som är viktigt! Att våga säga det!

http://rewritingthecode.com/2016/03/27/hello-world/
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Blandade C++ frågor, nybörjarnivå

Inlägg av vfr »

Som parantes kan sägas att jag använde en liknande metod för att beräkna CRC i en PIC16. Att fippla med CRC-beräkningar bitmässigt tar en del tid. Om man å andra sidan använder tabeller med 256 värden så går det fort men tar en del av minnet i en liten mikrokontroller.

Jag gjorde istället som Mikael föreslog, en liten tabell med 16 värden per nibble. Funktionen skrevs i assembler och man har då nytta av swap-instruktionerna som på ett lättsamt sätt swappar nibbles.

Det blev i slutändan en riktigt bra kompromiss med hyffsad hastighet och ändå liten minnesåtgång.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Blandade C++ frågor, nybörjarnivå

Inlägg av lillahuset »

Swech: Vilken processor?
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4693
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Blandade C++ frågor, nybörjarnivå

Inlägg av Swech »

Atmel AVR

Swech
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Blandade C++ frågor, nybörjarnivå

Inlägg av lillahuset »

Ja det var ju tio år sedan jag programmerade AVR så det är inte så konstigt att jag inte kände igen instrutionerna längre. :)
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Blandade C++ frågor, nybörjarnivå

Inlägg av Magnus_K »

adent skrev:
Magnus_K skrev:Ni får sucka men jag förstår ändå inte :(
Och det är just detta som är viktigt! Att våga säga det!

http://rewritingthecode.com/2016/03/27/hello-world/
Fin historia det där och kan inte mer än att hålla med till 100%.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Blandade C++ frågor, nybörjarnivå

Inlägg av lillahuset »

Magnus, det är bara att bita ihop. För drygt tjugo år sedan var jag en riktig sopa när det gällde programmering. Men jag har sakta bättrat mig. Lite väl sakta kanske. :)
Skriv svar