[NASM] AMD Phenom II problem



  • Hallo,

    wollte mir mal die Grundlagen von Assembler aneigenen, habe inzwischen sehr sehr viel Theorie gelesen (Prozessorstrukturen, Register, ...) und wollte nun endlich mal einen funktionierenden code sehen, um mir daran die Befehle zu veranschaulichen.

    In einem der Tutorials, die ich lese wurde folgender Code gezeigt:

    org 100h
     start:
       mov ax, 5522h
       mov cx, 1234h
       xchg cx,ax 
       mov al, 0
       mov ah,4Ch
       int 21h
    

    Laut Angabe ist dieser für NASM geschrieben, und soll folgendermaßen compiliert werden:

    nasm firstp.asm -f bin -o firstp.com
    

    Soweit sogut, compiliert ist es, nun hab ich logischer weise eine .com datei, leider wird beim versuch diese auszuführen folgendes angezeigt (fehlermeldung):
    "Die Datei [...] ist gültig aber für einen anderen Computertyp bestimmt!"
    Ich habe zwar die vermutun, dass es an der .com datei liegt, da diese doch schon etwas älter sind und nicht mehr verwendet werden (wegen der geringen maximalgröße), wollte aber nachfragen, ob es wirklich so ist.



  • 16Bit DOS Programme laufen nicht auf 64Bit Version Windows. Entweder du steigst direkt auf 32Bit Code um (dringend zu empfehlen - DOS ist seit Jahrzenten tot) oder benutzt eine Emulator wie DOSBox.



  • Hallo das hier ist 16 Bit Code für TASM der funktioniert bei mir aber auch auf Windows 7 Pro 64 Bit ohne DOS Box oder so Programme.

    Ich kann das Programm einfach in der Eingabeaufforderung ausführen.

    Oder geht das nur weil mein Programm eine exe Datei erzeugt und keine COM ?

    .model small 
    .stack 100h 
    .data 
    
    var db "ok","$"
    
    .CODE 
    start: 
    
                mov ax,@data 
                mov ds,ax 
    
                mov dx,offset var
                mov ah,9h 
                int 21h 
    
                mov ah, 4ch 
                int 21h 
    
    END start
    


  • o_O schrieb:

    Oder geht das nur weil mein Programm eine exe Datei erzeugt und keine COM ?

    nein, das liegt daran, dass du wahrscheinlich den WindowsXP-Modus installiert hast - den gibt es aber nicht für alle Win7 Versionen (Geld regiert die Welt;-)).


Anmelden zum Antworten