So drucken Sie den Inhalt eines Registers in emu8086?
include 'emu8086.inc'
#make_com#
org 100h
s1 dw 50,60,70,80,90,100,120,130,140,160,170,190,190,220,250,270,300
MOV SI,0
MOV CX,16
s2:
MOV AX,s1[SI]
s3:
INC SI
CMP AX,100
JBE s4
JA s5
s4:
PRINTf AX
JMP s3
s5:
CMP AX,200
JB s6
JA s7
s6:
PRINTf AX
JMP s3
s7:
PRINTf AX
JMP s3
END
;printf AX doesn't work and i want to print the contents of AX
- Sie haben für die Konvertierung in einen string, dann zeigen Sie es.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie nicht uns gezeigt, was PRINTf tun soll. Also alle Ihre
PRINTf AX
makro aufruft, könnte OK sein.Aber Ihr Programm hat 2 Fehler, die verhindern, dass es von der Ausführung richtig.
Können Sie die display-AX, wie es ist, aber Sie sehen seltsame Zeichen auf dem Bildschirm. Ein Verfahren zur Konvertierung von Binär - (AX) zu der Zeichenkette notwendig ist. Folgender code legt eine Zahl in AX, wandelt AX-string und zeigt die Zeichenfolge. Können Sie die Vorgehensweise verwenden, die number2string für Ihre zukünftigen Programme. Copy-paste folgenden code in EMU8086 und führen Sie es :
Etwas mehr Erklärung : für Ihre zukünftige Programme, der Verfahren number2string erfordert eine variable im Daten-segment namens "str". Wie sehen Sie auf den code "str" hat die Länge 6, da AX halten, kann eine Reihe von 5 Ziffern oder weniger, und, wenn Sie wollen, um es anzuzeigen, Zeichenfolgen erfordern ' $ ' - Zeichen, das ist, warum die Länge ist 6. Die parameter für number2string gelegt werden muss, auf AX. Natürlich, Sie können ändern Sie den Namen der Variablen (str) und die register verwendet (AX).