CodeForum.chCode ForenAssemblyThema: Eingabe mit NASM
Seiten: [1]
AntwortenDrucken
Autor Thema: Eingabe mit NASM  (Gelesen 18635 mal)
mf_OS
Neu hier
*
Offline Offline

Beiträge: 4


« am: 30. August 2006, 15:09:40 »
ZitierenZitat

Ich schreibe ein Betriebssystem und bin jetzt beim FAT12 Dateisystem.
Frage:
1.Gibt es einen Befehl in NASM, mit dem man Variablen oder Register einen Wert zuwei??t?
  den man für einen "if-Befehl" verwenden kann.
  z.b: cin >> var (C++)
  INPUT var (QBasic)
  stdin(var) (C)
                (NASM?)

2.Gibt es einen Befehl oder Codeblock dem man mit einem if-Befehl vergleichen kann

Moderator informieren   Gespeichert
Gobo
nicht zu stoppen
*
Offline Offline

Beiträge: 1217



« Antworten #1 am: 30. August 2006, 16:39:49 »
ZitierenZitat

Du willst aber den Input-Wert direkt als Usereingabe haben, wie in den Beispielen? Also nicht wie eine normale Wertzuweisung von einem Register in ein anderes?

Einen IF musst Du Dir in Assembler mit Jumps bauen. Davon gibt es nämlich bedingte. JNE für einen Sprung, wenn der Wert der Bedingung ungleich Null ist und so weiter.
« Letzte Änderung: 30. August 2006, 16:45:46 von Gobo » Moderator informieren   Gespeichert

Wenn die Klugen immer nachgeben, geschieht nur das, was die Dummen wollen.
mf_OS
Neu hier
*
Offline Offline

Beiträge: 4


« Antworten #2 am: 30. August 2006, 16:53:04 »
ZitierenZitat

und wie sieht da die syntax aus?
Beispiel!!
Moderator informieren   Gespeichert
Laubi
nicht zu stoppen
*
Offline Offline

Beiträge: 1901


WWW
« Antworten #3 am: 30. August 2006, 21:29:21 »
ZitierenZitat

wie hast du es geschafft ein betriebssystem zu programmieren ohne ein if?
klingt irgendwie schwierig Huch

beispiele findest du im link den gobo gepostet hat!
Moderator informieren   Gespeichert
Backtickz
Groupie
*
Offline Offline

Beiträge: 452



WWW
« Antworten #4 am: 08. September 2006, 11:51:13 »
ZitierenZitat

so kann man z.b. sowas wie ein if machen, aber gibt 100 möglichkeiten Zwinkernd
Code:
cmp [num_cmdargs], 0 ;  eine kleine jumptable :)
je init_arg0
cmp [num_cmdargs], 1
je init_arg1
cmp [num_cmdargs], 2
je init_arg2
cmp [num_cmdargs], 3
je init_arg3

init_arg0:
jmp epi
init_arg1:
inc edx
mov [ptr_arg1], edx
jmp epi
init_arg2:
inc edx
mov [ptr_arg2], edx
jmp epi
init_arg3:
inc edx
mov [ptr_arg3], edx
epi:
Moderator informieren   Gespeichert
Laubi
nicht zu stoppen
*
Offline Offline

Beiträge: 1901


WWW
« Antworten #5 am: 08. September 2006, 21:41:15 »
ZitierenZitat

jou klar.. 100 sind zwar doch etwas viel aber du stimmst mir schon zu, dass wenn ich behaupte, dass jemand der eine sprungtabelle bauen kann auch ein if konstrukt umsetzen kann oder Augen rollen
Moderator informieren   Gespeichert
Binary
Neu hier
*
Offline Offline

Beiträge: 2


« Antworten #6 am: 07. November 2007, 20:22:11 »
ZitierenZitat

Offensichtlich hast du keine Ahnung und scheinst von irgendwelchen Tutorials abzuschreiben. Ich empfehle dir, dass du dich zuerst einmal gründlich mit C / Intel CPU / Memory Management auseinander setzt bevor du dich an Assembler heranwagst. Ausserdem kannst du somit auch den Aufbau der Instructions lernen. Wenn du bei C gelandet bist, ist es wichtig, dass du dich mit Pointer auskennst. Assembler bietet dir übrigens keine Funktionen ala "printf()". Das musst du alles selber machen, es sei denn, du willst C-Functions callen. Das waren nur ein paar Infos, natürlich musst du mehr können Zwinkernd.
Moderator informieren   Gespeichert
Seiten: [1]
AntwortenDrucken
CodeForum.chCode ForenAssemblyThema: Eingabe mit NASM
Gehe zu:  

 

Partner Sites

Werbung

TinyPortal v1.0.5 beta 1© Bloc