level 1
谁知道怎么改变dosbox的背景颜色吗,要调成白底黑字的
2020年11月25日 07点11分
1
level 1
assume cs:code
data segment
x db '******'
len = $ - x
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov di,1 ;设置es:di显存地址
mov cx,2000
s0:
mov al,es:[di]
and al,0fh ;清除原屏幕的颜色
or al,10h ;设置蓝色背景
mov es:[di],al
add di,2
loop s0
mov bx,0f00h ;设置最后一行第一列为首地址
mov cx,80
s1:
mov al,'-'
mov ah,17h ;设置蓝底白字
mov es:[bx],ax
add bx,2 ;指向下一显存单元
loop s1
mov si,offset x
mov bx,0f40h ;设置最后一行中间列为首地址
mov cx,len
s2:
mov al,[si]
mov ah,17h ;设置蓝底白字
mov es:[bx],ax
add bx,2
inc si
loop s2
mov ax,4c00h
int 21h
code ends
end start
有注释,供后人参考,功能是设置成蓝色背景,在最后一行中间列输出data(蓝底白字)。写的不好,勿喷
2021年12月01日 09点12分
3