Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Анд_Рей
3 / 4 / 0
Регистрация: 27.12.2009
Сообщений: 161
#1

c++ и ассемблер - C++

27.09.2013, 22:18. Просмотров 609. Ответов 3
Метки нет (Все метки)

есть процедура на ассемблер

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.model small
 
.code
 
_count proc
    push bp
    xor ebp, ebp
    mov bp, sp
    mov eax, [bp+4]
    add eax, 15D
    pop bp
    ret
_count endp
 
end
а вот ее вызов
C++
1
2
3
4
5
6
7
8
9
#include<iostream>
 
extern "C" int count(int x);
 
void main()
{
    std::cout << count(10) << std::endl;
    getchar();
}
вместо 25(10+15) выводится,что-то типа 1699151887
Что я сделал не так??
Спасибо!

Добавлено через 1 час 15 минут
ошибку исправил
проблема была тут
Assembler
1
pop ebp ; вместо pop bp
но программа выводит 15 вместо 25...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2013, 22:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос c++ и ассемблер (C++):

Си VS Ассемблер - C++
struct TPID { float Kp; // Коэффициенты П, И и Д - звеньев float Ki; float Kd; float...

Компилятор с С++ на Ассемблер - C++
Доброго времени суток. Учусь в институте на заочке, по предмету Теория Языков Программирования дали препода с другого универа и она дала...

Формула , ассемблер. - C++
Дана формула.(изображение). z=a3 * x3 +...+ a0 * x0 #include &lt;iostream&gt; #include &lt;math.h&gt; int main(){ int i; int x=...

С++, ассемблер, литература - C++
Здравствуйте. Кто-нибудь знает почему при переходе с с++ на ассемблер и из ассемблера на с++ выводит ■. Как вывести нормальное число? И...

C++ + Ассемблер = проблема - C++
Добрый день. Вот такой код #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; WORD NUM; void main() ...

Работа с файлами. С++ и Ассемблер - C++
Написать программу, где рандомно задается матрица MxN и записать в файл 1. (Это на ++). Затем транспонировать эту матрицу с помощью...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ab
75 / 75 / 1
Регистрация: 03.05.2012
Сообщений: 161
28.09.2013, 01:38 #2
1. Если среда 32-битная, то не должно быть никаких BP, SP. Только EBP и ESP.
2. Первый параметр функции доступен через
Assembler
1
mov eax, [ebp+8]
0
Анд_Рей
3 / 4 / 0
Регистрация: 27.12.2009
Сообщений: 161
28.09.2013, 03:47  [ТС] #3
Цитата Сообщение от Ab Посмотреть сообщение
1. Если среда 32-битная, то не должно быть никаких BP, SP. Только EBP и ESP.
2. Первый параметр функции доступен через
Assembler
1
mov eax, [ebp+8]
теперь я получаю ошибку:
Unhandled exception at 0x00d81450 in asm.exe: 0xC0000005: Access violation reading location 0x0000f810.
0
Ab
75 / 75 / 1
Регистрация: 03.05.2012
Сообщений: 161
28.09.2013, 08:06 #4
Еще модель должна быть flat, конечно же.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2013, 08:06
Привет! Вот еще темы с ответами:

Ассемблер , сопроцессор .(fld) - C++
Доброго вечера. Формулу представленную в изображении расписал в след. коде : #include &lt;cstdlib&gt; #include &lt;iostream&gt; using...

Разработать простой двухпросмотровый ассемблер - C++
Уважаемые программисты, помогите создать программу на языке С++, простой двухпросмотровый ассемблер, предназначенный для перевода в...

Разработать простой двухпросмотровый ассемблер - C++
Нужно разработать простой двухпросмотровый ассемблер. Есть кое какие наброски

как перевести код c++ на ассемблер - C++
выручайте как перевести код на c++ перевести на ассемблер, вот код если что срочно надо #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.09.2013, 08:06
Ответ Создать тему
Опции темы

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