n – 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?
legutóbbi hsz