Invalid combination of opcode and operands

0
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

      Var
	liczba : word;
	wynik : word;

begin
  writeln('Podaj liczbe: ');
	readln(liczba);
    asm
    mov ax, liczba
    mov dx, wynik

    mov bx,ax
    and bx,$1
    add dx,bx

   shr ax
    mov bx,ax
    and bx,$1
    add dx,bx


    end;
    writeln('Reszta z dzielenia przez 4 to: ', wynik);
    readln;
end. 

Chciałbym obliczyć reszte z czterech, ale wyskakuje następujący komunikat:

Invalid combination of opcode and operands

0

Linijki już nie łaska podać? :F

Zgaduję, że błąd jest tutaj:

shr ax

shr przyjmuje dwa argumenty.

(btw, jeżeli chcesz wyznaczyć resztę z dzielenia, jest znacznie łatwiejszy sposób: http://stackoverflow.com/questions/8231882/how-to-implement-the-mod-operator-in-assembly)

Also, po co łączysz Pascala oraz Assemblera?

1 użytkowników online, w tym zalogowanych: 0, gości: 1