2017-06-23 14 views
0

XとYの位置に文字を表示したいが、画面には何も表示しない。私のASCII文字は「9829」です。何か案は?x&y点に文字を表示

org 100h 

MOV AX,0b800h 
MOV ES,AX 
MOV AX,poz_y 
MOV BX,80 
MUL BX 
ADD AX,poz_x 
MOV BX,2 
MUL BX 
MOV DI,AX 
MOV [ES:DI],Word 9829h 


mov ax, 0x4c00 
int 21h 
poz_x dw 10 
poz_y dw 10 
+2

[NASMはメモリ参照のために角括弧が必要です](http://www.nasm.us/xdoc/2.11.08/html/nasmdoc2.html#section-2.2.2)、 '[poz_y ] 'と' [poz_x] 'となります。また、MOV [ES:DI]、9829hのMOV WORD [ES:DI]、9829h、 – Jester

+0

のオペランドサイズが足りないため、そのままではアセンブルされません。 'Word'について、私はここでそれを逃した、申し訳ありません。 – Mateusz

+0

@Jester大括弧で本当にうまくいっているので、ありがとうm8! :)あなたはここに心臓asciiを置く方法を知っていますか?私はそれが "9829h"だと思っていたが働いていなかったので、私はチェックしなければならない:p。 – Mateusz

答えて

0

NASMは、poz_xpoz_y[poz_x]ように、括弧内にあることを必要とします。

角かっこなしでは、これらの変数のオフセットがレジスタにロードされます()。角括弧では、変数のアドレスはの逆参照になりますので、そのの値はとなります。

関連する問題