Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
caof19
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 62
1

Size suffix and destination or source size do not match

12.06.2017, 19:59. Просмотров 241. Ответов 5
Метки нет (Все метки)

Добрый день, возникла проблема. Говорю сразу в ассемблере ничего не понимаю, в гугле нашел только одну ссылку на свою проблему. Код пишу в Free Pascal через asm. Вот код ассемблера:
Assembler
1
2
3
4
5
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. Мне кажется понимаю, в чем проблема, но из-за недостатка знаний в ассемблере не могу ее решить. Прошу помощи.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2017, 19:59
Ответы с готовыми решениями:

Ошибка: firebird Size Mismatch - Field GROUP size is too small for data
Возникла проблема, пишет Size Mismatch - Field FULL_ADR size is too small for...

Заполнить квадратную матрицу змейкой по диагонали, начиная с элемента matrix[size-1][size-1]
Требуется написать программу, которая заполняет массив размерности n*n по...

Runtime size и ROM size
Добрый вечер, форумчане! Не помогает ни переводчик, ни гугл.. Что обозначает...

#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOB
При внесении данных в БД возникла ошибка.Ни как не могу заполнить таблицу....

Резиновый font-size, Как сделать резионвый font-size в блоке?
<HTML> <HEAD>test</HEAD> <BODY> <style> .test { width: 20%; height: 9%;...

5
ФедосеевПавел
Модератор
3852 / 2174 / 893
Регистрация: 01.02.2015
Сообщений: 7,245
12.06.2017, 21:29 2
в TP integer - 2 байта, т.е. нужно загружать в ax или bx или cx или dx.
Кроме того - не должно быть символов ';'.
0
caof19
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 62
12.06.2017, 21:42  [ТС] 3
Но тогда результат хранится в переменной eax, eсли брать ax и bx? То тогда ошибко в строке где @result
0
ФедосеевПавел
Модератор
3852 / 2174 / 893
Регистрация: 01.02.2015
Сообщений: 7,245
12.06.2017, 21:49 4
Публикуйте всю программу.
0
caof19
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 62
12.06.2017, 21:59  [ТС] 5
Все программа
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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.
Добавлено через 4 минуты
Если в функции умножения заменить c1 и c2 на числа, типо 2 и 5, то выдаст ошибку 103, не может открыть файл, опять же какой файл, не понятно. Но тут проблема в том, что я не понимаю как функция умножения работает, мне кажется. Опять же, прошу прощения, просто появилось острая надобность эту программу написать, именно через ассемблер, который вызывается в паскале который я "изучаю" всего 3 часа.

Добавлено через 2 минуты
И я уточню, при помощи этой функции вообще можно выполнять умножение двух чисел? Или мне в этом случае цикл использовать?
0
ФедосеевПавел
Модератор
3852 / 2174 / 893
Регистрация: 01.02.2015
Сообщений: 7,245
12.06.2017, 22:20 6
Смотрите, помимо выбора диалекта ассемблера, нужно выбирать и способ передачи параметров в процедуру, и указать соглашение о вызове.

В prog.pdf раздел 6.3 начинается со слов
By default, the calling mechanism the compiler uses is register, that is, the compiler will try to pass as much parameters as posible by storing them in a free register.
Почитайте, как-то нужно твёрдо установить передачу через стек.

Кроме того, в разных режимах совместимости размер integer - 2 или 4 байта. Твёрдо указывайте режим совместимости.
0
12.06.2017, 22:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2017, 22:20

Source and destination form в одном проекте.
HIHI FRDS ! Какие могут быть идеи, что бы решить такую задачку. В одном...

Чем отличаются STEELSERIES Siberia V2 Full-size Headset Black и STEELSERIES Siberia V2 Full-size Headset USB Black
Выбираю между наушниками STEELSERIES Siberia V2 Full-size Headset Black...

Private Declare Sub CopyMemory Lib 'kernel32' Alias 'RtlMoveMemory' (Destination As Any, Source As Any, ByVal Length As Long)
В QBasic можно написать: DEF SEG=&H40 PRINT PEEK(&H100) 'ЧИТАЕМ БАЙТ В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru