🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
7 messages
7 total messages Started by Piotr Kasprzak Thu, 21 Mar 1996 19:33
ASM in C++ einbinden
#1873
Author: Piotr Kasprzak
Date: Thu, 21 Mar 1996 19:33
35 lines
1091 bytes
Hi !

Ist es irgendwie moeglich ASM-Routinen (zB. in Form von TASM-Objs) in C++- 
OBJEKTE so einzubinden, dass sie sich nahtlos in die C++-Konzepte  
integrieren ? Also zum Beispiel:

                .model small, C
                .code

PROC    routine
        ret
ENDP

                .end

und dann:

class x {

   void routine();

   ...
};

Ich hab' schon versucht beide Module ineinander zu linken, ging aber  
nicht, da 'routine' (logischerweise) nicht als 'x::routine' erkannt wurde.  
Andererseits kann ich in dem ASM-Modul die Routine nicht 'x::routine'  
nennen, da TASM offensichtlich was gegen das 'x::' hat.

Hat jemand irgendeine Loesung ???

c-ya,
Piotr
-- 
Piotr.Kasprzak@xyz.prima.ruhr.de                http://www.prima.ruhr.de
Re: ASM in C++ einbinden
#1875
Author: Andreas Huennebeck
Date: Fri, 22 Mar 1996 08:51
62 lines
2085 bytes
In article <65GvlHBNWSB@xyz.prima.ruhr.de>, Piotr.Kasprzak@xyz.prima.ruhr.de (Piotr Kasprzak) writes:
> Ist es irgendwie moeglich ASM-Routinen (zB. in Form von TASM-Objs) in C++- 
> OBJEKTE so einzubinden, dass sie sich nahtlos in die C++-Konzepte  
> integrieren ? Also zum Beispiel:
> 
>                 .model small, C
>                 .code
> 
> PROC    routine
>         ret
> ENDP
> 
>                 .end
> 
> und dann:
> 
> class x {
> 
>    void routine();
> 
>    ...
> };
> 
> Ich hab' schon versucht beide Module ineinander zu linken, ging aber  
> nicht, da 'routine' (logischerweise) nicht als 'x::routine' erkannt wurde.  
> Andererseits kann ich in dem ASM-Modul die Routine nicht 'x::routine'  
> nennen, da TASM offensichtlich was gegen das 'x::' hat.

Probier es doch mal damit (nicht probiert, nur eine Idee):

                .model small, C
                .code

PROC    my_asm_routine
        ret
ENDP

                .end

und dann:

class x {

   void routine() { my_asm_routine(); }

   ...
};

Damit umgehst du das "x::". Falls du in my_asm_routine auf Memberdaten 
zugreifen willst, musst do den this-Zeiger mit uebergeben.

Tschau
Andreas

---------------------------------------------------------------------
    |               /\         
   / \   ^       /\/  \  _     Andreas Huennebeck 
  /   \ / \/\   /      \/ \    Bruker Analytische Messtechnik GmbH
 /     \     \ /           \   email: ah@bruker.de
/       \     /             \
Kletterer und Natur gemeinsam am Seil: keine weiteren Felssperrungen!
----------------------------------------------------------------------
Re: ASM in C++ einbinden
#1894
Author: Haiko Emmel
Date: Mon, 25 Mar 1996 09:03
24 lines
1139 bytes
Piotr.Kasprzak@xyz.prima.ruhr.de (Piotr Kasprzak) wrote:

>Hi !

>Ist es irgendwie moeglich ASM-Routinen (zB. in Form von TASM-Objs) in C++- 
>OBJEKTE so einzubinden, dass sie sich nahtlos in die C++-Konzepte  
>integrieren ?

Im Prinzip muß das gehen, zumal TASM ja auch irgendwie
OO-Erweiterungen besitzen soll. Um das rauszubekommen könntest Du doch
einfach so vorgehen: Deine Klasse, die Du in Assembler codieren
möchtest, in C++ als Gerüst vorformulieren und mit dem C++-Compiler in
Assemblercode übersetzen (-S glaube ich als Option). Dann hast Du
einen Rahmen für Dein Assemblerprogramm, welchen Du 'nur' noch
ausfüllen mußt.

Gruß


--
Haiko Emmel
CI$ 100321,1321
Hessischer Rundfunk
Frankfurt
Re: ASM in C++ einbinden
#1893
Author: Haiko Emmel
Date: Mon, 25 Mar 1996 09:06
24 lines
1139 bytes
Piotr.Kasprzak@xyz.prima.ruhr.de (Piotr Kasprzak) wrote:

>Hi !

>Ist es irgendwie moeglich ASM-Routinen (zB. in Form von TASM-Objs) in C++- 
>OBJEKTE so einzubinden, dass sie sich nahtlos in die C++-Konzepte  
>integrieren ?

