Suche Assembler
-
Hallo, ich hab mir vorhin erst nochmal NASM heruntgerladen.
Aber irgendwie funktioniert der Source Code aus dem Tutorial nicht _
E:\NASM>nasm win001_n.asm win001_n.asm:18: error: parser: instruction expected win001_n.asm:20: error: symbol `IMPORT' redefined win001_n.asm:20: error: parser: instruction expected win001_n.asm:38: warning: label alone on a line without a colon might be in erro r win001_n.asm:38: error: unrecognised special symbol `..start' E:\NASM>Hier hab ich NASM heruntergeladen:
http://downloads.sourceforge.net/nasm/nasm-2.03.01-win32.zip?modtime=1213673690&big_mirror=0
Und hier ist das Tutorial:
-
... Wenn du es so erstellst wie im betreffenden Quellcode, bzw. Make-Batch vorgeschlagen, laeuft's (zwar mit einer Warnung...) auch.
-
?????
Die make.bat bringt gar nix -.-
Das ding ruft einfach nur die fertige exe auf ....
Und wenn man dann da in der DOS Box hoch scrollt sieht man nur Fehler xD
Gibt es den nirgends wo ein gescheiten Assembler wo das alles zu abwechslung auch mal funktioniert ?
-
Einfacher macht es dir bestimmt kein Assembler.

Ich bin mir sicher, wenn du die make.bat, bzw. was sie ausgibt mal gelesen haettest, koenntest du evtl. auftretende Probleme auch beheben (vorausgesetzt du weisst, wie man ueber Herumgeklicke im Explorer hinaus mit Windows umgeht).
Die make.bat ruft naemlich nicht nur die fertigen Programme auf, sondern erstellt diese vorher erstmal jeweils mit NASM, TASM und zuletzt MASM neu.
Das wird da nicht anders gemacht, als schon im Quellcode steht. Zur Erinnerung:;compile with:
;NASMW.EXE -fobj win001_n.asm
;link with:
;ALINK.EXE -c -oPE -subsys gui win001_n win001.resWie gesagt: Bei mir wurde alles auf Anhieb problemlos erstellt. Wenn bei dir Fehler auftreten, mit denen du absolut nicht zurecht kommst, waere es evtl. hilfreich zu wissen, welche.
-
Ich hab die make.bat jetzt mal etwas verkürtzt das der nur die NASM sachen macht und nicht die tasm.
Aber ich habe auch gerade gesehen das mir die GORC.exe fehlt-.-
Die war bei dem Download von Source Forge nicht dabei.
Die Fehler:
Der Befehl "GORC.EXE" ist entweder falsch geschrieben oder konnte nicht gefunden werden. . . . Now the NASM version gets compiled with NASMW: . . win001_n.asm:38: warning: label alone on a line without a colon might be in erro r . . . Now the NASM version gets linked with ALINK: . . ALINK v1.6 (C) Copyright 1998-9 Anthony A.J. Williams. All Rights Reserved Loading file win001_n.obj Error opening file win001.res . . . NASM version is ready - starting NASM version . Der Befehl "win001_n" ist entweder falsch geschrieben oder konnte nicht gefunden werden. Drücken Sie eine beliebige Taste . . .Die make.bat
@echo off GORC.EXE /r win001.rc @echo . @echo . @echo . Now the NASM version gets compiled with NASMW: @echo . @echo . NASM.EXE -fobj win001_n.asm @echo . @echo . @echo . Now the NASM version gets linked with ALINK: @echo . @echo . ALINK.EXE -c -oPE -subsys gui win001_n win001.res @echo . @echo . @echo . NASM version is ready - starting NASM version @echo . win001_n pause @echo . @echo -------------------------------------------------------- @echo . That was it - see you next time @echo .
-
Jo, so weit ok. Das einzige, was dabei noch fehlt, ist GoRC. Sinnigerweise steht in dem Tutorial offenbar nicht, woher man das bekommt...
GoRC ist ein Resource Compiler, gehoert zu den Go-Tools, zu denen auch GoAsm gehoert und woher du das alles bekommen kannst, steht in den FAQ.
-
ah okay danke.
-
Jetzt funktioniert es

