Size suffix and destination or source size do not match - Assembler

Формулировка задачи:

Добрый день, возникла проблема. Говорю сразу в ассемблере ничего не понимаю, в гугле нашел только одну ссылку на свою проблему. Код пишу в Free Pascal через asm. Вот код ассемблера:
asm
mov al,zn1;
mov ah,zn2;
mul ax;
mov @result,ax;
Ругается на строчку mov al,zn1; и mov ah,zn2;. В них я добавляю данные типа integer. Ошибка:size suffix and destination or source size do not match. Мне кажется понимаю, в чем проблема, но из-за недостатка знаний в ассемблере не могу ее решить. Прошу помощи.

Код к задаче: «Size suffix and destination or source size do not match - Assembler»

textual
program ass;
var c1,c2:integer;
 
{$ASMMODE intel}
 
function add(c1:integer;c2:integer):integer;
begin
    asm
        mov ax,c1;
        mov dx,c2;
        add ax,dx;
        mov @result,ax;
    end;
end;
 
procedure umnzn(c1:integer;c2:integer);
begin
    asm
       mov al,c1;
       mov bl,c2;
       mul bl;
       mov @result,ax;
    end;
end;
 
begin
    readln(c1);
    readln(c2);
    writeln(umnzn(c1,c2));
    readln;
end.

15   голосов, оценка 4.067 из 5


СОХРАНИТЬ ССЫЛКУ