Ich bekomme "Argument benötigt Typ Override" Fehler in TASM aufgrund des Versuches, einen konstanten Wert zu erhöhen. Ich kann auch keine Variablen benutzen, weil ich sie dann nicht einfach hinzufügen kann und den Fehler "Operandentypen nicht viel" bekommen. Gibt es eine Möglichkeit, eine Konstante zu erhöhen oder zwei Variablen hinzuzufügen? Ich habe versucht, Register zu verwenden - ich meine, die Konstante in ein Register zu kopieren und dann das Register zu vergrößern, und es funktioniert, aber das löst mein Problem nicht. Danke für Anregungen.TASM: Fehler beim Versuch, eine Konstante mit einer Anweisung zu ändern
model tiny
.486
.stack 200h
.data
h = 50
w = 100
x = 10
y = 10
k1 = 15
k2 = 0
.code
start:
mov ah, 0 ; graphics mode
mov al, 13h
int 10h
; main loop
mov cx, 50
pg:
push cx
; top line
mov cx, x+w ; column
mov dx, y ; row
mov al, k1 ; white
p1:
mov ah, 0ch ; put pixel
int 10h
dec cx
cmp cx, x
jae p1
; bottom line
mov cx, x+w
mov dx, y+h
mov al, k1
p2:
mov ah, 0ch
int 10h
dec cx
cmp cx, x
ja p2
; left line
mov cx, x
mov dx, y+h
mov al, k1
p3:
mov ah, 0ch
int 10h
dec dx
cmp dx, y
ja p3
; right line
mov cx, x+w
mov dx, y+h
mov al, k1
p4:
mov ah, 0ch
int 10h
dec dx
cmp dx, y
ja p4
; delay
mov cx, 01h
mov dx, 4240h
mov ah, 86h
int 15h
; top line
mov cx, x+w
mov dx, y
mov al, k2
p5:
mov ah, 0ch
int 10h
dec cx
cmp cx, x
jae p5
; bottom line
mov cx, x+w
mov dx, y+h
mov al, k2
p6:
mov ah, 0ch
int 10h
dec cx
cmp cx, x
ja p6
; left line
mov cx, x
mov dx, y+h
mov al, k2
p7:
mov ah, 0ch
int 10h
dec dx
cmp dx, y
ja p7
; right line
mov cx, x+w
mov dx, y+h
mov al, k2
p8:
mov ah, 0ch
int 10h
dec dx
cmp dx, y
ja p8
pop cx
dec cx
cmp cx, 50
;inc x
;inc y
jna pg
mov ah,00 ; read keyboard
int 16h
mov ah,00 ; text mode
mov al,03
int 10h
mov ah,4ch ; exit
int 21h
end start
Woher bekommen Sie diese Fehler? Habe deinen Code einfach ausgeführt und es ist gut (nette Rechtecke!). –
Probieren Sie 'h dw 50' anstelle von' h = 50' in 'data' aus. Das Gleiche für die anderen. –
Fehler angezeigt, wenn versuchen, X- und Y-Konstanten am Ende der Hauptschleife zu erhöhen, auch wenn sie zu Dw-Typ ändern dann erhalten "Operandentypen nicht übereinstimmen" und "kann relative Mengen hinzufügen" Fehler – dimon