Kezdőlap › Fórumok › Programozás › Assembly + C vagy van valami más ötlet?
- This topic has 3 hozzászólás, 3 résztvevő, and was last updated 19 years, 8 months telt el by
tovis.
-
SzerzőBejegyzés
-
2006-03-05-06:00 #2051756
Es ez igy neked szintaktikailag helyes? (Leforditja egyaltalan?)
Code:mov ecx,, lengthMiert kell oda ket vesszo?
Egyebkent nem eskuszom meg ra, de mintha ansi C-ben lenne valamilyen rshift utasitas. Majd utana nezek.Morzel
2006-03-05-09:12 #2051757azért mert remeg a kezem;o)
Nem copy/paste, kézzel vittem be – az eredetit tökéletesen fordítja.2006-03-05-15:41 #2051758Okuljunk!
A GNU C -ben az inline assembly (mint kiderítettem) létezik – nagyon szokatlan (számomra) mivel nem a számomra megszokott, az Intel által definiált leírási módot alkalmazza hanem az AT&T pseudo assemblerét. Az elsõ szövegben talált kód ebben így fest:int rcl_array(char *sreg,int iLNG,int iCNT)
{
pBIN += iLNG – 1;
__asm__ __volatile__(
„pushfn”
„pushl %%ebxn”
„pushl %%ecxn”
„movl %0,%%ecxn”
„rcl_array_2:n”
„pushl %%ecxn”
„movl %1,%%ecxn”
„movl %2,%%ebxn”
„clcn”
„rcl_array_1:n”
„rclb $1,(%%ebx)n”
„decl %%ebxn”
„loop rcl_array_1n”
„popl %%ecxn”
„loop rcl_array_2n”
„popl %%ecxn”
„popl %%ebxn”
„popfn”
: /* no output registers */
: „r” (iCNT), „r” (iLNG), „r” (sreg)
);
return ( iCNT );
} //end rcl_arrayErre a ck. 10 sornyi rutinra elment ck. 4 órám! – megérte?!
2009-12-04-19:57 #1882588n – bájtos tömböt kellene bitenként shiftelni! Visual C -ben egyszerûen inline assemblerrel megoldottam de most ez Linux -ban is kellene.
A rutin rpototípusa:
int rcl_array(char *sreg, int length, int count)azaz van egy length elemû byte tömb, melyet count szor kellene elshiftelni bitenként és aztán adja vissza a count -ot.
Ez inline assemblyben így néz ki:
int rcl_array(char *sreg,int length,int count)
{
sreg += length – 1;
__asm
{
pushf
mov ecx,count
rcl_array_2:
push ecx
mov ecx,, length
mov ebx, sreg
clc
rcl_array_1:
rcl [ebx],1
dec ebx
loop rcl_array_1
pop ecx
loop rcl_array_2
popf
}
return ( count );
}Szóval ilyen egyszerû, de a GNU C -ben ilyne nem, igen van, vagy nem igazán felfogható a szintaxisa.
Tudtok valami egyszerû assembly programot (példát) amit hozzá linkelhetek egy C progihoz? -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.

legutóbbi hsz