Im Prinzip muß das gehen, zumal TASM ja auch irgendwie
OO-Erweiterungen besitzen soll. Um das rauszubekommen könntest Du doch
einfach so vorgehen: Deine Klasse, die Du in Assembler codieren
möchtest, in C++ als Gerüst vorformulieren und mit dem C++-Compiler in
Assemblercode übersetzen (-S glaube ich als Option). Dann hast Du
einen Rahmen für Dein Assemblerprogramm, welchen Du 'nur' noch
ausfüllen mußt.

Gruß


--
Haiko Emmel
CI$ 100321,1321
Hessischer Rundfunk
Frankfurt
Re: ASM in C++ einbinden
#1892
Author: Haiko Emmel
Date: Mon, 25 Mar 1996 09:07
24 lines
1139 bytes
Piotr.Kasprzak@xyz.prima.ruhr.de (Piotr Kasprzak) wrote:

>Hi !

>Ist es irgendwie moeglich ASM-Routinen (zB. in Form von TASM-Objs) in C++- 
>OBJEKTE so einzubinden, dass sie sich nahtlos in die C++-Konzepte  
>integrieren ?

Im Prinzip muß das gehen, zumal TASM ja auch irgendwie
OO-Erweiterungen besitzen soll. Um das rauszubekommen könntest Du doch
einfach so vorgehen: Deine Klasse, die Du in Assembler codieren
möchtest, in C++ als Gerüst vorformulieren und mit dem C++-Compiler in
Assemblercode übersetzen (-S glaube ich als Option). Dann hast Du
einen Rahmen für Dein Assemblerprogramm, welchen Du 'nur' noch
ausfüllen mußt.

Gruß


--
Haiko Emmel
CI$ 100321,1321
Hessischer Rundfunk
Frankfurt
Re: ASM in C++ einbinden
#1897
Author: Haiko Emmel
Date: Mon, 25 Mar 1996 10:47
24 lines
1139 bytes
Piotr.Kasprzak@xyz.prima.ruhr.de (Piotr Kasprzak) wrote:

>Hi !

>Ist es irgendwie moeglich ASM-Routinen (zB. in Form von TASM-Objs) in C++- 
>OBJEKTE so einzubinden, dass sie sich nahtlos in die C++-Konzepte  
>integrieren ?

Im Prinzip muß das gehen, zumal TASM ja auch irgendwie
OO-Erweiterungen besitzen soll. Um das rauszubekommen könntest Du doch
einfach so vorgehen: Deine Klasse, die Du in Assembler codieren
möchtest, in C++ als Gerüst vorformulieren und mit dem C++-Compiler in
Assemblercode übersetzen (-S glaube ich als Option). Dann hast Du
einen Rahmen für Dein Assemblerprogramm, welchen Du 'nur' noch
ausfüllen mußt.

Gruß


--
Haiko Emmel
CI$ 100321,1321
Hessischer Rundfunk
Frankfurt
Re: ASM in C++ einbinden
#1906
Author: Volkmar Kostka
Date: Mon, 25 Mar 1996 13:44
74 lines
2208 bytes
In article <1996Mar22.085108.337@bam.bruker.de>,
   ah@teddy.software.bruker.de (Andreas Huennebeck) wrote:
>In article <65GvlHBNWSB@xyz.prima.ruhr.de>, Piotr.Kasprzak@xyz.prima.ruhr.de 
(Piotr Kasprzak) writes:
>> Ist es irgendwie moeglich ASM-Routinen (zB. in Form von TASM-Objs) in C++- 
>> OBJEKTE so einzubinden, dass sie sich nahtlos in die C++-Konzepte  
>> integrieren ? Also zum Beispiel:
>> 
>>                 .model small, C
>>                 .code
>> 
>> PROC    routine
>>         ret
>> ENDP
>> 
>>                 .end
>> 
>> und dann:
>> 
>> class x {
>> 
>>    void routine();
>> 
>>    ...
>> };
>> 
>> Ich hab' schon versucht beide Module ineinander zu linken, ging aber  
>> nicht, da 'routine' (logischerweise) nicht als 'x::routine' erkannt wurde. 
 
>> Andererseits kann ich in dem ASM-Modul die Routine nicht 'x::routine'  
>> nennen, da TASM offensichtlich was gegen das 'x::' hat.
>
>Probier es doch mal damit (nicht probiert, nur eine Idee):
>
>                .model small, C
>                .code
>
>PROC    my_asm_routine

besser
PROC     _my_asm_routine

>        ret
>ENDP
>
>                .end
>
>und dann:
>

extern "C" my_asm_routine();

nicht vergessen.


>class x {
>
>   void routine() { my_asm_routine(); }
>
>   ...
>};
>
>Damit umgehst du das "x::". Falls du in my_asm_routine auf Memberdaten 
>zugreifen willst, musst do den this-Zeiger mit uebergeben.
>
>Tschau
>Andreas
>

 | (small signature)   | Volkmar Kostka (TPS GmbH - Germany) |
 | CHAOS PROGRAMMING   | Volkmar.Kostka@tps.de               |
 | HUMANOID            | Phone: +49 9103 506 144             |
 | (original shrinked) | FAX:   +49 9103 506 281             |
 LARGE SIGNATURE AVAILABLE ON REQUEST
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads