10. oktober 2002 - 10:55Der er
13 kommentarer og 3 løsninger
Returnere værdi fra asm-funktion til C
Wolla!
Jeg har lavet et funktionskald i C til en assemblerfunktion, som skal returnere en værdi af typen int. Er der nogen der ved hvordan man gør det (Måske forkert gruppe - Håber på forståelse),
Eks.
-C- /* a = test(); */
-Asm- /* _test: ;Der skal bare returneres en int-værdi - Hvordan? */
Lyder godt - Der er bare ikke noget EAX register af hvad jeg sådan lige kan se. Hat dog selv fundet ud af, at et register der hedder T0 måske kan bruges :-D
dx og al er navnene på de registre (her i Intel x86 CPU'en) som der bliver læst/skrevet til. 'mov' og 'in' er Intel x86 assembler instruktioner - 'mov' eller 'move' findes til de fleste CPU'er, også f.eks. 6502 (Gode gamle Commodore 64 bl.a.)
en int defineres vel også som et heltal bestående af "x antal (bit|bytes)" - så i princippet er det vel afhængig af miljøet.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.