Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2009, 17:55   #1
FUNNY_SAM
 
Аватар для FUNNY_SAM
 
Регистрация: 02.12.2009
Сообщений: 7
По умолчанию Взаимодействие С++ и ASM

Здравствуйте. решил попробовать научтся сделать связь между с++ и asmом.
Цитата:
ASMCODE
.286
.model small
EXTRN _razrabotchic:near
.stack 100h


out_str_xy macro x,y,st_o
pusha
gotoxy x,y
mov ah,9
lea dx,st_o
int 21h
popa
endm

gotoxy macro x,y
pusha
mov ah,2
xor bx,bx
mov dh,y
mov dl,x
int 10h
popa
endm


.code

PUBLIC scr

scr proc near
push bp
mov bp,sp
mov ax,0b800h
mov es,ax
xor ax,ax
mov ax,1010h
xor di,di
mov cx,[bp+4]*[bp+6]
rep stosw
pop bp
ret
scr endp


PUBLIC _asmdraw

push bp
mov bp,sp

call _razrabotchic

push @data
pop ds
mov ax,3
int 10h
mov ax,1
int 33h

;risovanie

push 0b800h
pop es
mov ax,2000h
mov di,[bp+8]*[bp+6]
mov cx,[bp+4]
rep stosw
out_str_xy 60,0,sck

mov ah,0AH
int 21h

_asmdraw endp

.data
sck db "text$"

buffer dw 255 DUP(0)

end
Цитата:
C++code
#include <stdio.h>
#include <conio.h>


EXTERN "C" void razrabotchic()
{
printf("blablabal");
}
EXTERN "C" cdecl void asmdraw(int, int, int);
EXTERN "C" pascal void scr(int,int)

void main(void)
{
int x, y, a;
printf("\n vvidite X=");
scanf("%d",&x);
printf("\n Vvedite Y=");
scanf("%d", &y);
printf("\n vvedite color:");
scanf("%d", &a);

scr(80,30);
asmdraw(y,a,x);

return 0;
}
вроде бы все сделал как написано в книге но при компиляции выдает ошибки. подскажие что не так

компилю через батник
Цитата:
D:\bc\bc\BIN\BCC.EXE -c -v lab1.CPP
TASM.EXE /la /zi lab1_1.ASM
TLINK /v D:\bc\bc\LIB\C0S.OBJ lab1.OBJ lab1_1.OBJ, PROGRAMM.EXE, PROGRAMM.MAP, D:\bc\bc\LIB\CS.LIB
pause


а да чуть не забыл это програмка должна рисовать прямоугольник с заданными координатами и цветов. Вначале писал чисто на asmе вот что должно получится
FUNNY_SAM вне форума Ответить с цитированием
Старый 02.12.2009, 18:58   #2
FUNNY_SAM
 
Аватар для FUNNY_SAM
 
Регистрация: 02.12.2009
Сообщений: 7
По умолчанию

исправил некоторые ошибки но все ровно результата нет
Цитата:
то что исправил
.286
.model small
PUBLIC _razrabotchic:near
.stack 100h


out_str_xy macro x,y,st_o
pusha
gotoxy x,y
mov ah,9
lea dx,st_o
int 21h
popa
endm

gotoxy macro x,y
pusha
mov ah,2
xor bx,bx
mov dh,y
mov dl,x
int 10h
popa
endm


.code

PUBLIC scr

scr proc near
push bp
mov bp,sp
mov ax,0b800h
mov es,ax
xor ax,ax
mov ax,1010h
xor di,di
push ax
mov ax,[bp+6]
mul [bp+8]
mov cx,ax
xor ax,ax
pop ax

rep stosw
pop bp
ret
scr endp


PUBLIC _asmdraw

push bp
mov bp,sp

call _razrabotchic

push @data
pop ds
mov ax,3
int 10h
mov ax,1
int 33h

;risovanie

push 0b800h
pop es
mov ax,2000h
push ax
mov ax,[bp+10]
mul [bp+8]
mov di,ax
mov cx,[bp+6]
xor ax,ax
pop ax

rep stosw
out_str_xy 60,0,sck

