此代码不输出任何内容。如何在新屏幕的左上角输出字符“ A”?
我尝试了下面的代码。
、、、、、、、、、、
假设CS:代码,DS:代码
代码段
组织100h
开始:
mov ax,0B800h
mov es,ax
mov byte ptr es:[0],'A'
int 20h
代码结尾
结束开始
、、、、、、、、、
我想在否则为空白屏幕的左上角找到字母'A'。
答案 0 :(得分:1)
此代码不输出任何内容。
可能性包括:
视频模式未使用0xB800:0x0000处的显示内存(例如图形视频模式)。
代码确实写了'A',但属性使它不可见(例如,黑色前景和黑色背景)。
代码确实写了“ A”,并且该属性使它可见。但是一旦程序存在(在您有机会看到它之前),它就会被覆盖或滚动到屏幕顶部
要防范所有这些潜在问题:
设置视频模式以确保其使用文本模式
执行mov ax,(0xF0 << 8) | 'A'
和mov [es:0],ax
来设置属性,同时还要写入字符。注意:这可以优化为单个mov word [es:0],(0xF0 << 8) | 'A'
指令。
在退出之前会有某种延迟(等待时间过去,等待用户按下键,...)。