Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C++ и Assembler

46K
26 апреля 2009 года
Mukhitov
15 / / 26.04.2009
Не могу разобраться, как вызывать процедуры с модуля на ассемблере, в программе на C++
Сделал тестовые примеры
mod1.asm
Код:
.486                      ; force 32 bit code
    .model flat, stdcall
    .code



test_proc proc
   
    mov ah, 9
    mov edx,offset message
    int 21h
    ret

test_proc endp

.data
message db "Hello World", 0Dh, 0Ah,'$'
end

tets.cpp
 
Код:
#include <iostream>

void test_proc();
int main()
{

    test_proc();
    return 0;
}

Компилировал так:
 
Код:
ml /c /Gz /coff mod1.asm
cl /c /EHsc /Gz test.cpp
link test.obj mod1.obj

компоновщик ругается так:
 
Код:
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.
test.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __stdcall test_proc(void)" (?test_proc@@YGXXZ) в функции _main
test.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
7
26 апреля 2009 года
@pixo $oft
3.4K / / 20.09.2006
А экспортировать её кто будет?

P.S.Это MAsm,я надеюсь?:)
46K
27 апреля 2009 года
Mukhitov
15 / / 26.04.2009
Цитата: @pixo $oft
А экспортировать её кто будет?

P.S.Это MAsm,я надеюсь?:)


В том то и дело, что не знаю как прикрутить одно к другому.
Да MASM и VC.

7
27 апреля 2009 года
@pixo $oft
3.4K / / 20.09.2006
 
Код:
TestProc Proc Export

EndP
Насколько я помню,по умолчанию соглашение о вызове будет применяться именно такое,как и в C++.В крайнем случае,можно открыть мануал по ML и там прочесть
46K
27 апреля 2009 года
Mukhitov
15 / / 26.04.2009
Спасибо. Вот нашел
http://www.masm32.com/board/index.php?topic=5606.0
так что разобрался
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог