Like Tree1Danke
  • 1 Beitrag von sheel
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
1296
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    üäpöol ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    201
    Hi,

    ich hoffe der Titel ist nicht komplett verwirrend und ich bin im richtigen Forum.
    Ich schreibe zurzeit an meinem eigenen kleinen OS und gehe nach diesem Tutorial vor: http://www.tutorials.de/content/171-...ebssystem.html
    Ich habe schon ein bisschen gecodet und stoße immer wieder auf ein komisches Problem. Wenn ich versuche die boot.bin und die kernel.bin zu kopieren, kopiert die cmd manchmal nur die boot.bin und einen kleinen Teil der kernel.bin... Das tritt immer wieder im Zusammenhang mit dem cmp Befehl und/oder Registeraufrufen. Ein Beispiel:
    [ASM]
    mov ax, word [Variable1]
    sub ax, word [Variable2]
    [ASM]
    funktioniert nicht (zumindest an manchen Stellen in meinem Code)
    Code asm:
    1
    2
    3
    
    mov ax, word [Variable1]
    mov bx, word [Variable2]
    sub ax, bx
    funktioniert.
    Bisher konnte ich alles so umschreiben, dass es funktioniert, jetzt bin ich aber an einer Stelle, an der nicht mal mehr
    Code asm:
    1
    2
    
    cmp ax, word [Variable]
    je Ende
    im Gegensatz zu nur
    Code asm:
    1
    
    cmp ax, word [Variable]
    funkioniert. Andere Sache funktionieren an dieser Stelle ohne Probleme, und auch der obere Code funktioniert nur an dieser Stelle nicht. Der Assembler gibt weder Fehlermeldung noch Warnung aus, aber kopiert werden die beiden Dateien trotzdem nicht.
    Die Datei ist immer jonstant groß, weil ich den Rest der Datei einfach mit Nullen ausfülle.
    Ich hoffe jemand hat einen Ansatz, woran mein Problem liegen könnte.

    Danke im Voraus!
     

  2. #2
    üäpöol ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    201
    Hi,

    mir ist noch etwas aufgefallen.
    Ich wollte wissen, ab welcher Stelle die kernel.bin nicht mehr kopiert wird.
    Das letzte ASCII (?) Zeichen der *.img ist ein SUB. Jetzt hab ich mal nachgseschaut, was das bedeutet (bei Wikipedia http://de.wikipedia.org/wiki/Steuerzeichen). Ich zitiere:
    "Steht als Ersatz für ein Zeichen, das ungültig oder fehlerhaft ist, z. B. wegen eines Paritätsfehlers bei der Übertragung.
    Dateiendezeichen (EOF, End of File) für Textdateien unter CP/M mangels bytegenauer Dateilängen, war anfänglich, obwohl unnötig, auch unter DOS üblich."
    Kann das damit etwas zu tun haben? Alleine, dass etwas von End of File da steht, macht mich schon stutzig. Und inwiefern hat das etwas mit dem Assemblercode zu tun.
    Soll ich mal den ganzen Code posten (ist ein Makro)?
     

  3. #3
    Avatar von sheel
    sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    6.724
    Hi

    nur mal so geraten: Gib beim Copy ein /B an
    üäpöol bedankt sich. 
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  4. #4
    üäpöol ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    201
    Wow! Du bist ein Genie, sheel! Es funktioniert. Gibt's dafür auch noch eine Erklärung?
    EDIT:
    Nicht dafür, dass sheel genial ist, sondern, dass man /b anfügen muss.
     

  5. #5
    üäpöol ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    201
    Oh. Ich hab mich zu früh gefreut. Ich kann das Betriebssystem zwar ausführen, aber das Makro wird nur einmal ausgeführt -> Das Makro zeichnet eine Linie und es wird nur noch eine Linie gezeichnet. Danach stürzt das OS ab. Hat das damit etwas zu tun?
     

  6. #6
    Avatar von sheel
    sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    6.724
    Unter Windows gibts programmiermäßig zwei Arten, um Dateien zu öffnen.
    Text/Binär.
    Einer der Unterschiede: Bei Text wird das Byte -1 als Dateiende verstanden (Binär eben nicht).

    Bin mir nicht sicher, welche Öffnungsart copy generell nimmt bzw. wie die ermittelt wird,
    aber mit /b wird auf jeden Fall Binär genommen.
    Dein Aufruf war wohl im Textmodus und hat bei -1 aufgehört.

    Gruß
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 04.11.11, 19:23
  2. copy () funktioniert nicht
    Von daCrashOverwrite im Forum PHP
    Antworten: 4
    Letzter Beitrag: 13.03.07, 11:46
  3. Flash Popup funktioniert nicht wegen Popupblocker
    Von medienszene im Forum Flash Plattform
    Antworten: 7
    Letzter Beitrag: 30.11.05, 06:28
  4. Copy & paste funktioniert nicht im Maya
    Von syx im Forum Autodesk Maya (ehemals Alias)
    Antworten: 2
    Letzter Beitrag: 16.09.05, 12:01
  5. copy funktioniert nicht
    Von bled im Forum PHP
    Antworten: 5
    Letzter Beitrag: 08.09.04, 11:04

Stichworte