Aber wie ist das jetzt wenn ich selber einen source code geschrieben haben.
Weil hier ware ja jetzt sone rc Datei und alles Dabei.
-
Was meinst du?
Die Tools hast du, wie man damit prinzipiell umgeht (also so ein make-Batch schreibt), sollte aus diesem Beispiel klar geworden sein.
Deinen Assemblercode schreibst du natuerlich selbst. Was Rc-Scripts angeht, kannst du die entweder selbst schreiben (gibt dazu auch Tutorials) oder du nimmst sowas wie das VisualStudio...
-
Ich hab jetzt z.b. eine neuen Source Code aus dem Tutorial und der heisst :
win002_n.asm
Dann muss ich das doch eigentlich nur so in der make.bat umändern:
Hier nochmal die alte make.bat
@echo off GORC.EXE /r win001.rc @echo . @echo . @echo . Now the NASM version gets compiled with NASMW: @echo . @echo . NASM.EXE -fobj win001_n.asm @echo . @echo . @echo . Now the NASM version gets linked with ALINK: @echo . @echo . ALINK.EXE -c -oPE -subsys gui win001_n win001.res @echo . @echo . @echo . NASM version is ready - starting NASM version @echo . win001_n pause @echo . @echo -------------------------------------------------------- @echo . That was it - see you next time @echo .und hier die neue make.bat
@echo off GORC.EXE /r win002.rc @echo . @echo . @echo . Now the NASM version gets compiled with NASMW: @echo . @echo . NASM.EXE -fobj win002_n.asm @echo . @echo . @echo . Now the NASM version gets linked with ALINK: @echo . @echo . ALINK.EXE -c -oPE -subsys gui win002_n win002.res @echo . @echo . @echo . NASM version is ready - starting NASM version @echo . win002_n pause @echo . @echo -------------------------------------------------------- @echo . That was it - see you next time @echo .Und nochmal zu dem RC Script wofür ist das genau ? Muss man für jeden Assembler Code extra ein RC Script machen?
-
Joa, sieht ok aus. Ich gehe davon aus, du hast dir anhand der Hilfetexte der Programme auch in etwa klar gemacht, was die Optionen eigentlich bewirken...?
Was Ressourcen und RC-Scripte angeht: http://de.wikipedia.org/wiki/Ressource_(Software) (zB...)
Praktisch beschreiben diese Skripte also Daten, die an das Programm angehaengt werden (wie Dialoge, Icons, die ganzen Versionstexte, die man im Eigenschaften-Dialog lesen kann, oder sogar ganze beliebige Dateien).
Offensichtlich hat das also 1. nichts mit Assembler zu tun und ist 2. auch zum Funktionieren eines Programms nicht unbedingt noetig.Beim 1. Beispiel wurde mit diesem Ressourcen-Kram zB. nur das Icon des Programms im Explorer veraendert. Haette man also auch einfach ohne Aenderung des Quellcodes weglassen koennen.
-
Und wie kann ich dann neue Source Codes Assemblieren ? -.-
Hier ist meine make.bat
@echo off GORC.EXE /r win002.rc @echo . @echo . @echo . Now the NASM version gets compiled with NASMW: @echo . @echo . NASM.EXE -fobj win002_n.asm @echo . @echo . @echo . Now the NASM version gets linked with ALINK: @echo . @echo . ALINK.EXE -c -oPE -subsys gui win002_n win001.res @echo . @echo . @echo . NASM version is ready - starting NASM version @echo . win002_n pause @echo . @echo -------------------------------------------------------- @echo . That was it - see you next time @echo .Hier sind meine tollen Fehlermeldungen
:GoRC.Exe Version 0.90.3e - Copyright Jeremy Gordon 1998/2008 - JG@JGnet.co.uk Output file: win002.res . . . Now the NASM version gets compiled with NASMW: . . win002_n.asm:45: error: symbol `WNDCLASSEX.cbSize' not defined before use win002_n.asm:46: error: symbol `WNDCLASSEX.style' not defined before use win002_n.asm:47: error: symbol `WNDCLASSEX.lpfnWndProc' not defined before use win002_n.asm:48: error: symbol `WNDCLASSEX.cbClsExtra' not defined before use win002_n.asm:49: error: symbol `WNDCLASSEX.cbWndExtra' not defined before use win002_n.asm:50: error: symbol `WNDCLASSEX.hInstance' not defined before use win002_n.asm:51: error: symbol `WNDCLASSEX.hIcon' not defined before use win002_n.asm:52: error: symbol `WNDCLASSEX.hCursor' not defined before use win002_n.asm:53: error: symbol `WNDCLASSEX.hbrBackground' not defined before use win002_n.asm:54: error: symbol `WNDCLASSEX.lpszMenuName' not defined before use win002_n.asm:55: error: symbol `WNDCLASSEX.lpszClassName' not defined before use win002_n.asm:56: error: symbol `WNDCLASSEX.hIconSm' not defined before use win002_n.asm:57: error: symbol `WNDCLASSEX_size' not defined before use win002_n.asm:91: warning: label alone on a line without a colon might be in erro r win002_n.asm:215: warning: segment attributes specified on redeclaration of segm ent: ignoring . . . Now the NASM version gets linked with ALINK: . . ALINK v1.6 (C) Copyright 1998-9 Anthony A.J. Williams. All Rights Reserved Error opening file win002_n.obj . . . NASM version is ready - starting NASM version . Der Befehl "win002_n" ist entweder falsch geschrieben oder konnte nicht gefunden werden. Drücken Sie eine beliebige Taste . . .Die win002_n.obj wird nicht mal erstellt .......
Hier ist ein Screenshot von meinem Ordner wo alles drin ist:
http://img385.imageshack.us/my.php?image=asmsx5.jpg
btw. Gibt es vielleicht ein Tutorial wo drin steht wie man die sachen Assembliert ?
Oder sowas wie eine Idee so wie bei C++ eine Taste drücken und die Sachen werden Compiliert ohne das man erst irgendwelche Sachen umschreiben muss ?
-
Entweder ist deine win32n.inc unvollstaendig, oder wird ueberhaupt nicht eingebunden. Hast du die %include-Zeile in win002_n.asm auskommentiert?
Sonst habe ich mal meine Version der win32n.inc auf meine HP hochgeladen: http://BTM.homeip.net/index.php/page_2Ein weitergehendes "Tutorial" zur Bedienung des Assemblers steht in den NASM-Docs.
Eine IDE fuer Assembler gibt es auch. Hier wurde zB. schon oefters "RADAsm" genannt. In wie weit das was taugt oder die Sache vereinfacht, kann ich dir aber nicht sagen. Ich denke mal, einrichten musst du das Teil aber auch, bevor das mit dem "1 click" annaehernd funktioniert.
-
Juhu es funktioniert endlich :>
ty