С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
agusikdeon
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 9
#1

asm вставка в C++ - C++

22.11.2010, 16:29. Просмотров 801. Ответов 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
#include "stdafx.h"
#include <iostream>
#include <fstream>
 
using namespace std;
 
slozh(int* pi1, int si1);
 
int _tmain(int argc, _TCHAR* argv[])
{int massiv[]={1,3,8,16,6,7,11,4,6};
int abc=sizeof(massiv)/4;
slozh (massiv,abc);
 
cout<<abc<<endl;
return 0;}
slozh(int* pi1, int abc)
{int sizea=abc;
 
_asm{
    mov ECX,dword ptr sizea
    push EBX
    mov EBX,EDI
    mov EDI,dword ptr pi1
    mov Eax,0
    mov abc,Eax
k:  mov AX, word ptr [EDI]
    add word ptr abc, AX
    mov AX, word ptr [EDI+2]
    adc word ptr abc+2, AX
    add EDI, 12
    loop k
    mov EDI,EBX
    pop EBX
}
 
return abc;}
функция должна складывать каждый третий элемент массива
а потом нужно вывести это число на экран
но программа постоянно выводит 9
как будто с переменной abc ничего не происходит
помогите пожалуйста сделать!
Заранее Спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2010, 16:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос asm вставка в C++ (C++):

asm вставка в C++ - C++
#include &lt;iostream&gt; int a = 10; void func( int&amp; aIn ) { __asm { mov aIn, 15 } }

Вставка asm в С++ - C++
Здравствуйте! Помогите пожалуйста! Задание: Вычислить арифметическое выражение. Требуется написать функцию на языке C++ с вставкой на...

asm вставка в C++ часть 2 - C++
есть код. за его написание отдельное спасибо Kastaneda) #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int...

Asm вставка в С++ возвести число в степень - C++
Возвести число А в степень n (на Assemblerе в С++)

Asm вставка и возвращаемое системе значение - C++
Здравствуйте. Почему эта программа #include &lt;iostream&gt; using std::cout; using std::cin; int main() { int z = 0; _asm { ...

Вставка asm, адрес члена локального объекта - C++
TLongInteger &amp; TLongInteger:: operator + (const TLongInteger &amp;Additional) { TLongInteger Result; asm { } return...

1
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,389
Записей в блоге: 2
Завершенные тесты: 1
22.11.2010, 19:29 #2
А вам не кажется, что вы перемудрили с АСМом? Вот, все работает:
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
int slozh(int* pi1, int si1);
 
int main()
{int massiv[]={1,3,8,16,6,7,11,4,6};
int abc=sizeof(massiv)/4;
abc=slozh (massiv,abc/3);
 
cout<<abc<<endl;
cin.peek();
return 0;}
int slozh(int* pi1, int abc)
{
_asm{
   mov ebx,pi1
   mov ecx,abc
   xor eax,eax
L: add eax,[ebx]
   add ebx,12
   loop L
    }
}
Добавлено через 3 минуты
и еще, ваш код вообще компилится?
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2010, 19:29
Привет! Вот еще темы с ответами:

c++ и ASM - C++
помогите найти ошибку #pragma once #include &lt;stdlib.h&gt; #include &lt;iostream&gt; class bbyte { private: void...

c++ asm - C++
_asm {} какие библиотеки нужно подключать , чтобы заставить работать ассемблер на с++ и как правильно записывать всё это дело ...

C++ и ASM - C++
Всем привет. Необходимо посчитать уравнение на языке ASM и вывести ответ на языке С++. Вот готовая программа на ASM с выводом на...

asm в VS - C++
вот такой код не работает. строит нормально, но во время запуска выводит &quot;необр. искл&quot; пытаюсь запустить слип() #include &lt;Windows.h&gt; ...


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

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

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