1
我想制作一张迷宫地图,并且我希望让迷宫成为219 - █的alt代码的角色。当我尝试将标志放在emu8086上时,它显示一个问号。如何在组件上打印数据段的替代代码?
我想过在数据段上构建地图,因为它不小,在数据段上,我可以用字符串设计地图,但它只显示问号而不是我想要的字符。
我如何从数据打印他们,如果我不能那么你可以建议另一种方式?
我想制作一张迷宫地图,并且我希望让迷宫成为219 - █的alt代码的角色。当我尝试将标志放在emu8086上时,它显示一个问号。如何在组件上打印数据段的替代代码?
我想过在数据段上构建地图,因为它不小,在数据段上,我可以用字符串设计地图,但它只显示问号而不是我想要的字符。
我如何从数据打印他们,如果我不能那么你可以建议另一种方式?
您可以使用,而不是字符本身的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有趣...谢谢:) –
这可能是关于编辑器的字符集和输出系统的编码/字符集的问题。我不熟悉emu8086,但应该记录下来。如果你定义了一个值为219的字节,那么在输出中打印什么符号? –