当前位置:鱼C工作室 >汇编语言 > 查看文章

直接定址表03 – 零基础入门学习汇编语言74

第十六章:直接定址表03

 

让编程改变世界

Change the world by program


 

程序入口地址的直接定址表

 

我们看下面的问题:

实现一个子程序setscreen ,为显示输出提供如下功能:

(1)清屏。

(2)设置前景色。

(3)设置背景色。

(4)向上滚动一行

 

那么入口参数如何设置呢?

入口参数说明:

(1)用ah 寄存器传递功能号:

0 表示清屏,

1表示设置前景色,

2 表示设置背景色,

3 表示向上滚动一行;

 

(2)对于2、3号功能,用al传送颜色值,

(al)∈{ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 }

 

下面,我们讨论一下各种功能如何实现 :

(1)清屏

将显存中当前屏幕中的字符设为空格符;

(2)设置前景色

设置显存中当前屏幕中处于奇地址的属性字节的第0、1、2位;

(3)设置背景色

设置显存中当前屏幕中处于奇地址的属性字节的第4、5、6位;

(4)向上滚动一行

依次将第 n+1行的内容复制到第n行处:最后一行为空。

 

我们将这4 个功能分别写为 4 个子程序,请读者根据编程思想,自行读懂下面的程序。

 

程序功能分别实现讲解:gogogo —->>>

 

功能子程序1:清屏

sub1:      
	push bx
	push cx
	push es
	mov bx,0b800h
	mov es,bx
	mov bx,0
	mov cx,2000
sub1s:    
	mov byte ptr es:[bx],' '
	add bx,2
	loop sub1s
	pop es
	pop cx
	pop bx
	ret

 

分页阅读: 1 2 下一页
为您推荐

报歉!评论已关闭.