定数値を増やそうとしたために、TASMで「引数が必要です」というエラーが発生しました。私は変数を使うこともできません。なぜなら、単にそれらをお互いに追加したり、 "オペランドの型はあまりない"というエラーを得ることができないからです。定数を増やしたり、2つの変数を追加する方法はありますか?私はレジスタを使用しようとしました - 私はレジスタに定数をコピーし、レジスタを増やすことを意味し、それは動作しますが、これは私の問題を解決しません。ご意見ありがとうございます。TASM:命令で定数を修正しようとしたときにエラーが発生しました
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
これらのエラーはどこで手に入りますか?ちょうどあなたのコードを実行し、それは良いです(素敵な長方形!)。 –
'data'に' h = 50'の代わりに 'hdw 50'を試してください。他の人も同じです。 –
メインループの最後にxとy定数を増やしてみてください。また、dw型に変更してから「オペランドの型が一致しません」と「相対量を取ることができません」というエラーが表示される – dimon