私は迷路地図を作りたいと思います。迷路を219-altのaltコードにしたいと思っています。私がemu8086にサインを入れようとすると、疑問符が表示されます。アセンブリのデータセグメントからaltコードを印刷するにはどうすればよいですか?
データセグメント上にマップを構築することを考えましたが、データセグメント上では文字列でマップを設計できますが、文字の代わりに疑問符が表示されます。
どのようにデータを印刷することができますか?そうではない場合、別の方法を提案できますか?
私は迷路地図を作りたいと思います。迷路を219-altのaltコードにしたいと思っています。私がemu8086にサインを入れようとすると、疑問符が表示されます。アセンブリのデータセグメントからaltコードを印刷するにはどうすればよいですか?
データセグメント上にマップを構築することを考えましたが、データセグメント上では文字列でマップを設計できますが、文字の代わりに疑問符が表示されます。
どのようにデータを印刷することができますか?そうではない場合、別の方法を提案できますか?
あなたは代わりに文字自身のASCII数値コードを使用することができます。
.model small
.stack 100h
.data
chars db 1,2,219,220,223,'$' ;◄■■ CHARS NON VISIBLE IN EMU.
.code
mov ax, @data
mov ds, ax
mov ah, 9
lea dx, chars
int 21h ;◄■■ DISPLAY SPECIAL CHARS.
mov ax, 4c00h
int 21h
より複雑な解決策は単純文字を使用し、特殊な文字で、実行時にそれを置き換えることです:
.model small
.stack 100h
.data
maze db '----------',13,10 ;◄■■ SIMPLE CHARS.
db '- -',13,10
db '----------$'
.code
mov ax, @data
mov ds, ax
lea si, maze
display:
mov dl, [si]
cmp dl, '$' ;◄■■ CHECK END OF STRING.
je finale
cmp dl, '-' ;◄■■ IF THIS IS THE CHAR TO REPLACE
jne continue
mov dl, 219 ;◄■■ REPLACE SIMPLE CHAR WITH SPECIAL CHAR.
continue:
mov ah, 2
int 21h ;◄■■ DISPLAY CHAR IN DL.
inc si ;◄■■ NEXT CHAR IN STRING.
jmp display
finale:
mov ax, 4c00h
int 21h
manuel interesting ...ありがとう:) –
これは、エディタの文字セットと出力システムのエンコーディング/文字セットに関する問題である可能性があります。私はemu8086に慣れていませんが、文書化する必要があります。値219のバイトを定義すると、どのシンボルが出力に出力されますか? –