1
Offtopic / Re: ToasterOS
« am: 08. July 2007, 15:58 »
rofl, unser pro Coder hat noch ned mal ne richtige TLD und will ernst genommen werden...
22. November 2024, 02:56
Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.
bochs
HxD Ein guter Hex-editor, mit dem man Diskettenimages Sektorweise betrachten kann (sehr hilfreich)
Njain, es ist schon sinnlos, den Speicherblock zu verkleinern und dann einen neuen anzufordern, aber um das Timing exakt hinzukriegen, muss ich den Timer abfangen und timing-exakt die Daten an den Parallelport schicken. Dazu dachte ich im Prinzip zwei "Threads", den Producer (Puffer-Füller) und den Consumer (Interrupt-Handler). Und da ist die Adressierung über ein Segment (an bekannter Adresse) ganz praktisch.
Du hast als Segmentadresse für ds einfach ds=cs+1024*16 genommen, also fängt bei dir der Puffer genau 16k hinter dem Programm an?
mov ax, ds
add ax, 40H
mov ds, ax
Und eine Verständnisfrage: Das Programm beginnt also bei Adresse cs:0x0000
und der Stack bei cs:0xffff ? Bringt dein Ansatz damit nicht den Stack durcheinander (wenn der Stack dann benutzt wird) ?
mov ax, ds
add ax, 1024
mov ds, ax
; read (next) 64K of file
mov ah,3Fh
mov bx,[cs:FILEHANDLE]
mov cx, 0ffffh
mov dx,0
int 21h
jc err_fread
Mein Problem: In dem Moment, wo ich den int 21h aufrufe, bricht mein gesamtes Programm zusammen. Den Code zum Berechnen der aktuellen Programmgröße habe ich aus dem Netz.
; set program's memory size to 64K (limit of "tiny" COM files) - CS=DS=ES=SS
mov bx,ss
mov ax,es
sub bx,ax
mov ax,sp
add ax,14h
shr ax,4
add bx,ax
mov ah,04ah
int 21h
Und nein, auch du bist nicht so gut, daß du vollkommen fehlerfreien Code schreibst.
Damit wollte ich nur demonstrieren das schlechte APIs nichts mit ASM zu tun haben. Meine lassen sich ganz einfach mit ASM ansprechen. Oder was wolltest du sagen mit den Win APIs?ZitatDen INVOKE Funktionsaufruf möcht ich in der W32 programmierung nicht mehr missen.Schau dir OS-64s APIs an!!!
Was hab ich davon? *dumm-frag*
bitmaster
Den INVOKE Funktionsaufruf möcht ich in der W32 programmierung nicht mehr missen.Schau dir OS-64s APIs an!!!
Im Ernst..in Assembler zu programmieren ist nicht nur ineffizient, fehleranfaellig, unproduktiv, nicht nachhaltig, etc., sondern auch ausserordentlich gut fuer die Portierbarkeit. Wirklich gut. Vor allem, wenn man verschiedene Microprozessoren hat und die gleiche Applikation drauf laufen lassen will. Viel Spass.Das hat hier auch niemand behauptet, zumindest habs ich nicht mehr im Kopf.
Zitatbin mir aber ziemlich sicher, dass das nicht gehtGeht das denn in ASM?
bitmaster
Edit: Eigentlich wollte ich aber garnicht so eine Diskussion lostreten! sadAch, schadet doch nix.
Erklär mir bitte mal, welchen Sinn es machen soll, einen Wahrheitswert als Zahl zu behandeln.Wie gesagt, war nurn beispiel.
Offensichtlich kannst du nicht besonders gut PHP, sonst wüßtest du, daß PHP Datentypen hat. Und wenn man das nicht beachtet, kann man auf die Schnauze fliegen. (z.B. Größer-/Kleiner-Vergleich auf Strings und auf Zahlen macht einen Unterschied!)
(z.B. Größer-/Kleiner-Vergleich auf Strings und auf Zahlen macht einen Unterschied!)Wie? Willst du Buchstaben(-strings) mit zahlen vergleichen?
Aber Winsocks? Das ist doch selbst in C geschrieben, ich bezweifle, daß man das besser versteht, wenn man es mit Assembler anspricht.Jo, warn schlechtes Beispiel, zumal man in C und in ASM die WinAPI dafür nutzen muss, demzufolge war mein Argument ziemlich daneben gegriffen
Hm, ja... Ich persönlich finde ja Ausdrücke wie "(a + b) *c" schon übersichtlicher (oder sagen wir vielleicht lieber: aus dem richtigen Leben gewohnter) als ein paar Zeilen Assembler für dasselbe.ich mein den gesamten Syntax an sich, aber wie gesagt, das ist Ansichtssache.
Ist mir nicht direkt einsichtig. Kontrolle durch den Compiler bedeutet schonmal einige vermiedene Fehler. Einen Nachteil sehe ich dagegen nicht.Naja, wenn ich erstmal ne Funktion suchen muss, um nen Bool in nen Integer umzuwandeln, oder z.b. in Delphi nen TString in nen String Datentyp (sind nur Beispiele), ist es mir lieber, wenn ich ein DWord habe, und sonst nix
Ich kann mich daran erinnern, dass es jemanden in diesem oder einem anderem Forum gab, der Hardcode geschrieben hat (also mit nem Hexeditor alle Befehle eingetippt... -_- ).lol, das hab ich auch mal gemacht; da wirste verrückt mit der zeit
Ich halte mich an Bitmaster und schreibe Assembler.