汇编语言程序设计教程(第二版)卜艳萍著(7)

2018-12-05 20:56

06H 07H 08H 09H 0AH 0BH 0CH 窗口上滚 窗口下滚 读取字符和属性 写字符和属性 写字符 设置四色调色板 写象素 13H 14H 15H 1AH 1BH 1CH 写字符 保留 保留 读写显示合成卡 读取功能状态信息 存取显示状态

4. 简述文本方式下字符图形的构造原则。

在文本方式下,可以在屏幕上显示字母、数字以及一些字符图形。需要两个存储器字节对应屏幕上的每个字符,一个是ASCII码字节,一个是属性字节。对单色显示和彩色显示属性字节的设置是不同的。单色文本方式下属性提供了闪烁、反相和高亮度。对彩色文本而言,能在属性字节中设置字符的前景和背景的颜色。

调用BIOS的字符显示功能,如INT 10H的AH = 09H,AH = 0AH等可以实现在屏幕上显示字符图形的功能。显示的方法和显示一般字符一样,只是利用多个字符组装成一个较复杂的图形,编程时注意显示字符的属性以及正确计算字符之间的相对位置。

5. 用系统功能调用实现:把键盘输入的带符号的十进制数转换为二进制数,并将结果存放

到内存单元。

? 定义键盘输入功能;

? 将带符号的十进制数转换为二进制数,此功能可以定义子程序实现; ? 将转换后的结果存放到内存单元。

6. 用“@”符画一条从(10,10)至(30,30)的斜线。

? “@”字符的初始显示位置为(10,10); ? 更新显示位置为(11,11),(12,12),直至(30,30);

7. DOS系统功能调用中有哪些与磁盘操作有关的功能?

DOS提供了使用文件描述字(句柄)的文件操作功能调用,使得用户可以从逻辑角度使用文件,而不是从物理角度使用磁盘存储器。于是可以将程序和数据以文件的形式进行存储、修改及读出等,避开了对磁盘存储器设备具体的复杂的管理和操作。

与磁盘操作有关的功能有: 3CH号(建立文件)、3DH号(打开文件)、3EH号(关闭文件)、3FH(读文件)、40H(写文件)和42H(设置文件指针),在这些功能调用中都使用了与文件标识符等价的文件描述字来识别文件。

8. 分别用字符显示功能和字符串显示功能来完成在屏幕上显示一个字符串“STUDENT”

的功能。

STACK SEGMENT STACK DW 256 DUP(?) STACK ENDS

DATA SEGMENT

BUF DB ‘STUDENT’,‘$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA

31

START:MOV AX,DATA MOV DS,AX

MOV BX,OFFSET BUF MOV CL,7

LOP1:MOV DL,[BX]

MOV AH,2 INT 21H INC BX DEC CL

JNZ LOP1

MOV DX,OFFSET BUF MOV AH,9 INT 21H

MOV AH,4CH

INT 21H CODE ENDS END START

9. 从键盘上输入一行字符,如果这行字符的长度是10,则保存该行字符。然后继续输入

下一行字符。按下‘$’输入结束,最后将所有保存的字符串都显示在屏幕上。 ? 在内存设置缓冲区; ? ? ? ?

通过键盘输入字符,边输入边统计,并存入内存单元; 到10个字符,则回车换行; 再继续输入;

判断输入字符是否为‘$’,以此决定是否结束,若结束,将内存缓冲区的字符显示

在屏幕上。

10. 分别利用DOS和BIOS系统功能调用,实现键盘屏幕方式的人机对话。对话内容如下:

Please input a key (0-9).

The key is 8(输入的数字显示在此).

? 利用字符串显示方式在屏幕当前光标位置显示如下信息: Please input a key (0-9).

The key is

? 启动键盘输入字符,判断是否数字,若数字,则保留; ? 将输入的数字显示在当前光标位置。

11. 写出能实现以下功能的指令序列: (1)读当前光标位置 MOV AH,4

INT 10H

(2)设置屏幕为80列黑白方式 MOV AH,0 MOV AL,7 INT 10H

32

(3)把光标设置在屏幕第6行的开始位置 MOV AH,2 MOV BH,0

MOV DX,0600H INT 10H

(4)屏幕上卷8行 MOV AX,0608H MOV BH,7

MOV CX,0E26H MOV DX,1546H

INT 10H

12. 在图形方式下,在屏幕上绘制一条与水平线成45度夹角的斜线。

? 设置图形显示方式;

? 确定初始点的位置以及每次更新位置的方向; ? 确定终止条件。

13. 在图形方式下,在屏幕中央绘制一个等腰三角形。 ? 设置图形显示方式;

? 先画左边的腰,然后右边的腰;

? 最后画出底边。

14. 在图形方式下,在屏幕中央绘制一个实心矩形。 ? ? ? 15.

设置图形方式,选定中央位置的坐标。 可以用以点画线的方式绘制矩形。

可以从左到右由纵线组成实心矩形,也可以从上到下由行线组成实心矩形。 在文本方式下,设计一个具有舞蹈者形象的字符图形(不超过20个字符),并使之显示

在屏幕的中央位置。 ? 定义一个字符图形表,字符图形表中的第一个字节是组成图形的字符数。字符图形表

包括每个字符的ASCII码、属性以及在显示图形中的相对位移量。相对位移量是指前

一个字符和当前要显示字符之间的行距和列距。

字符的显示顺序为从上到下,从左到右。可以用实心方块、笑脸符、字母等组合成舞

?

蹈者图形。

16. 使上题设计的舞蹈者在屏幕上平移(从最左边移动到最右边)。

