[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;-)).