Bonjour à tous,
J'aimerai introduire du code Assembleur dans mon code C
Je code sous Wind River.
J'éspére que vous pourrez m'aider!
Bonne journée
Bonjour à tous,
J'aimerai introduire du code Assembleur dans mon code C
Je code sous Wind River.
J'éspére que vous pourrez m'aider!
Bonne journée
Je sais pas ce qu'est Wind River, mais pour intégrer de l'assembleur en C, regardes ceci :
http://asm.developpez.com/cours/asminline/
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Ce que j'ai vu le plus souvent, c'est la partie assembleur encapsulée dans une clause "asm { }". Exemple:
Sinon, ce qui se fait aussi c'est d'isoler le code assembleur dans un fichier "*.s".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 void Cpu_Delay100US(word us100:__D0) { asm { andi.l #0xFFFF,d0 /* parameter is word - clear the rest of d0 register */ tpf /* alignment */ loop: move.l #0x012B,d1 /* (1 c: 41.67 ns) number of iterations */ label0: moveq #85,d3 /* Reset watchdog counter - 2x write*/ move.b d3,SRS move.b #-86,d3 move.b d3,SRS tpf /* (1 c: 41.67 ns) wait for 1 c */ subq.l #1,d1 /* (1 c: 41.67 ns) decrement d1 */ bne.b label0 /* (2 c: 83.33 ns) repeat 299x */ tpf /* (1 c: 41.67 ns) wait for 1 c */ tpf /* (1 c: 41.67 ns) wait for 1 c */ tpf /* (1 c: 41.67 ns) wait for 1 c */ /* 100 us delay block end */ subq.l #1,d0 /* parameter is passed via d0 register */ bne.w loop /* next loop */ rts /* return from subroutine */ } }
Partager