Announcement

Collapse
No announcement yet.

Assembler + Kernel aus C++

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Assembler + Kernel aus C++

    Hallo zusammen
    Habe mich schon seit Monaten mit C++ ein bisschen beschäftigt
    Ich bin nicht sicher ob dieser Artikel hierher gehört, falls nicht,soll mich jemand korrigieren XD
    Ich wollte euch fragen weiss jemand wie ich einen Bootloader mit C++ Kernel schreiben kann.
    Ich habe gelesen, dass man auch in C++ Assembler schreiben kann, aber der Bootloader muss doch mit der Adresse anfangen und mit einer Bootmarkierung enden. Also kann ich denn Bootloader nicht in ein C++ File integrieren ??
    (Ich habe schon einen Bootloader geschrieben, jediglich gibt der einen Text aus)

    Lg Methos

  • #2
    Was ist ein Kernel aus C++?
    Christian

    Comment


    • #3
      Ich meine einen Windows Kernel basierend auf C++. Nun mein Problem : ich muss aus meinem ASM File den Kernel laden... aber ich habe keine Ahnung wie das geht ...
      XD

      LG

      Comment


      • #4
        Mir ist unverständlich was du machen willst.

        Üblicherwweise kann man dem Linker sagen, dass er den Code beginnend mit Adresse xy erzeugen soll. Dann bekommst du eine auf diese Adresse zugeschnittenen Code
        Christian

        Comment


        • #5
          Kannst du etwa sowas gebrauchen -->(MASM)
          Code:
          ;------------------------------------------------------------
          .286							   ; CPU type
          ;------------------------------------------------------------
          .model TINY						   ; memory of model
          ;---------------------- EXTERNS -----------------------------
          extrn				_BootMain:near	   ; prototype of C func
          ;------------------------------------------------------------
          ;------------------------------------------------------------   
          .code   
          org				07c00h		   ; for BootSector
          main:
          				jmp short start	   ; go to main
          				nop
          						
          ;----------------------- CODE SEGMENT -----------------------
          start:	
                  cli
                  mov ax,cs               ; Setup segment registers
                  mov ds,ax               ; Make DS correct
                  mov es,ax               ; Make ES correct
                  mov ss,ax               ; Make SS correct        
                  mov bp,7c00h
                  mov sp,7c00h            ; Setup a stack
                  sti
                                          ; start the program 
                  call           _BootMain
                  ret
                  
                  END main                ; End of program
          _BootMain ist dann in dem C-File, das musst du anschliessend mit dem ASM-File linken

          Hoffe ich konnte helfen

          LG Mr. Finch

          Comment

          Working...
          X