- posted
18 years ago
Macro w C
- Vote on answer
- posted
18 years ago
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
- Vote on answer
- posted
18 years ago
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
- Vote on answer
- posted
18 years ago
plik.s
subi16 r16,r17,0x11aa ret
Znów mi kropki wcięło :(
- Vote on answer
- posted
18 years ago
Wykorzystaj te z pliku delay.h. Ewentualnie podpatrz jak tam to zrobiono.
Pozdrawiam Krzysztof Szmurło