Macro w C

Loading thread data ...

Dnia Sat, 7 Jan 2006 16:54:07 +0100, Krzysztof napisał(a): <ciach>

Są inne sposoby - można zamieścić całą funkcję w asemblerze za pomocą dyerktywy asm.

Pozdrawiam

Marcin Stanisz

Reply to
Marcin Stanisz

Krzysztof snipped-for-privacy@poczta.onet.pl> napisał(a):

A skąd wytrzasnąłes taką składnie , dla assemblera GCC ? Nie napisałeś , o jaką platformę chodzi.Czy o AVR ? Wydaj mi się , że jak się używa jakiegoś narzędzia , to zaczyna się pracę od przeczytania instrukcji obsługi , a nie stosujesz się do zasad , które obowiązują dla czegoś innego.Tyle wymądrzania się ;-)

plik.s

globl label macro subi16 a,b,c ; Start macro definition subi \a,lo8(\c) ; Subtract low byte sbci \b,hi8(\c) ; Subtract high byte endm ; End macro definition

section .text func label label: subi16 r16,r17,0x11aa ret

------------------------------------------------------ plik.c

#include <avr/io.h>

extern void label(void);

int main(void) { label(); return(0); }

Do funkcji "asemblerowej" można również przekazać parametry , jak do funkcji w "C" , ale więcej o tym w dokumentacji , no i w skarbnicy wszechwiedzy - google ;)

Piotrek

Reply to
Piotrek Sz.

plik.s

subi16 r16,r17,0x11aa ret

Znów mi kropki wcięło :(

Reply to
Piotrek Sz.

Wykorzystaj te z pliku delay.h. Ewentualnie podpatrz jak tam to zrobiono.

Pozdrawiam Krzysztof Szmurło

Reply to
Krzysztof Szmurło

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.