{title}

Hey all.Google konnte dies nicht beantworten (keuchen), daher dachte ich, dass die Community es könnte. Frage: Kann ich eine Fledermausdatei verwenden, um die Mauscursor zu ändern? Maussymbol.Auch das Schema der Maus - kann ich das mit einer Fledermaus ändern.Ist das Schema in einer Art Editor-Datei gespeichert? Ich weiß nicht, wo sich die Datei befindet. Bitte helfen Sie! www.fileden.com/files/2008/9/4/2081882/Mice/Finished%20-%20Red.zip Für alle, die einen schwarzen Mauszeiger mit Vista Aero-Look haben möchten.

Ich denke nicht, dass es möglich ist.

Gut. Wie macht Windows das dann? Sicher, es gibt eine GUI, aber sie muss die Informationen irgendwo speichern. Ich meine. Wenn Sie eine Datei irgendwo kopieren und einfügen, handelt es sich im Wesentlichen nur um den Befehl "xcopy", der in einem GUI-Layout ausgeführt wird.Ahhh !! Weitere Kommentare/Hilfe?

Nun, es gibt diese Dateien, aber ich denke, sie sind etwas zu komplex für die Stapelverarbeitung. Trotzdem macht sich der Stapel nützlich, um sich wiederholende Aufgaben wie das Verschieben von Backups auszuführen. Können Sie den Cursor nicht einfach manuell ändern?

Wie ich bereits sagte, sende ich den Cursor an ein paar Leute (die es übrigens geliebt haben, probieren Sie es also bitte aus :-D), die mit Computern nicht so gut zurechtkommen BAT-Datei wäre es viel einfacher.

Ich bin mir sicher, dass es passieren wird, aber es wird nicht passieren. Wir fragen noch einmal: Warum glauben die Leute, dass Batch-Dateien absolut alles können?

Tun Sie es in einem sehr komplizierten Schritt oder in etwa 3 einfachen Schritten.

Dann mach weiter, Maestro, hol deine Geige raus und gib uns eine Melodie.

main.cpl ist die Systemsteuerung für mouse.you könnte das Befehlszeilenargument googeln, das benötigt wird, um an main.cpl zu übergeben, da ich die Liste nicht habe.

Mist, ich habe eine Menge zu tun, vom Abwasch bis zum Spaziergang mit dem Hund. Lass mich einfach nicht versuchen, irgendetwas mit dem Computer anzufangen.

Treffen in Ubuntu Linux mit NASM Assist?

Hallo. Ich bin ziemlich neu in der Programmierung in 32-Bit-Assembly. Ich versuche, mit dem NASM-Assembler ein einfaches Min-Max-Spiel in Assembler zu erstellen. Das einzige Problem, das ich habe, ist die Eingabe von ganzen Zahlen vom Benutzer. Ich kann nirgendwo im Internet ein einfaches Beispiel für Benutzereingaben mit NASM unter Linux finden. Jede Hilfe wird sehr geschätzt. Danke

Sie möchten eine Ganzzahleingabe? Erstellen Sie eine Prozedur, die ASCII in eine Ziffer im Bereich von 0 bis 9 konvertiert, wenn außerhalb des Bereichs ein Flag gesetzt ist. Wenn der Wert außerhalb des gültigen Bereichs liegt, legt carryCreate eine Prozedur fest, die ein einzelnes Zeichen von der Konsoleneingabe in Linux erhält. Erstellen Sie eine Prozedur, die den obigen Wert aufruft und den vorherigen Wert mit zehn multipliziert und zum nächsten Wert addiert. Beenden Sie auf Fehler. Haben Sie schließlich eine Prozedur, die die oben genannten verwendet. Überprüfen Sie, ob der Benutzer CR oder eine ungültige Ziffer gedrückt hat. Wenn CR fertig ist, tadeln Sie den Benutzer und fangen Sie von vorne an. Möglicherweise möchten Sie, dass eine niedlichere Ganzzahl auf fünf Stellen begrenzt wird. Ich bin froh, jemanden zu sehen, der NASM.Netwide Assembler verwendet //en.wikipedia.org/wiki/Netwide_Assembler

Vielen Dank für den Rat, ich versuche es. Aber ich weiß eigentlich noch nicht, wie ich Input bekommen soll. Ich habe versucht, die Systemaufrufe und Interrupts für die Verwendung von NASM unter Linux nachzuschlagen, habe aber leider Probleme, sie zu verstehen. Aber ich werde es weiter versuchen und dich wissen lassen, wo ich noch stecke oder ob ich es herausfinde.

