Size suffix and destination or source size do not match - Assembler
Формулировка задачи:
Добрый день, возникла проблема. Говорю сразу в ассемблере ничего не понимаю, в гугле нашел только одну ссылку на свою проблему. Код пишу в Free Pascal через asm. Вот код ассемблера:
Ругается на строчку mov al,zn1; и mov ah,zn2;. В них я добавляю данные типа integer. Ошибка:size suffix and destination or source size do not match. Мне кажется понимаю, в чем проблема, но из-за недостатка знаний в ассемблере не могу ее решить. Прошу помощи.
Листинг программы
- asm
- mov al,zn1;
- mov ah,zn2;
- mul ax;
- mov @result,ax;
Решение задачи: «Size suffix and destination or source size do not match»
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.
Объяснение кода листинга программы
- Создание двух переменных для хранения чисел:
c1
иc2
. - Определение функции
add
с двумя параметрамиc1
иc2
, возвращающей целое число. - Внутри функции
add
происходит использование инлайн-ассемблера, где значения переменныхc1
иc2
загружаются в регистры, затем они складываются, и результат сохраняется в регистрax
, а затем возвращается в переменную @result. - Определение процедуры
umnzn
с двумя параметрамиc1
иc2
, ничего не возвращающей. - Внутри процедуры
umnzn
также используется инлайн-ассемблер, где значения переменныхc1
иc2
загружаются в регистрыal
иbl
, происходит умножение значений, и результат сохраняется в регистреax
, а затем возвращается в переменную @result. - В основной части программы пользователь вводит значения для
c1
иc2
. - Затем вызывается процедура
umnzn
с параметрамиc1
иc2
, возвращаемое значение выводится на экран. - После этого программа ждет, пока пользователь нажмет клавишу, прежде чем завершить выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д