在自己动手写操作系统中用到了bios int 10h中的ah13功能.这里特意把具体的细节写出来:
INT 10h / AH = 13h - write string.
input:
AL = write mode:
bit 0: update cursor after writing;
bit 1: string contains attributes.
BH = page number.
BL = attribute if string contains only characters (bit 1 of AL is zero).
CX = number of characters in string (attributes are not counted).
DL,DH = column, row at which to start writing.
ES:BP points to string to be printed.
-----------------------------------------------------
Bit color table:
Character attribute is 8 bit value, low 4 bits set foreground color, high 4 bits set background color. Background blinking not supported.
HEX BIN COLOR
0 0000 black
1 0001 blue
2 0010 green
3 0011 cyan
4 0100 red
5 0101 magenta
6 0110 brown
7 0111 light gray
8 1000 dark gray
9 1001 light blue
A 1010 light green
B 1011 light cyan
C 1100 light red
D 1101 light magenta
E 1110 yellow
F 1111 white
中文版内容:
Int 10h 功能13h 〈AT〉
写入串
399页
把ASCII串写到显示器上。
调用寄存器: AH 13h
AL 写入模式(参见表15.9)
BH 视频页
BL 属性(写入模式0和1)
CX 串长度
DH 串写入的行
DL 串写入的列
ES:BP 指向串的指针
返回寄存器:无
表15.9写串的模式
模式 注 释
0 BL中的属性。串只能是字符。未更新光标。
1 BL中的属性。串只能是字符。已更新光标。
2 串可采用字符或属性。未更新光标。
3 串可采用字符或属性。已更新光标。
注释:仅仅在BiOS日期为1/10/86或以后的PC XT Personal Computer AT
以及PS/2系列的机器上该功能才可用,其作用就是把字符串写到当前活动
的显示页上。
可用该功能来标识某个串(通过字符的嵌入或全局属性来标识),并接着
把它写给屏幕。由于该功能依靠其它的BIOS功能来写入串,因而其速度不是
很快。
功能13h是用电传式中断(Teletype interrupt)(Int 10h,功能0Eh)来进行
输出的,这就决定了它通过把光标回移一个位置、拉响控制台报警器、下移一
行或把光标移至当前行的开头的方式来分别响应退格(ASCII 08h)、响铃
(ASCII 07h)、换行(ASCII 0Ah)以及回车(ASCII 0Dh)等字符。它还能实现显
示行的下滚和上滚。
参考资料:
DOS程序员参考手册(BIOS参考手册) http://alexluo.blog.hexun.com/7975614_d.html
INT 10h Using http://www.cnblogs.com/BpLoveGcy/archive/2006/11/21/567976.html
分享到:
相关推荐
看见这个关于BIOS int 10h 写的不错 分享一下
存放了个人编写一个闹钟过程中使用的所有中断调用,还有一篇关于进制之间转化的简单代码
汇编语言功能表,十分齐全,大家参考一下吧
利用INT10显示写的俄罗斯方块。。。。。。。。。 编译环境:Borlandc 3.1 不喜勿下。。、。。
汇编中的10H中断int 10h详细说明
汇编语言中常用的int 10h 号中断的各种用法
INT 10H ********** 定义一个宏显示 waitf proc near push ax waitf1: in al,61h and al,10h cmp al,ah je waitf1 mov ah,al loop waitf1 pop ax ret waitf endp ************************...
DATA SEGMENT MESS DB "Triangle",0DH,0AH ...MESS1 DB "(0,0)",0AH,0DH,"$" MESS2 DB "(0,100)",0AH,0DH,"$" ...INT 10H MOV BYTE PTR FAL,AL MOV AH,0 MOV AL,4 INT 10H MOV DX,60 MOV CX,100 DONE1:MOV AH,0CH
8086课程设计 简易时钟,主要使用int 10h和21h软件中断
利用BIOS中断INT 10H完成设置不同字符的显示属性的方法,适合学习用的,例子程序
程序可以在VGA显示器上以800x600分辨率显示方波示例和字母示例,源文件保存在src目录,QII的工程文件保存在Proj目录。
对于运用汇编编程中用到BIOSint10h功能,可以参考该资料
读光标位置 MOV CS:BUFF,DX MOV AH,2 XOR BH,BH MOV DX,47H INT 10H ;置光标位置 MOV AH,2 INT 1AH ;读系统时间 PUSH DX PUSH CX POP BX PUSH BX CALL SHOW1 CALL SHOW2 POP BX XCHG BH,BL CALL SHOW1 CALL SHOW2 ...
INT 10H MOV CS:OLDCUR,DX MOV AH,1 ;1号功能调用,置光标位置 and bh,0 MOV DX,45h INT 10H MOV AH,2 ;读取系统时钟 出口参数分别CH:CL:DH INT 1AH PUSH DX PUSH CX POP BX PUSH BX CALL SHOW...
中断INT 21H : 1、字符功能调用类(Character-Oriented Function) 01H、07H和08H —从标准输入设备输入字符 02H —字符输出 03H —辅助设备的输入 04H —辅助设备的输出 05H —打印输出 06H —控制台输入/输出 09H —...
本人亲自验收,绝对通得过~~~~~~~~~~~~~
MOV AL , 13H ;数据长度为8位 , 无奇偶校验位 , 1个停止位 MOV DX , 3FBH ;指向线路控制寄存器 OUT DX , AL ;发送此字节 MOV DX , 3FCH ;设置MODEM控制寄存器 MOV AL , 0BH ;允许8250发中断 OUT DX , AL ...
.486 CRLF MACRO MOV AH,0EH MOV AL,0DH INT 10H MOV AL,0AH INT 10H ENDM OUTX MACRO X MOV AH,09H MOV DX,OFFSET X INT 21H ENDM
int 21h inc dh mov ah,02h mov dl,0 int 21h cmp cl,0 jz mo jmp po mo: mov cl ,16 mov ah,02h mov dl,0dh int 21h mov ah,02h mov dl,0ah int 21h dec ch cmp ch,0 jz no jmp po no: mov ax,...
2、直接磁盘服务(Direct Disk Service——INT 13H) 38 3、串行口服务(Serial Port Service——INT 14H) 44 4、杂项系统服务(Miscellaneous System Service——INT 15H) 46 5、键盘服务(Keyboard Service——INT ...