汇编:有关在屏幕区显示字符的四种方法
2015-04-12 01:53
435 查看
李忠老师的《x86汇编语言:从实模式到保护模式》中第五章到第七章的部分,每一章在讲述知识点的同时,分别使用了三种不同的显示字符的方法,加上调用BIOS的10h中 断的方法,这里做出一次简单梳理:
一:第五章,最基础的直接用mov 的方法
代码如下:
代码五
这里的做法是调用BIOS的10h中断来显示“Hello,OS world!”,其中bp为字符串地址,cx为串长度,ah为功能号,al指示光标置于串尾,bx指示页号为0然后字符显示属性为黑底红字,dh为行号,dl为列号(如果不做处理的话,默认dh,dl皆为0,即在第0行第0列显示),参数设置完之后则调用10h中断显示字符串。
总结:以上的四种方法,通过学习不仅了解显示的方法,更重要的是对汇编语言有了更多的认识。以上方法在实际操作中介于方便与否,大多采用的直接调用BIOS的10h 中断来操作。
一:第五章,最基础的直接用mov 的方法
代码如下:
org 07c00h ; 告诉编译器程序加载到 7c00处 mov ax, cs mov ds, ax mov es, ax call DispStr ; 调用显示字符串例程 jmp $ ; 无限循环 DispStr: mov ax, BootMessage mov bp, ax ; es:bp = 串地址 mov cx, 16 ; cx = 串长度 mov ax, 01301h ; ah = 13, al = 01h mov bx, 000ch ; 页号为 0(bh = 0) 黑底红字(bl = 0Ch,高亮) mov dl, 0 int 10h ; 10h 号中断 ret BootMessage: db "Hello, OS world!" times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为 dw 0xaa55 ; 结束标志
代码五
这里的做法是调用BIOS的10h中断来显示“Hello,OS world!”,其中bp为字符串地址,cx为串长度,ah为功能号,al指示光标置于串尾,bx指示页号为0然后字符显示属性为黑底红字,dh为行号,dl为列号(如果不做处理的话,默认dh,dl皆为0,即在第0行第0列显示),参数设置完之后则调用10h中断显示字符串。
总结:以上的四种方法,通过学习不仅了解显示的方法,更重要的是对汇编语言有了更多的认识。以上方法在实际操作中介于方便与否,大多采用的直接调用BIOS的10h 中断来操作。
相关文章推荐
- 汇编语言中如何在屏幕显示字符
- 汇编题目:在屏幕中间显示a-z的所有字母,按ESC键改变字符颜色
- 汇编语言之屏幕字符显示
- 汇编:采用顺序编程方法,实现在屏幕上显示大写字幕A
- 汇编语言:请写一个程序把当前目录下的TEXT.TXT文件中的字符读出来显示在屏幕上,当遇到结束符时就停止读取。
- 汇编程序在屏幕显示字符
- 屏幕右下角网络连接图标不显示的处理方法
- 让xterm显示中文字符的配置方法
- “无法显示 XML 页 - 名称以无效字符开头。”&&“ XML解析错误:未组织好”的解决方法
- 为什么这个汇编程序,不能在屏幕上面显示!
- 无法显示XML页名称以无效字符开头处理资源'http://xx'时出错的解决方法
- 汇编显示字符
- vi/vim显示中文字符并且去掉^M的方法
- 无法显示XML页名称以无效字符开头处理资源'http://xx'时出错的解决方法
- 汇编实现 逆序显示输入字符
- 在图片特定位置显示特定字符方法
- ABAP屏幕上显示LIST的三种方法
- 无法显示 XML 页 - 名称以无效字符开头。处理资源 'http://xxxxx' 时出错 的解决方法
- 字符转成网页Unicode码的方法,可用于在一个网页上显示多种语种.
- 无法显示 XML 页 - 名称以无效字符开头。处理资源 'http://xxxxx' 时出错 的解决方法