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

C++ и ASM - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ как добавить рисунок в программу? http://www.cyberforum.ru/cpp-beginners/thread329175.html
знаю, что добавляется через меню project -> add resource->bitmap, но эта функция "add resource" неактивная, подскажите как сделать ее активной?
C++ упростить код есть решена задача, надо упростить, из того перебора в инструкции switch() на enum ( перечисленный тип, мб через рандом но чет не выходит ). // xz.cpp : Defines the entry point for the console... http://www.cyberforum.ru/cpp-beginners/thread329171.html
Вопрос: что такое ключ в списках? C++
Вопрос: что такое ключ в списках? Код из литературы: Функции вставки и удаления элемента в односвязном списке. /*Функция вставки элемента с ключом k в конец списка, заданного указателем *p на его...
Удалить из строк все цифры C++
Здравствуйте. Изучаю си, дошел до заданий со строками. Задания однотипные, но всё же возникли трудности. Помогите написать шаблон. Заранее благодарен. 1) Дано K литерных строк. Написать программу,...
C++ Как выводить строки в unicode? http://www.cyberforum.ru/cpp-beginners/thread329154.html
почему не выводит на экран строки в формате unicode? в win32 прикрасно работает, а в консоле не выводит... #include <iostream> #include <windows.h> using namespace std; int main() { WCHAR...
C++ производственно-технологическая практика люди!!!...помогите пожалуйста!я не понимаю язык С++...вот 4 задания: 1) натуральное число называется совершенным если оно равно сумме всех своих делителей за исключением себя самого.число 6 -... подробнее

Показать сообщение отдельно
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
04.07.2011, 00:23
fragnat, тебе нужно написать модуль для C, .model flat, C и так далее.
Далее с компилировать файл .asm в объектный модуль в формате COFF при помощи ML компилера, далее в VC++ есть утилита LIB компилируешь объектный файл в статическую библиотеку .LIB дале уже как обычно цепляешь его к проекту или при помощи IDE или в ручную
#pragma comment(lib, "myMOdule.lib")
// прототип функции объявлять так

extern "C" тело вызываемой функции с таким числом параметров
C++
1
2
3
4
5
6
extern "C" int results(int a, int b);
 
 
void main(void) {
    cout << results(10, 20) << endl;
}
Добавлено через 3 часа 2 минуты
Хотя за чем тебе модуль на встроенный перепеши в C/C++. Небольшой примерчик:

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
46
47
48
49
50
51
52
#include <iostream>
using namespace std;
 
 
// копирование двойных слов - массива
void  dcopy(int*  dst, const int*  src, int len) {
      __asm {
           push ecx
           cld
           mov  ecx, dword ptr len
           mov edi, dst
           mov esi, src
           rep   movsd
           pop ecx
      }
}
 
 
// возвращает kол-во символов строки типа strlen
int  _strlen(const char*  src) {
     int len = 0;
     __asm {
           mov esi, src
next:
           mov al, byte ptr[esi]
           or    al, 0
           jz    end;
           inc   esi
           adc  dword ptr len, 1
           jmp  next;
end:
     };
      return  len;
}
 
 
 
 
void  main(void)
{
    cout << _strlen("Actor-PL/I") << endl;
 
    int  src[3] = { 300, 500, -2000 };
    int  dst[3];
 
    dcopy(dst, src, sizeof(src) / sizeof(int));
 
    for(int i = 0; i < sizeof(dst) / sizeof(int); i++)
          cout << '\t' << dst[i] << endl;
 
     cin.get();
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru