Kann ich mit dem BCB6 Assembler programmieren?Wenn ja wie?



  • Frage siehe Topic?!

    Sollte es gehen, wie mach ich das? Als Konsolenexperte oder wie?



  • bwz habe ich es so veruscht:

    #pragma hdrstop
    
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
     _asm
     {
      TITLE Das erste Programm			;Diese Zeile ist optional
    IDEAL						;IDEAL-Modus einschalten
    MODEL SMALL					;Speichermodell
    STACK 100					;100 Bytes für den Stack
    DATASEG						;Beginn des Datensegments
    	derText db 'Das erste Programm$'	;1.
    CODESEG						;Beginn des Codesegmentes
    start:						;2.
    	STARTUPCODE
    	  mov ah, 009h				;3.
    	  mov dx, OFFSET derText		;4.
    	  int 21h				;5.
    	EXITCODE
    END start					;6.
     }       return 0;
    }
    //---------------------------------------------------------------------------
    

    dieser code ist einfach aus einem tutorial eingefügt!

    Er bringt aber jedes wort als fehler, also kann es ja so nicht gehen, oder?

    Wie mach ich es denn richtig?



  • Du kannst entweder externe ASM-Dateien in dein Projekt einbinden oder Inline-Assembler (asm {...}) verwenden. Verwendest du Inline-Assembler, kannst du allerdings AFAIK keine Direktiven verwenden.



  • ok, und wie müsste der obige code aussehen?

    denn so kann ich ihn nicht ausführen!



  • halloduda schrieb:

    ok, und wie müsste der obige code aussehen?

    denn so kann ich ihn nicht ausführen!

    So kannst du ihn nicht ausführen, weil er eine Menge Direktiven enthält und zudem ein DOS-Interrupt anspringt, was in einem Win32-Programm nicht gehen dürfte. Wenn du für Win32 programmieren möchtest, mußt du auf die Funktionen der WinAPI oder der Standard-Library zurückgreifen.

    Wenn du 16-Bit-DOS-Applikationen schreiben willst solltest du dir einen Assembler wie MASM oder NASM und einen passenden 16-Bit-Linker besorgen. Mit dem TASM32, der dem BCB6 beiliegt, ist die Erstellung von 16-Bit-Programmen AFAIK nicht möglich.



  • hm...aber der komplette obere code ist aus einem tutorial für TASM der beim Borland beiliegt....=/



  • halloduda schrieb:

    hm...aber der komplette obere code ist aus einem tutorial für TASM der beim Borland beiliegt....=/

    TASM ist die 16-Bit-Version des Turbo Assembler; der Code dürfte unter TASM32 aus den genannten Gründen nicht laufen.
    Falls du Assembler unter Win32 programmieren willst, suche dir am besten ein aktuelleres Tutorial.


Anmelden zum Antworten