Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/50: Рейтинг темы: голосов - 50, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 25
1

error C2443: конфликт размеров операндов.

20.10.2011, 23:26. Показов 9496. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
 
 
int r_y1(int a, int x)
{
    int y0;
 
    _asm
    {
        cmp x,3
            jLE M1
            jG M8
 
M1: cmp x,0
    jGE M2
    jL M3
 
M2: mov AL,x
    jmp M4
 
M3: mov AL,x
    NEG AL
 
M4: cmp a,0
    jGE M5
    jL M6
 
M5: mov BL,a
    jmp M7
 
M6: mov BL,a
    NEG BL
 
M7: ADD AL,BL
    CBW
    CWDE
    mov y0,AX
    jmp M9
 
M8: mov AL,x
    IMUL a
    CWDE
    mov y0,EAX
 
M9: 
    };
    return y0;
 
}
int main()
{
    int a,x, y1;
 
    printf("Enter a: \n");
    scanf("%d",&a);
 
    printf("Enter x: \n");
    scanf("%d",&x);
 
    y1 = r_y2(a,x);
 
    printf("y1 = %d\n",y1);
        
    return 0;
 
}
Помогите пожалуйста, что-то не работает.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2011, 23:26
Ответы с готовыми решениями:

Error C2443: конфликт размеров операндов. - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; unsigned...

Конфликт размеров операндов
Выводит ошибку: конфликт размеров операндов. Я понимаю, почему она возникает, но как исправить ее я...

Конфликт размеров операндов при сдвигах
Добрый день форумчане, изучаю ассемблер, однако столкнулся с одной раздражающей ошибкой. Задача...

Заменить во втором массиве числа превышающие заданное пользователем значение нулями (Конфликт размеров операндов)
Здравствуйте. Вот есть у меня массив int B C помощью асемблера нужно: Заменить во втором...

6
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
21.10.2011, 01:04 2
Alex66618, конкретней, пожалуйста.

1. Что получается.
2. Что должно получиться.
0
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 25
21.10.2011, 01:19  [ТС] 3
при компиляции выбивает ошибку error C2443: конфликт размеров операндов.
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
21.10.2011, 04:04 4
Цитата Сообщение от Alex66618 Посмотреть сообщение
конфликт размеров операндов.
Assembler
1
mov AL,x
x у тебя int (т.е. скорее всего 4 байта), а регистр AL - 1 байт.
0
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
21.10.2011, 07:12 5
Alex66618, у тебя двойнные слова используются в коде С++, так используй 32-битные регистры.
0
0 / 0 / 0
Регистрация: 22.09.2009
Сообщений: 25
21.10.2011, 11:14  [ТС] 6
Та это я уже понял, спасибо))
тут проблемы с подключением объектного файла созданного из-под masm32
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.386
.model flat
public _r_y2@8
.code
_r_y2@8 proc
push EBP
mov EBP,ESP
mov EAX,[EBP+12]
mov ECX,[EBP+8]
cmp ECX,EAX
jE @M1
jNE @M2
@M1: mov EAX,3
jmp @M3
@M2: SUB ECX,EAX
mov EAX,ECX
@M3:
pop EBP
ret 8
_r_y2@8 endp
end
А вот полный код программы.

C++
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
 
extern "C" int _stdcall sorting(int a, int x);
int r_y1(int a, int x)
{
    int y0;
 
    _asm
    {
        cmp x,3
            jLE M1
            jG M8
    }
M1:
    _asm
    {
    cmp x,0
    jGE M2
    jL M3
    }
M2: 
    _asm
    {
    mov EAX,x
    jmp M4
    }
M3: 
    _asm
    {
    mov EAX,x
    NEG AL
    }
M4: 
    _asm
    {
    cmp a,0
    jGE M5
    jL M6
    }
M5: 
    _asm
    {
    mov EBX,a
    jmp M7
    }
M6: 
    _asm
    {
    mov EBX,a
    NEG EBX
    }
M7: 
    _asm
    {
    ADD EAX,EBX
    mov y0,EAX
    jmp M9
    }
M8: 
    _asm
    {
    mov EAX,x
    IMUL a
    CWDE
    mov y0,EAX
    }
M9: 
    _asm
    {
    }
    return y0;
 
}
int main()
{
    int a,x, y1, y2, y;
 
    printf("Enter a: \n");
    scanf("%d",&a);
 
    printf("Enter x: \n");
    scanf("%d",&x);
 
    y1 = r_y1(a,x);
 
    printf("y1 = %d\n",y1);
 
    y2=sorting(a,x);
 
    printf("y2 = %d\n",y2);
 
    y = y1 + y2;
 
    printf("y = %d\n",y);
 
    getch();
    return 0;
 
}
Добавлено через 14 минут
в кодах разные имена функций -это пробовал просто, но код все равно не работает.

Добавлено через 41 минуту
"C:\masm32\bin\a"
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.

Assembling: C:\masm32\bin\a.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup
a.exe : fatal error LNK1120: 1 unresolved externals
_
Link error

Ошибка при ассемблировании и линковке
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
21.10.2011, 23:23 7
Alex66618, судя по сообщению об ошибке, вы создали проект не того вида?
Код - это Win32 Console Application, а сообщение об ошибке - Win32. Ы?
0
21.10.2011, 23:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2011, 23:23
Помогаю со студенческими работами здесь

Конфликт типов операндов
CREATE TABLE Books( ID INT IDENTITY(1,1) CONSTRAINT PK_BOOKS_ID PRIMARY KEY,...

Несколько операндов после условных операндов в языке Си
Можно ли, и если можно,то как, использовать несколько операндов после условных операндов в языке...

Конфликт жесткого диска и привода. Ошибка "I/O error. Press any key to reboot"
Устанавливаю WinXP. После копирования файлов на жесткий диск происходит положенная перезагрузка...

Изменение размеров Image.Picture.LoadFromFile при изменении размеров окна
Подскажите, пожалуйста, какие функции для этого нужны.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru