调用int10中断设置背景为篮底红字,但显示是却是...

seaman117 2004-11-03 11:33:23
include common.lib ;include common int21
stackini <200 dup(0)>

data segment

about db 0ah,0dh,' ========= Assmeble Practice ========== ', '$'

data ends

code segment
assume cs:code,ds:data,ss:stack,es:data
start: mov ax,data
mov es,ax
mov ds,ax

mov ah,0
mov al,3
int 10h ;80X25彩色文本显示方式

mov ah,0bh ;设置背景颜色入口参数
mov bh,0
mov bl,14h ;篮底红字
int 10h

prints about ;调用宏定义输出字符串
exitdos ;调用宏定义退出

code ends
end start

显示为黑地白字加一个绿色边框! 什么地方设置错了?

...全文
200 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
seaman117 2004-11-06
  • 打赏
  • 举报
回复
抬一下,那个老大看看。明天接分!
seaman117 2004-11-05
  • 打赏
  • 举报
回复
我查了下书(IMM-PC宏汇编),是这样写的
入口参数:(AH)=0BH

(BH)= 0:设置背景颜色
1:设置彩色组时
(BL)=背景颜色(0-15)或彩色组(0-1)
其中,彩色组0为绿/红/黄 ,彩色组1为青/品红/白
出口参数:无

一个显示输出时用到!
如果想你说的那样,那如何在文本模式下设置背景颜色?
大熊猫侯佩 2004-11-05
  • 打赏
  • 举报
回复
int 10h 的 0bh 服务
当 bh=0 时:
在图形模式下 bl(0-15) 的作用是设置背景颜色;
在文本模式下 bl(0-31) 的作用是设置边框颜色。

所以用它来改变文本模式下的背景色是不行的。
ui_ppoppopp 2004-11-04
  • 打赏
  • 举报
回复
那干什么设置调色板?
大熊猫侯佩 2004-11-04
  • 打赏
  • 举报
回复
宏 prints 中的内容呢?

我一般不设调色板,而直接打印
而且好像 0bh 服务 是在 320 x 200 图形模式下用的吧?
以下是我的 Code :

data segment

about db ' ========= Assmeble Practice ========== '
len EQU $-about

data ends

code segment
assume cs:code,ds:data
start:

mov ax,data
mov ds,ax
mov es,ax

mov ah,0
mov al,3
int 10h

mov ah,13h
lea bp,about
mov cx,len
mov dx,0h
mov bh,0
mov bl,14h
mov al,0h
int 10h

mov ah,4ch
int 21h

code ends
end start

seaman117 2004-11-04
  • 打赏
  • 举报
回复
是啊,就是在彩色文本模式下改背景颜色,不会不行吧这样?
大熊猫侯佩 2004-11-04
  • 打赏
  • 举报
回复
你的意思是在文本方式下改背景色么?
seaman117 2004-11-04
  • 打赏
  • 举报
回复
这个显示的只是那几个字是篮底红字,我的意思是在程序运行时,背景是蓝色,文字是白色的。直到退出程序后,还原原来的屏幕颜色。也就是用彩色的文本模式80×25。但不行,用图形吧,但是光标不见了!下面是用的图形模式

stackini macro stacksize
stack segment stack
db stacksize
stack ends
endm

prints macro info
lea dx,info
mov ah,9
int 21h
endm

getchr macro info
lea dx,info
mov ah,10
int 21h
endm

stackini <200 dup(0)>

data segment

about db 0ah,0dh,' ========= Assmeble Practice ========== ',
0ah,0dh,' ',
0ah,0dh,' NAME: ',
0ah,0dh,' AUTHOR: ',
0ah,0dh,' DATA: ',
0ah,0dh,' COMMENT: ', '$'

pausestr db 0ah,0dh,0ah,0dh,'Press enter key to exit command line ... $'

testbuf db 1
db 1 ?


data ends

code segment
assume cs:code,ds:data,ss:stack,es:data
start: mov ax,data
mov es,ax
mov ds,ax

mov ah,0
mov al,12h ;al=3h color text mode al=12h 640×480 color 16k
int 10h

mov ah,15
int 10h

mov ah,0bh
mov bh,0
mov bl,00000001b
int 10h

mov ah,01
mov cx,000ch
int 10h

prints about
prints pausestr
getchr testbuf

exitdos

code ends
end start

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