Zum Beispiel für hexadezimale Zahlen können wir 0x98398
oder 8790h
verwenden.Wie können Oktalzahlen in Assembly dargestellt werden?
Wie können oktale numerische Konstanten geschrieben werden? Funktioniert das?
Zum Beispiel für hexadezimale Zahlen können wir 0x98398
oder 8790h
verwenden.Wie können Oktalzahlen in Assembly dargestellt werden?
Wie können oktale numerische Konstanten geschrieben werden? Funktioniert das?
Hängt vom Assembler ab, aber die meisten Assemblers einschließlich NASM erlauben 0o, o steht für oktal. Genau wie du 0x verwendest, wobei x für Hexadezimal steht.
mov ax,310q ; octal
mov ax,310o ; octal again
mov ax,0o310 ; octal yet again
mov ax,0q310 ; octal yet again
Informationsquelle: Here.
Wieder ist es nicht 0o oder die obige Syntax für alle Assembler. Es kann von Assemblern variieren, aber NASM verwendet tatsächlich die oben genannte Syntax, wie Sie den Link für weitere Informationen sehen können. Wenn Sie andere Monteure im Auge haben, sehen Sie sich deren Handbuch an wie für FASM: Here. GAS: Here
NASM supports70o
, 70q
, 0o70
und 0q70
für Oktal.
Ich würde die 0q70-Version empfehlen, um das Risiko zu vermeiden, dass zukünftige (menschliche) Leser das Kleinbuchstabe-O für eine Null halten. Ich bin auch kein Fan des Suffix-Stils für hex, weil es leicht zu übersehen ist. Es hilft, den umgekehrten Fall vom Rest der Konstante zu verwenden, aber ein führender 0x oder 0q ist klarer. (Und für hex, vermeidet die Notwendigkeit einer führenden 0, um es zu einer numerischen Konstante anstelle eines Symbolnamens zu machen.)
Wie für Hex-Konstante Unterstützung, it will certainly vary by assembler, so überprüfen Sie einfach Ihre Assembler-Handbuch. z.B. Die meisten DOS/Windows-Assembler unterstützen nur 0xDEADBEEF, nur 0DEADBEEFh, daher würde ich meinen, dass sie auch weniger Optionen für oktal haben.
Siehe das x86 Tag Wiki für Links zu verschiedenen Assembler Handbücher (und viele andere nützliche Ressourcen und Anleitungen).
welcher Assembler? –