mov ah,0AH
int 21h

_asmdraw endp

.data
sck db "SCK Corporation$"

buffer dw 255 DUP(0)

end



FUNNY_SAM вне форума Ответить с цитированием
Старый 02.12.2009, 21:37   #3
FUNNY_SAM
 
Аватар для FUNNY_SAM
 
Регистрация: 02.12.2009
Сообщений: 7
По умолчанию

помогите кто нито исправить ошибки...ни как не выходит
FUNNY_SAM вне форума Ответить с цитированием
Старый 02.12.2009, 21:59   #4
Д'якон
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 236
По умолчанию

Не знаю какие у Вас ошибки и что Вы хотите сделать. Но когда я работал с с++ и асмом, то на асме писал прогу (ассемблер - масм), потом компилил объектный файл и включал объектный файл в с++ при линковке. Вот и все
Д'якон вне форума Ответить с цитированием
Старый 02.12.2009, 23:45   #5
FUNNY_SAM
 
Аватар для FUNNY_SAM
 
Регистрация: 02.12.2009
Сообщений: 7
По умолчанию

что я хотел сделать:
вверху есть рисунок программы написаной на асме, здесь мне нужно добится тогоже только через модуль Срр передать параметры(координаты, длину и цвет) в модуль асм, и потом все эт дело скомпилить но не выходит...

вот что выдает при компиляции
Цитата:

D:\$Korsar$\Новая папка (2)\Новая папка (2)>bcc -ID:\$Korsar$\bc5\BIN\BCC.EXE -c
-v lab1.CPP
Borland C++ 5.2 Copyright (c) 1987, 1997 Borland International
Mar 19 1997 17:29:40
lab1.cpp:
Error lab1.cpp 4: Declaration syntax error
Error lab1.cpp 9: Declaration syntax error
*** 2 errors in Compile ***

D:\$Korsar$\Новая папка (2)\Новая папка (2)>TASM.EXE /la /zi lab1_1.ASM
Turbo Assembler Version 2.51 Copyright (c) 1988, 1991 Borland International

Assembling file: lab1_1.ASM
**Error** lab1_1.ASM(3) Undefined symbol: _RAZRABOTCHIC
*Warning* lab1_1.ASM(41) Argument needs type override
**Error** lab1_1.ASM(51) Undefined symbol: _ASMDRAW
**Error** lab1_1.ASM(56) Undefined symbol: _RAZRABOTCHIC
*Warning* lab1_1.ASM(72) Argument needs type override
**Error** lab1_1.ASM(83) Unmatched ENDP: _ASMDRAW
Error messages: 4
Warning messages: 2
Passes: 1
Remaining memory: 466k


D:\$Korsar$\(2)~1\(2)~1>TLINK /v D:\$Korsar$\bc5\LIB\C0S.OBJ +lab1.OBJ + lab1_1.
OBJ, PROGRAMM.EXE, PROGRAMM.MAP, D:\$Korsar$\bc5\LIB\CS.LIB
Turbo Link Version 5.1 Copyright (c) 1992 Borland International
Fatal: Unable to open file 'lab1.obj'

D:\$Korsar$\(2)~1\(2)~1>pause
Для продолжения нажмите любую клавишу . . .
FUNNY_SAM вне форума Ответить с цитированием
Старый 03.12.2009, 00:59   #6
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

все в кучу, напишите сначала рабочую программу на с++
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 13.12.2009, 14:27   #7
FUNNY_SAM
 
Аватар для FUNNY_SAM
 
Регистрация: 02.12.2009
Сообщений: 7
По умолчанию

все я сделал, кому интересно что вышло могу кинуть...
Обсуждение закрыто!
FUNNY_SAM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взаимодействие приложений artemavd Общие вопросы Delphi 22 01.08.2009 20:09
Взаимодействие flash и C#? mrakaziabra Общие вопросы .NET 3 16.07.2008 07:16
взаимодействие с QIP Toxa Общие вопросы Delphi 5 20.06.2008 19:39
Взаимодействие с другим XPAiN Общие вопросы Delphi 3 27.05.2008 14:31