Czy w C++ istnieją odpowiedniki asemblerowych instrukcji SHR, SHL, jeżeli nie istnieją to w jaki sposób można je ręcznie napisać?
a shl b = a << b
a shr b = a >> b
a = a shl b a =<< b
a = a shr b a =>> b
Dzięki. To może jescze SAR, SAL, ROR, ROL, RCR, RCL
Dzięki. To może jescze SAR, SAL, ROR, ROL, RCR, RCL
SAL jest identyczne z SHL (czyli k;
q = q | w;
(mam nadzieję, że dobrze...)
Obroty analogicznie.
A tak na marginesie: czy w C++ są wstawki asmowe? (na pewno są, cóż to byłby za "język bliski procesorowi") i jak je się wstawia?
A tak na marginesie: czy w C++ są wstawki asmowe? (na pewno są, cóż to byłby za "język bliski procesorowi") i jak je się wstawia?
No cóż, ja nie znam ASM [wstyd] , ale wstawia się przez:
asm(blablabla polecenia asmowe) // wg Stroustrupa
chociaż widziałem też bez nawiasów - aaa, nie ma średnika na końcu, :-)
Pozdrawiam Mart
można też tak:
asm {
...
...
}
Wstawki sa w chyba kazdym kompilatorze c/c++ tylko róznią sie składnią i deklaracją [stuk]
Na kompilatorze LCC wstawki robię tak:
[code]_asm
{
}[/code]
w VC chyba jest tak samo
Wstawki sa w chyba kazdym kompilatorze c/c++ tylko róznią sie składnią i deklaracją [stuk]
Wydaje mi się, że wszędzie są takie same. Albo w postaci bloku (tak jak to napisał Vogel i pkapera - spotkałem się z tymi dwoma postaciami) albo jako jedna instrukcja, np.:
[code]asm int 19h[/code]
W Pascalu (nie wiem, jak w C++) można było pisać blok w jednej linii, ale wtedy trzebabyło używać średników, np.:
[code]asm mov ax,3; int 10h; end[/code]
W Pascalu (nie wiem, jak w C++) można było pisać blok w jednej linii, ale wtedy trzebabyło używać średników, np.:
[code]asm mov ax,3; int 10h; end[/code]
Akurat jak w Pascalu to wiem :) Ale zawsze piszę każdą instrukcję od nowej lini. Bardziej czytelnie.
Wstawki mogą sie róznic bo rózne kompilatory uzywają róznych assemblerów. W DJGPP trzeba uzywac składni AT&T a w np: Turbo C Intel Asm.