Als ich mich umsah, fand ich diesen Artikel. Aus einem WordPress-Blog, 13. Februar 2008 von taufanlubis Ich hoffe, mehr auf diesen Beitrag zu posten, wenn ich den genauen Code finde, den Sie brauchen.

Alles klar, cool! Vielen Dank Alter. Ja, das ist wahrscheinlich der Grund, warum es so schwierig ist, genügend Informationen über den NASM-Compiler zu finden, wenn fast jedes Assembly-Tutorial im Web MASM oder etwas mit DOS verwendet, aber danke für den Link und alles, ich werde es auf jeden Fall überprüfen .

Dieses Buch gefunden: Assemblersprache Schritt für Schritt mit Linux 3rd Edition von Jeff Duntemann, Wiley Publishing, Inc. Es ist eine hervorragende Informationsquelle zur Programmierung von Assemblersprachen für Linux. Es gibt ein Buch von Jeff Duntemann, das jetzt in der dritten Auflage erscheint. Die dritte Ausgabe ist eine bedeutende Neufassung. Ein Großteil des Buches befasst sich jetzt mit Linux und nicht mehr mit DOS-Programmierung.Das war ein großartiger SchachzugAlles, was Sie in der DOS-Programmierung tun können, sind nur ausführbare 16-Bit-Dateien. Es sei denn, du bist sehr schlau. Und ich bin nicht so schlau. Die neue Ausgabe seines Buches ermöglicht es jetzt jedem, 32-Bit-Assembler-Code in Linux zu schreiben. Und es ist nicht so schwer, wie Sie sich vorstellen können. Obwohl der Autor sehr qualifiziert ist, hat er beschlossen, sein Buch für alle so einfach wie möglich zu gestalten. Er konzentriert sich darauf, Ihnen die wesentlichen Werkzeuge zu geben und Sie dann den Rest erledigen zu lassen. Hier ist ein Zitat aus seinem Buch. Wenn Sie auf seine Website gehen, können Sie den Quellcode für einige der Beispiele, die er im Buch gibt, herunterladen. Natürlich, wenn Sie das Buch wollen, müssen Sie dafür bezahlen. Aber zumindest der Quellcode steht denjenigen von Ihnen zur Verfügung, die neugierig sind, und gibt Ihnen einen Eindruck von der Einfachheit und der Qualität seiner Arbeit. Hier ist ein bisschen Beispielcode.
Code:

;; Assemblersprache Schritt für Schritt mit Linux 3rd Edition ;; Jeff Duntemann, Wiley Publishing, Inc. ;; www.duntemann.com/assembly.html; Ausführbarer Name: EATSYSCALL; Version: 1.0; Erstellungsdatum: 07.01.2009; Letzte Aktualisierung: 18.02.2009; Autor: Jeff Duntemann; Beschreibung: Ein einfaches Programm in Assembly für Linux mit NASM 2.05; Demonstration der Verwendung von Linux INT 80H-Systemaufrufen zur Anzeige von Text. ;; Erstellen Sie mit diesen Befehlen :; nasm -f elf -g -F sticht eatsyscall.asm ab; ld -o eatsyscall eatsyscall.o; SECTION.data; Abschnitt mit initialisierten DatenEatMsg: db "Eat at Joe's!", 10EatLen: equ $ -EatMsgSECTION.bss; Abschnitt mit nicht initialisierten DatenSECTION.text; Abschnitt mit codeglobal _start; Linker benötigt dies, um den Einstiegspunkt zu finden! _Start: nop; Dieses No-Op hält GDB bei Laune. Mov eax, 4; Spezifiziere sys_write callmov ebx, 1; Dateideskriptor 1 angeben: Standard Outputmov ecx, EatMsg; Übergabeoffset des messagemov edx, EatLen; Übergeben Sie die Länge der Nachricht in 80H. Machen Sie den Kernel callMOV eax, 1; Code für den Ausgang Syscallmov ebx, 0; Gib einen Code mit dem Nullpunkt 80H zurück. Kernel aufrufen
Später, da es genügend Interesse an dem Thema gibt, kann ich eine vollständige Rezension des Buches machen und in der Rezensionssektion hier auf Computer Hope posten. Es ist wahrscheinlich das beste Gesamtbuch über ein Programm in einer Sprache für fast alle. Erfahrene Programmierer werden dieses Buch vielleicht mögen. Aber den wirklich erfahrenen Programmierern würden bereits einige Referenzen zur Verfügung stehen, die sie bei der Arbeit bekommen würden. Und ich bin immer noch auf der Suche nach der Antwort auf Ihre Frage. Ich denke, das steht im Buch. Mikrofon aus

