Форум программистов, компьютерный форум 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 application. // #include "stdafx.h" #include <iostream> using std::cout; using std::cin; using std::endl; #include <ctime> http://www.cyberforum.ru/cpp-beginners/thread329171.html
Вопрос: что такое ключ в списках? C++
Вопрос: что такое ключ в списках? Код из литературы: Функции вставки и удаления элемента в односвязном списке. /*Функция вставки элемента с ключом k в конец списка, заданного указателем *p на его начало */ ft *add(ft *p, int x) { ft *h=new(ft), *c; //выделяем память под элемент h->val=k; //записываем туда ключ c = p; //сохраняем начало списка if (p==NULL) //если список пуст { c=h;...
Удалить из строк все цифры C++
Здравствуйте. Изучаю си, дошел до заданий со строками. Задания однотипные, но всё же возникли трудности. Помогите написать шаблон. Заранее благодарен. 1) Дано K литерных строк. Написать программу, которая удаляет из них все цифры. Полученные строки отсортировать методом "пузырька" по убыванию количества латинских букв. 2) Дано M литерных строк. Написать программу, которая заменяет каждую...
C++ Как выводить строки в unicode? http://www.cyberforum.ru/cpp-beginners/thread329154.html
почему не выводит на экран строки в формате unicode? в win32 прикрасно работает, а в консоле не выводит... #include <iostream> #include <windows.h> using namespace std; int main() { WCHAR word=L"привет"; wcout << word << endl;
C++ производственно-технологическая практика люди!!!...помогите пожалуйста!я не понимаю язык С++...вот 4 задания: 1) натуральное число называется совершенным если оно равно сумме всех своих делителей за исключением себя самого.число 6 - совершенное, тк 1+2+3=6.дано натуральное число n.получить все совершенные числа меньше n. 2)целочисленная величина а=1.используя операции дизъюнкции и сдвига получить b=111111 в восьмеричной системе... подробнее

Показать сообщение отдельно
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
04.07.2011, 00:23     C++ и ASM
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();
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru