Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Анд_Рей
3 / 4 / 1
Регистрация: 27.12.2009
Сообщений: 173
#1

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

27.09.2013, 22:18. Просмотров 647. Ответов 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 Ассемблер
struct TPID { float Kp; // Коэффициенты П, И и Д - звеньев ...

Формула , ассемблер.
Дана формула.(изображение). z=a3 * x3 +...+ a0 * x0 #include &lt;iostream&gt;...

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

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

C++ + Ассемблер = проблема
Добрый день. Вот такой код #include &lt;iostream&gt; #include &lt;windows.h&gt; using...

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

3
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 / 1
Регистрация: 27.12.2009
Сообщений: 173
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)
Доброго вечера. Формулу представленную в изображении расписал в след. коде : ...

Вопрос к знатокам (ООП + ассемблер)
Ниже представлены три тестовых класса. Первый - классическая модель классов...

немогу всавить ассемблер в код
пишу такой код: #include &lt;iostream&gt; int main(){ int a = 1; int...

как перевести код c++ на ассемблер
выручайте как перевести код на c++ перевести на ассемблер, вот код если что...


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

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

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