OK super! Ich checke das Buch mit Sicherheit aus, da es kein anderes anständiges Tutorial im Netz gibt, das ich irgendwo finden kann. Ich checke es also unbedingt aus. Ich weiß bereits, wie man Text druckt und mit 32-Bit-Linux-Assemblys rechnet, aber ich brauche nur Hilfe, um Eingaben jeglicher Art zu erhalten. Ich bedanke mich für Ihre Hilfe und freue mich über weitere Kommentare oder Ratschläge. Danke

Nach dem Veröffentlichen des Codes ist mir ein Problem mit dem Zeilenumbruch aufgefallen. Für den Assembler kann kein Zeilenumbruch erfolgen. Der Assembler sieht das Zeilenende als das Ende der Anweisung. Das passiert, wenn ich Notepad mit Zeilenumbruch benutze.

Ich glaube, ich hätte es herausgefunden. Ich habe ein PDF gelesen, das mir ein Freund geschickt hat, und bitte korrigieren Sie mich, wenn ich falsch liege. Im Abschnitt BSS können Sie jedoch einen Eingabepuffer wie "resd" für Dezimalzahlen oder "resb" für Bytes reservieren, die ich glaube. Außerdem habe ich herausgefunden, dass Sie Folgendes tun würden, um die Eingabe abzurufen: section.data bufferSize: equ 1; oder wie groß der Puffer sein soll section.bss input1 resd bufferSize section.text global _start _start: mov eax, 4 mov ebx, 1 mov ecx, input1 mov edx, bufferSize int 0x80 mov eax, 1 mov ebx, 0 int 0x80And das SOLLTE als Dezimalzahl und nicht nur als Byte eingegeben werden. Ich hoffe.

Entschuldigung, das wird nicht das tun, was du willst.
Code:

mov eax, 4; Spezifiziere sys_write mov ebx, 1; Geben Sie den Dateideskriptor an
Sie möchten eine Eingabe, die a istlesenFunktion.
3. sys_readSyntax: ssize_t sys_read (vorzeichenloses int fd, char buf, size_t count) Quelle: fs/read_write.cAction: Aus einem Dateideskriptor lesen
Ändern Sie also die 4 in eine 3, um die Eingabe zu erledigen.
Code:

mov eax, 3; Spezifiziere sys_read mov ebx, 1; Geben Sie den Dateideskriptor an
Es wird buchstäblich gelesen, was auch immer eingegeben wird. EDIT: Weitere Informationen. Klicken Sie auf den Link für die vollständige Liste, es ist sehr vollständig.

Nun, es sieht so aus, als wäre ich mehr weg gewesen, als ich kauen kann. Ich werde mein Bestes geben, um mein Versprechen zu halten. Lass es uns Stück für Stück und Stück für Stück durchkauen. Im Internet wird nicht viel über Assembler-Tutorials veröffentlicht, und nur sehr wenig über Linux. Es gibt einige. Was hier benötigt wird, ist ein großes Programm, das etwas Nützliches leistet und gleichzeitig die Art von Dingen demonstriert, die in Assemblersprache innerhalb von Linux ausgeführt werden. Ja, wir alle wissen, dass Linux auf C basiert und dass die meisten Dinge, die Sie benötigen, bereits in der C-Bibliothek vorhanden sind. Das Original-Poster möchte eine bestimmte Antwort in Assembler oder Linux. Auf der nächsten Seite zeigen einige weitere Links, wo Sie die Materialien für die Teilnahme an diesem kleinen Projekt erhalten können, wenn Sie dies wünschen. Das hier zu verwendende Programm stammt aus einem Buch von Jeff Duntemann. Der Name des Programms lautet uppercase2.asm und läuft unter Ubuntu.Links: NASM - Der Netwide Assembler ist ein 80x86-Assembler, der für Portabilität und Modularität ausgelegt ist. //linux.softpedia.com/get/Programming/Compilers/NASM-The-Netwide-Assembler-643.shtml Ubuntu Netbook Edition (UNE), vor der Veröffentlichung als Ubuntu Netbook Remix bekannt, ist eine Version der Ubuntu Linux-Distribution, die so optimiert wurde, dass sie auf Netbooks und anderen Geräten mit kleinen Bildschirmen oder besser funktioniert. //de.wikipedia.org/wiki/Ubuntu_Netbook_Edition Ubuntu Netbook EditionQuellcode für uppercaser2.asm www.duntemann.com/ (Code im nächsten Beitrag)