先将“舞蹈者”定义在屏幕最左边,比如位置10行0列,显示一个固定时间后(需定时子程序),然后换个位置再显示,依次类推,直到最右边的字符到达79列为止。 17. 使舞蹈者在屏幕上的固定位置变换姿势(模拟舞蹈)。

将“舞蹈者”定义在屏幕的中间,可以将相当于“胳臂”和“腿”的组合字符按一定的规律变换位置,也需要定时子程序。

18. 编程实现将一个扩展名为TXT的文本文件写入磁盘。

DATA SEGMENT

FILENAME DB ‘FILERW.TXT’,0 BUF DB ‘ABCDEFGabcdefg’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

33

MAIN PROC FAR START:PUSH DS

MOV AX,0

PUSH AX MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET FILENAME MOV AH,3CH MOV CX,0

INT 21H ;建立文件 MOV AH,3DH MOV AL,1

INT 21H ;打开文件 MOV BX,AX

MOV DX,OFFSET BUF MOV CX,10

MOV AH,40H

INT 21H ;写文件 MOV AH,3EH

INT 21H ;关闭文件 RET

MAIN ENDP CODE ENDS

END START

19. 编制一程序,先清屏幕,然后画出一个带有阴影的填充兰色的矩形框,并在其中写入下列弹出菜单:

A:文件加密 B:文件解密 C:放弃并返回上级菜单 请选择(A—C):

? 带有阴影的填充兰色的矩形框可以由阴影字符块组成; ? 矩形框的大小取决于能写下菜单命令;

? 菜单的表达用字符方式显示。

20. 试编写程序在屏幕上新建一个10×10的小窗口,在新建的窗口中循环显示0~9十个数字,按Q键退出。 ? 设置字符显示方式;

? 10×10的小窗口可以由35列到44列,8行到17行构成;

? 0~9的ASCII码为30H~39H,从0开始显示,然后ASCII码值加1,显示下一个数字,

依次类推,到9再更新为0;

? 程序中要能识别键盘输入,判断输入字符是否是“Q”,以决定继续循环,还是退出。 21. 试编写程序在屏幕上新建一个小窗口,窗口大小自定,在该窗口上循环显示26个大写字母,并逐行变换颜色。

? 在屏幕中央位置定义一个具有26个列的窗口,使每行刚好显示26个字母; ? 每行的颜色属性不同;

? 可以用输入字符控制结束,或定义的窗口满了则停止显示。

34

第8章 输入/输出程序设计

1. CPU与外设间的数据传送方式有哪几种?它们各有什么特点?

CPU与外设之间的数据传送方式有:程序查询传送方式、程序中断传送方式、直接存储器存取(DMA)方式及I/O处理机方式等。

查询式输入输出方式是通过对外设的状态查询,实现CPU与外设间的正确输入输出操作,从而使不同工作速度的外设可以和CPU协调工作。由于查询过程中,CPU实际上处于等待状态,不能进行其它操作,降低了CPU的效率。特别是当外部设备输入输出速度较低时(键盘、打印机等),CPU为了完成一次输入输出操作,用于查询的时间要比实际用于输入输出指令的执行时间要长得多,从而造成CPU的极大的浪费。

中断传送方式虽然能快速地响应I/O设备的传送要求,但其服务过程仍由软件来实现。每次中断处理需要保护断点、保护现场及恢复现场、恢复断点,这些操作都要占用CPU的额外时间。对某些需要高速地传送大量数据的设备(如磁盘)来说,这种中断传送方式就显得太慢。因此,希望由硬件电路来直接实现数据交换,而不必通过CPU,这就是DMA方式。DMA方式能摆脱CPU的直接干预,利用硬件控制设备DMA控制器(DMAC),实现外部设备与内存间的直接数据传送。

I/O处理机方式,简称IOP方式,早期只在一些大中型以上计算机系统中使用。IOP具有更强的独立性,它具有丰富的指令系统,有自己的存储器,IOP执行的程序存放在自己的局部存储器中,除了完成一般的输入输出操作外,还可以完成码制转换、信息的装配与拆卸、错误检测,信息搜索等许多功能。IOP可以完全独立于CPU进行操作。

2. 有多台外设都采用查询方式工作,试分析查询过程,简述这种工作方式的优缺点。

有多台外设都采用查询方式工作时,依次查询各台外设,查询到该外设时,若条件满足,则完成相应的输入/输出操作,若未满足,则查询下一台外设,所有设备查询完,再回到第一台设备继续新一轮查询。若设备较多,则可能使某些设备的等待时间太长,另外,CPU要花费大量的时间用于查询。

如果一台计算机中有多个外设同时使用程序查询方式进行I/O处理,则存在一个优先权问题。有两种方法可以处理优先次序问题:一种是给多个外设以相同的优先权,以提供平等处理的机会。例如当系统中接有多台性能相同的显示终端时,较好的方案是给它们以相等的优先权,给低速的外设赋予较低优先权,于是高速的外设总是优先得到处理,以避免信息丢失。只有在高速外设无I/O要求时,低速外设的要求才被处理。 3. 中断处理程序的典型结构包括哪几部分?

中断处理程序的结构与子程序(即过程)相似,可用定义过程的方式来编写中断处理程序。所有编写过程的一些规定和要求均适用于中断处理程序,包括用伪指令PROC/ENDP定义过程为远类型在内。中断处理程序的典型结构包括:现场保护、中断返回、中断嵌套及发中断结束命令。

4. 用指令实现:

(1)将一个字节输出到端口66H。 OUT 66H,AL

(2)将一个字节从88H端口输入。

IN AL,88H

(3)将一个在VALUE单元的字节输出到端口3FCH。 MOV SI,OFFSET VALUE MOV AL,[SI] MOV DX,3FCH

35


汇编语言程序设计教程(第二版)卜艳萍著(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:微观经济学考试试题及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: