我需要编写一个程序,用于将ASCII符号写入视频内存。
.model tiny
.stack
.data
.code
main:
mov ax, 0b800h
mov ds, ax
mov aL, 'x'
mov es, bx
mov es:[1], aL
mov ah, 4ch
int 21h
end main
此代码尚未呈现;它编译,运行然后退出而不打印任何东西。 我想我错过了一条线。
答案 0 :(得分:2)
为了能够写入视频内存,请将ES设置为0b800h 在要写入的屏幕上指定位置(偏移)。将DI设置为(行*(最多行(80))+ col)* 2(ROW和COL基于空)。例如,要写入第10行中的第三个字符,请使用“mov di,(2 * 80 + 9)* 2” 在AH中指定颜色。设置AH为(backgroundcolor * 16 + foregroundcolor)例如在黑色(0)背景上写浅灰色(7)字母使用“mov ah,7” 使用STOSW指令代替“mov es:[adress]”,al。这样您就可以动态地写入屏幕上的不同位置。