www.duntemann.com/ Quellcode für uppercaser2.asm
Code:

; Ausführbarer Name: uppercaser2; Version: 1.0; Erstellungsdatum: 25.03.2009; Letzte Aktualisierung: 25.03.2009; Autor: Jeff Duntemann; Beschreibung: Ein einfaches Programm in Assembly für Linux mit NASM 2.05; Demonstration einfacher Textdatei-E/A (durch Umleitung) zum Lesen eines; Eingabedatei in einen Puffer in Blöcken, wobei Kleinbuchstaben erzwungen werden; Großbuchstaben und Schreiben des geänderten Puffers in eine Ausgabedatei. ;; Führen Sie es so aus :; uppercaser2> (Ausgabedatei) <(Eingabedatei) ;; Erstellen Sie mit diesen Befehlen :; nasm -f elf -g -F sticht uppercaser2.asm ab; ld -o uppercaser2 uppercaser2.o; ABSCHNITT.bss; Abschnitt mit nicht initialisierten DatenBUFFLENequ 1024; Länge von bufferBuff: resb BUFFLEN; Textpuffer selbstSECTION.data; Abschnitt mit initialisierten DatenSECTION.text; Abschnitt mit codeglobal _start; Linker benötigt dies, um den Einstiegspunkt zu finden! _Start: nop; Dieses No-Op macht GDB glücklich .; Lese einen Puffer voller Text aus stdin: read: mov eax, 3; Spezifiziere sys_read callmov ebx, 0; Dateideskriptor angeben 0: Standard Inputmov ecx, Buff; Übergeben Sie den Offset des Puffers, um tomov edx, BUFFLEN zu lesen. Übergeben Sie die Anzahl der zu lesenden Bytes in einem Durchgang 80h. Rufen Sie sys_read auf, um die Buffermov esi, eax zu füllen. Copy sys_read Rückgabewert für safekeepingcmp eax, 0; Wenn eax = 0 ist, hat sys_read EOF bei stdinje Done erreicht. Jump If Equal (von compare auf 0); Richten Sie die Register für den Prozesspufferschritt ein: mov ecx, esi; Geben Sie die Anzahl der in ecxmov ebp gelesenen Bytes ein, Buff; Geben Sie die Adresse des Puffers in ebpdec ebp ein. Passen Sie die Anzahl an, um sie zu verschieben. Durchsuchen Sie den Puffer und konvertieren Sie Kleinbuchstaben in Großbuchstaben: Scan: cmp byte, 61h; Teste Eingabezeichen gegen Kleinbuchstaben 'a'jb Next; Wenn unter 'a' in ASCII, nicht lowercasecmp byte, 7Ah; Eingabezeichen gegen Kleinbuchstaben testen 'z'ja Next; Wenn über 'z' in ASCII, nicht in Kleinbuchstaben; Zu diesem Zeitpunkt haben wir ein kleines Charsub-Byte, 20h; Subtrahiere 20h, um Großbuchstaben zu erhalten.Next:dec ecx; Decrement counterjnz Scan; Wenn noch Zeichen vorhanden sind, kehren Sie zurück. Schreiben Sie den Puffer mit dem verarbeiteten Text auf stdout: Write: mov eax, 4; Spezifiziere sys_write callmov ebx, 1; Geben Sie den Dateideskriptor 1 an: Standard outputmov ecx, Buff; Pass Offset des Buffermov edx, esi; Übergeben Sie die Anzahl der Datenbytes im Bufferint 80h. Machen Sie den Kernel calljmp read; Schleife zurück und lade einen anderen Puffer voll; Alles erledigt! Beenden wir diese Party: Done: mov eax, 1; Code für den Ausgang Syscallmov ebx, 0; Geben Sie einen Code mit dem Nullpunkt 80H zurück. Kernel aufrufen
In einem späteren Beitrag wird erläutert, wie dieser Code an die Anforderung des OP angepasst werden kann.

Danke für die Hilfe! Ich lerne auch, wie man in Assembler mit nasm programmiert und werde diesen Thread weiter durchsuchen. Im Moment bin ich auf der Suche nach Möglichkeiten, um auch vom Benutzer eine Dezimaleingabe zu erhalten. Habe einige schwierige Codes und suche nach einem verständlicheren Algorithmus. Wenn ich es fange, werde ich hier posten. Danke noch einmal!

