Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 14

Реализуйте вычисление заданного выражения как ассемблерную вставку

13.11.2016, 10:50. Показов 2653. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет! Такая проблема:
Настройку среды делал как написано тут "https://habrahabr.ru/post/252647/"
Само задание:
Примечания к заданиям:
- Реализуйте вычисление заданного выражения как ассемблерную вставку в программе на языке высшего уровня (Паскаль, С++ и т.д.).
- Программа на языке высшего уровня должна запрашивать значения переменных и выводить результат на экран.
- Все переменные являются целочисленными.

1-1. ((A* X2) div (B * X2)) div (X * Y + 1)

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
#include <stdio.h>
#include <cstdio>
#include <stdlib.h>
 
void main()
{
    int  a, b, x, y, x2, result;
    a = 88;
    b = 2;
    x2 = 5;
 
    x = 2;
    y = 5;
    result = 0;
    __asm {
        MOV EAX, x
        MOV EBX, y
        IMUL EBX
        INC EAX
        PUSH EAX
 
        MOV EAX, b
        MOV EBX, x2
        IMUL EBX
        PUSH EAX
 
        MOV EAX, a
        IMUL EBX
 
        POP EBX
        IDIV EBX
 
        XOR EDX, EDX
        POP EBX
        IDIV EBX
 
        MOV result, EAX
    }
    printf("C_Result = %d\n", ((a * x2) / (b * x2)) / (x * y + 1)); 
    printf("ASM_Result = %d\n", result);
 
 
}
Код ошибки: 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Bu ildCustomizations\masm.targets(50,5): error MSB3721: выход из команды "ml.exe /c /nologo /Zi /Fo"Debug\Asm_Source1.obj" /Fl"ConsoleApplication1.lst" /W3 /errorReport:prompt /TaAsm_Source1.asm" с кодом "1". И кидает на страницу masm.targets
Пишу в VisualStudio 2015. Как быть?

Добавлено через 13 минут
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1>------ Сборка начата: проект: ConsoleApplication1, Конфигурация: Debug x64 ------
1>  Assembling Asm_Source1.asm...
1>Asm_Source1.asm(1): error A2034: must be in segment block
1>Asm_Source1.asm(2): error A2034: must be in segment block
1>Asm_Source1.asm(3): error A2034: must be in segment block
1>Asm_Source1.asm(4): error A2034: must be in segment block
1>Asm_Source1.asm(5): error A2034: must be in segment block
1>Asm_Source1.asm(7): error A2034: must be in segment block
1>Asm_Source1.asm(8): error A2034: must be in segment block
1>Asm_Source1.asm(9): error A2034: must be in segment block
1>Asm_Source1.asm(10): error A2034: must be in segment block
1>Asm_Source1.asm(12): error A2034: must be in segment block
1>Asm_Source1.asm(13): error A2034: must be in segment block
1>Asm_Source1.asm(15): error A2034: must be in segment block
1>Asm_Source1.asm(16): error A2034: must be in segment block
1>Asm_Source1.asm(18): error A2034: must be in segment block
1>Asm_Source1.asm(19): error A2034: must be in segment block
1>Asm_Source1.asm(20): error A2034: must be in segment block
1>Asm_Source1.asm(22): error A2034: must be in segment block
1>Asm_Source1.asm(22): error A2088: END directive required at end of file
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\masm.targets(50,5): error MSB3721: выход из команды "ml64.exe /c /nologo /Zi /Fo"x64\Debug\Asm_Source1.obj" /W3 /errorReport:prompt  /TaAsm_Source1.asm" с кодом "1".
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Полный текст ошибки
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2016, 10:50
Ответы с готовыми решениями:

Реализуйте вычисление заданного выражения как ассемблерную вставку в программе на языке высшего уровня С++
Я запихнул в С++ ассемблерную вставку. Задание было такое: Тема 2. Массивы. Примечания к заданиям: Реализуйте вычисление...

Вычисление заданного выражения через ассемблерную вставку
Необходимо реализовать вычисление заданного выражения как ассемблерную вставку в программе на языке высшего уровня: 1) \sum...

Реализовать вычисление выражения как ассемблерную вставку
Есть выражение, вывод которого должен выводиться в консоль как через АСМ, так и С++. С с++ все понятно, но синтаксис АСМа мне далек. Не...

4
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
13.11.2016, 11:01
Лучший ответ Сообщение было отмечено AsphaltHero как решение

Решение

В настройки не фиг соваться без надобности, при установке все параметры устанавливаются рабочие.
Вот в пятнашке подправил твой код, асм не трогал, все компилируется и работает (убери ненужные библиотеки вверху)
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
#include "stdafx.h"
#include <stdio.h>
#include <cstdio>
#include <stdlib.h>
#include <iostream>
 
void main()
{
    int  a, b, x, y, x2, result;
    a = 88;
    b = 2;
    x2 = 5;
 
    x = 2;
    y = 5;
    result = 0;
    __asm {
        MOV EAX, x
        MOV EBX, y
        IMUL EBX
        INC EAX
        PUSH EAX
 
        MOV EAX, b
        MOV EBX, x2
        IMUL EBX
        PUSH EAX
 
        MOV EAX, a
        IMUL EBX
 
        POP EBX
        IDIV EBX
 
        XOR EDX, EDX
        POP EBX
        IDIV EBX
 
        MOV result, EAX
    }
    
    std::cout << result << std::endl;
    system("pause");
    
}
выдает 4.

1
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 14
13.11.2016, 11:14  [ТС]
Благодарю. И правда все заработало!)
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
13.11.2016, 11:17
AsphaltHero, отходи от сишных scanf, printf.
1
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 14
13.11.2016, 12:09  [ТС]
Понял. Просто опыта еще мало. Приму к сведению. Thanks
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2016, 12:09
Помогаю со студенческими работами здесь

Вычисление суммы ряда через ассемблерную вставку
Вычислить сумму ряда , используя ассемблерные вставки. Фото вставил внизу! программа должна быть на подобии: program sd; var...

Как сделать ассемблерную вставку?
Нужно сложить два числа. Не могу понять ошибки вроде примеры смотрел вставки делаются именно так #include &lt;iostream&gt; #include...

Как сделать ассемблерную вставку в с++ ?
void encode_symbol (short int symbol ) { long range=0; asm{ mov ax,high //---------------находим range-------------- ...

Как сделать ассемблерную вставку на с++?
Вроде бы ничего нет сложного, код очень простой, и много где есть, но не идет код У меня c++ BorlandC 3.0, ассемблер MASM использую. Взял...

Как сделать ассемблерную вставку
Доброе время суток: подскажите хотя бы теоретично как сделать ассемблерную вставку в код паскаля? например есть программа : ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru