So habe ich ein Problem, das mich mein grundlegendes Verständnis der DB
(definieren Byte) und DUP
(doppelte) Direktiven in Frage gestellt. Die Art, wie ich sie verstanden habe, ist:In Bezug auf 8086 Assembly DB und DUP Direktiven
NUM DB 34
wird eine Variable erstellen NUM genannt, und es wird mit dem 34. Wert zuweisen PraktischNUM = 34
.NUM DB 34 DUP(?)
wird mir eine Reihe von 34 Elemente, von denen jeder nicht zugewiesen.NUM DB 3 DUP(4)
würde ich ein Array namens NUM mit 3 Artikeln: 4, 4, 4.
Ist das richtig? Ich
In meinem Lehrbuch begegnet:
PRINT_SELECT DB 133 (?) DB 123 (?)
Ist das nur ein Fehler in dem Lehrbuch, oder tun, um diese zwei Zeilen Code etwas anderes völlig bedeuten?
Sie sind keine Anweisungen, sie sind [Assembler-Direktiven] (http://www.tech-tools.com/cv16_dir.htm). –
Mein Fehler :) Ich entschuldige mich. – saremisona
'NUM = 34' .. nicht genau. Die "db 34" wird ein einzelnes Byte mit dem Wert "34" definieren. Die 'NUM' ist eine Bezeichnung, die auf dieses Byte zeigt. Zum Beispiel wird 'NUM DB 1, 2' als zwei Bytes kompiliert und erzeugt eine symbolische Markierung, die auf die erste zeigt, es wird nicht 'NUM = 1, 2' (was auch immer das bedeuten würde). Und es gibt keine Variablen in der Montage. Sie können in manchen Situationen so darüber nachdenken, aber eine solche Sichtweise wird Sie darin einschränken zu verstehen, was das ist. Und "4, 4, 4, 4" sind vier Elemente, nicht drei. Die Zeilen aus dem Buch sehen aus wie Tippfehler, es ist keine gültige Syntax. Wenn das Buch Quellen mit Beispielen enthält, überprüfen Sie diese. – Ped7g