Witam.
Kolejny problem z asmem i operacjami logicznymi. Otóż prosiłbym zorientowanych w temacie o przykład funkcji RCL oraz RCR w Delphi, bo zrobiłem póki co tak jak poniżej, ale to działa dla wartości poniżej A mniejszej od $00BA to znaczy zwraca takie wyniki jakie pokazuje Debugger dla śledzonego innego programu. Natomiast przy A = $0000, funkcja zwraca $00000000, a wedlug debuggera powinna zwrócić $00000001. Przydało by się też aby można było podawać jako A i S dowolne typy z zakresu, Byte, Word, DWord, a także aby funkcja zwracała DWord. Z góry dziękuję za pomoc i przykłady, bo bez Was nic nie wykombinuje lepszego, nie udało mi się wygooglować dobrego przykładu, a jak wspominałem w innym temacie z matmy ze mnie "noga", a w sprawach operacji logicznych zdaje się na kompilator i to co zwróci kod porównuje z wynikami w debuggerze przy śledzonym kodzie. Wiem, że mogę dać warunek if A < od iluś (no właśnie od ilu) to rób Inc(EAX), ale to bez sensu zacierać wyniki. Pewnie da się RCL i RCR zrobić inaczej i jednocześnie z prawidłowymi wynikami.
function RCL(A : Word; S : DWord) : DWord;
asm
mov ecx, s
rcl eax, cl
end;