Eingang in Assembler
Ich habe einige Probleme mit Assembler.
Der Benutzer geben Sie eine Zahl von der Tastatur und dann werde ich zu tun, einige Operationen mit dieser Zahl.
Es ist ok zu verwenden:
LEA DX ,SIZE;before in SEGMENT "DATA": SIZE DB 7
MOV AH,9
INT 21H
Also,Antworte mir,bitte,soll das funktionieren,wenn nicht geben Sie ein Beispiel,bitte.Und wo diese Nummer gespeichert werden? In AX?
Danke.
P. S.
Ich bin writting auf emu8086.
- Verstehen Sie, was der code macht, oder hast du Sie einfach kopieren Sie es von irgendwo auf dem Internet, und hoffe, dass es funktioniert? Hoffnung ist nicht sehr gut zu funktionieren, mit Assembler. Schauen Sie auf diesen Verweis: spike.scu.edu.au/~barry/interrupts.html. Es sagt, dass INT 21H mit 9 AH ist output, nicht input. Dein code ist wohl die Anzeige einer Eingabeaufforderung. Benötigen Sie mehr code auf eine Eingabe von STDIN.
- Sind Sie targeting-BIOS, oder einige Betriebssystem-kernel (z.B. Linux, finden Sie unter Linux Assembly HowTo) thru-syscalls? Warum die
INT 21H
?? - AH = 9 INT 21H schreibt einen string auf die STANDARDAUSGABE in die alte DOS-interrupts.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend Ihrer Probe-code, den Sie benötigen, ist die Antwort für den alten DOS. Wie bereits in einem Kommentar von Robert Harvey, die Funktion 09 des interrupt 21h ist für die Ausgabe. Die Funktion 0Ah, ist verantwortlich für die Eingabe. Hier ist ein Beispiel-code aus meinem anderen aktuelle Antwort: