Prosty kod dla 8051

Loading thread data ...

Zbych napisal(a):

Hmm, dlaczego nie rzuciles mnemonikow? Kto by jeszcze pamietal kody hexa rozkazow??

P.S. Sa oczywiscie rzeczy, ktore w C zajma znacznie wiecej rozkazow. Na przyklad Swap.

Reply to
Marcin E. Hamerla

Będzie ciężko, bo C trudno przekonać do obliczeń BCD i nie ma chyba sensownego sposobu na zmuszenie kompilatora do wygenerowania rozkazu poprawki po dodawaniu BCD (DAA). Zrób sobie funkcję inline napisaną w asemblerze nazwaną np. increment_bcd i używaj kiedy trzeba.

Reply to
Adam Dybkowski

Zbych przemówił ludzkim głosem:

[ciach]

A co ze starszym niblem w bajcie ? (rozumiem, że chcesz operować na spakowanym BCD). Np. 0x99, po inkrementacji 0x9A, po twojej korekcji

0xA0. Przydałoby się dodać jeszcze 0x60 w przypadku przeniesienia na CY.
Reply to
Zbych

Zbych napisal(a):

Nie chcesz zrobic inline asm?

Reply to
Marcin E. Hamerla

Zbych snipped-for-privacy@wp.pl napisał(a):

To jakieś zawody ?-)

(*adres)=(*adres)+1; if(((*adres) & 0x0F)==0x0A ) (*adres)+=6;

Piotrek

Reply to
Piotrek Sz.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.