Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Anette666k
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 136
#1

Синтаксическая ошибка во встроенном коде на языке ассемблера в "код операции"

23.08.2016, 14:05. Просмотров 723. Ответов 2
Метки нет (Все метки)

visual studio 2013 выдал такую ошибку
error C2400: синтаксическая ошибка во встроенном коде на языке ассемблера в "код операции"; обнаружено "newline, что это за ошибка?

КОД

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
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
int z, x, y = 0; //Объявляем переменные x, y, z
cout << "x = ";
cin >> x;         //Считываем значение в переменную x
cout << "y = ";
cin >> y;         //Считываем значение в переменную y
_asm
 
{
xor EAX, EAX //обнуляем регистр EAX
xor EBX, EBX //обнуляем регистр EBX 
xor ECX, ECX //обнуляем регистр ECX 
mov EAX, x   //EAX = x
mov EBX, y   //EBX = y
cmp EAX,EBX  //сравниваем x и y
jl m       //Если x<y, то переходим на метку m 
jg b       //Если x>y, то переходим на метку b je  
ex       //Если x=y, то ничего не делаем
m:
mov EAX, x   //EAX = x
mul EAX      //EAX = x*x
mov ECX,EAX  //ECX = EAX = x*x
mov EAX, x   //EAX = x
mov EBX, 2   //EBX = 2
mul EBX      //EAX = EAX*EBX = 2*x
sub ECX, EAX //ECX = ECX - EAX = x*x - 2*x
mov z,ECX    //Записываем результат в z
jmp ex       //Прыгаем на метку ex
b:
mov EAX, y   //EAX = y
mul EAX      //EAX = y*y
mov z, EAX   //Записываем результат в z
ex:
}
cout << "z = " << z << endl; //Выводим результат на экран
system("pause"); 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2016, 14:05
Ответы с готовыми решениями:

Error C2400: синтаксическая ошибка во встроенном коде на языке ассемблера в "код операции"; обнаружено "SHL"
visual studio выдал такую ошибку error C2400: синтаксическая ошибка во...

For(auto const& val : stime) .cpp(47) : error C2143: синтаксическая ошибка: отсутствие "," перед ":"
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdexcept&gt; #include...

error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "fprot"
помогите, пожалуйсти исправить ошибки!!! #include &lt;iostream&gt; #include...

Error C2143: синтаксическая ошибка: отсутствие ";" перед "строка"
#include &lt;stdafx.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

error C2143: синтаксическая ошибка: отсутствие "]" перед ";"
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cmath&gt; using namespace std;...

2
MansMI
1448 / 1157 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
23.08.2016, 15:17 #2
Цитата Сообщение от Anette666k Посмотреть сообщение
jg b //Если x>y, то переходим на метку b je
ex //Если x=y, то ничего не делаем
все нормально?
0
sourcerer
Модератор
Эксперт CЭксперт С++
4828 / 2020 / 314
Регистрация: 20.02.2013
Сообщений: 5,418
Записей в блоге: 24
Завершенные тесты: 1
23.08.2016, 15:28 #3
ASM-фрагмент с подсветкой синтаксиса
Assembler
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
_asm
 
{
    xor EAX, EAX //обнуляем регистр EAX
    xor EBX, EBX //обнуляем регистр EBX 
    xor ECX, ECX //обнуляем регистр ECX 
    mov EAX, x   //EAX = x
    mov EBX, y   //EBX = y
    cmp EAX,EBX  //сравниваем x и y
    jl m       //Если x<y, то переходим на метку m 
    jg b       //Если x>y, то переходим на метку b je  
    ex       //Если x=y, то ничего не делаем
    m:
    mov EAX, x   //EAX = x
    mul EAX      //EAX = x*x
    mov ECX,EAX  //ECX = EAX = x*x
    mov EAX, x   //EAX = x
    mov EBX, 2   //EBX = 2
    mul EBX      //EAX = EAX*EBX = 2*x
    sub ECX, EAX //ECX = ECX - EAX = x*x - 2*x
    mov z,ECX    //Записываем результат в z
    jmp ex       //Прыгаем на метку ex
    b:
    mov EAX, y   //EAX = y
    mul EAX      //EAX = y*y
    mov z, EAX   //Записываем результат в z
    ex:
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2016, 15:28

Error C2143: синтаксическая ошибка: отсутствие ";" перед "<<"
Программа Microsoft Visual C++ 2010 // площадь прямоугольника.cpp: главный...

error C2143: синтаксическая ошибка: отсутствие ";" перед "using"
Сколько смотрю в код, не могу найти где я ошибку совершил, возможно вы...

Error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
Вот текст класса, где собственно говоря вылезает ошибка. Где я мог пропустить...


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

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

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