Weitere Informationen zur Linux-Assemblersprache. Standardeingabe. Standardausgabe. Statt mehr Code zu veröffentlichen, werde ich einen Kommentar zu Code abgeben, der bereits veröffentlicht wurde. Der Code, den ich gepostet habe, stammt aus dem Buch Assembler-Schritt-für-Schritt-Programmierung mit Linux, dritte Ausgabe. Ja, die dritte Ausgabe unterscheidet sich wirklich von seinen früheren Werken. Es ist immer noch ein Lehrbuch, eine Einführung in die Assemblersprache, aber mit viel mehr Aufmerksamkeit für die Möglichkeiten unter Linux. Wenn Sie sich den zuvor veröffentlichten Code ansehen, bemerken Sie, dass es eine Eingaberoutine gibt, die als Standardeingabegerät bezeichnet werden kann Die Ausgaberoutine wird als Standardausgabegerät bezeichnet. Diese werden vom Kernel ordnungsgemäß verarbeitet, sodass die Eingabe von der Tastatur kommt und die Ausgabe auf Ihr Display übertragen wird. Natürlich wird das Display in diesem Fall eine Konsole oder ein Terminal unter Linux sein. Wenn ein Benutzer auf der Tastatur tippt, geschieht eine Reihe von Dingen auf Hardwareebene, und wir sind nur daran interessiert, die Tastenanschläge im ASCII-Format abzurufen. Die Standardeingabe kümmert sich darum. Deshalb, wenn der Benutzer den Brief schlägt EIN Die Standardeingabe erhält die Nummer 65. Wenn es der Buchstabe war B. es wird 66 und so weiter sein. Das ist für Großbuchstaben. In dem veröffentlichten Programm werden Sie feststellen, dass er einen Test durchführt, um festzustellen, ob die Buchstaben im unteren Bereich der Groß-/Kleinschreibung liegen. In der Standard-ASCII-Tabelle sind die Kleinbuchstaben tatsächlich höher. Wenn der Benutzer einen Kleinbuchstaben eingibt, subtrahiert das Programm daher einen bestimmten Wert, um ihn in Großbuchstaben umzuwandeln. Nachdem der gesamte Puffer für so viele Zeichen verarbeitet wurde, die sich tatsächlich im Puffer befinden, wird er an das Standardausgabegerät gesendet, und es werden Großbuchstaben angezeigt, wenn der Benutzer Kleinbuchstaben eingibt. Dies ist eine ziemlich gute Unterrichtsübung, um die Ideen der Standardeingabe, der Standardausgabe, der Verwendung der ASCII-Tabelle und des Erzwingens einer Konvertierung eines Zeichens vorzustellen. Die einzelnen Buchstaben, die wir hier als Zeichen bezeichnen, oder im C-Jargon als Zeichen, die sich mit Autos reimen. Warum ist es nun so wichtig zu wissen, wie man Standardeingabe und Standardausgabe macht? Denn dies öffnet die Tür für die Verwendung von Dateien, anstatt nur die Konsole für die Eingabe und Ausgabe. Unter Linux können Sie die Umleitung so ausführen, dass die Ein- und Ausgabe aus einer Datei stammt und zur Datei wechselt. Dies ist einer der wichtigsten Punkte, die er in dem Buch anführt. Sobald Sie wissen, dass Sie viele interessante Dinge tun und einige sehr nützliche Dienstprogramme erstellen können, die die Standardeingabe und -ausgabe verwenden. Auf diese Weise müssen Sie sich nicht mit dem Problem des Öffnens einer Datei befassen und sicherstellen, dass die Datei vorhanden ist und beschrieben werden kann. Der Kernel kümmert sich um alle Fehlerbehebungen und stoppt Ihr Programm, wenn ein Fehler im Dateisystem auftritt. Ihre ursprüngliche Frage war, wie Sie mit der Linux-Assemblersprache Zahlen in einen Speicherort bringen können. Ich werde mehr darüber im nächsten Beitrag erklären. Aber zuerst wollte ich, dass Sie und alle anderen, die dies lesen, verstehen, warum wir die Standardeingabe und -ausgabe in Linux lernen müssen. Sobald wir diese Hürde überwunden haben, können wir andere Dinge tun. Ich musste das mit Diktat machen, daher gibt es wahrscheinlich einige lustige Fehler. Ich musste wieder arbeiten, jetzt bin ich dran, den Boden zu wischen. (Mikrofon aus)

Beliebte Beiträge