问答题 [说明]
汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替机器码,用地址符号或标号代替地址码,直接同计算机的底层软件甚至硬件进行交互,具有代码优化、运行效率高等特点。本题针对的是x86平台下Microsoft公司的MASM 6.x汇编语言。
问答题 汇编语言中的数值表达式一般是指由运算符连接的各种常数所构成的表达式。汇编程序在汇编过程中计算表达式,由于在程序运行之前就已经计算出了表达式,所以运行速度没有变慢,而程序的可读性却增强了。表4-1列出了MASM常见的一些运算符及其含义,请将表4-1中①~⑥处运算符的含义写在答题纸的对应栏中。

表4-1 运算符及含义

运算符类型
运算符号与说明
算术运算符
+(加) -(减) *(乘) /(除) MOD( )
逻辑运算符
AND(与) 0R(或) XOR( ) NOT(非)
移位运算符
SHL(逻辑左移) SHR( )
关系运算符

EQ(相等) NE( ) GT(大于) LT(小于) GE(大于等于) LE( )

高低运算符
HIGH(高字节) LOW( ) HIGHWORD(高字) LOWW0RD(低字)
【正确答案】
【答案解析】①取余
②异或
③逻辑右移
④不相等或者不等
⑤小于等于或者不大于
⑥低字节 本题考查汇编语言的基本语法和应用,是比较传统的题目,要求考生仔细阅读题目中所描述的内容。
汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。汇编程序是系统软件中用于进行语言处理的系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。
本题考察汇编语言的运算符的含义。汇编语言常用的运算符有以下几种:
(1)实现+(加)、-(减)、*(乘)、/(除)、MOD(取余)的算术运算符,其中MOD也称为取模,它产生除法之后的余数,如19 MOD 7=5。
(2)实现按位AND(与)、OR(或)、XOR(异或)、NOT(非/求反)的逻辑运算符。
(3)实现对数值的SHL(逻辑左移)、SHR(逻辑右移)的移位运算符,移入高位或低位的是0。
(4)实现比较和测试符号数值的关系运算符,如EQ(相等)、NE(不相等)、GT(大于)、LT(小于)、GE(大于等于)、LE(小于等于)。
(5)实现取数值的高半部分或低半部分的高低运算符,如HIGH(高字节)、LOW(低字节)、HIGHWORD(高字)、LOWWORD(低字)。
问答题 运算符具有优先级。表4-2按照优先级从高到低排列常见的一些运算符,请从以下备选的运算符中按照优先级选择空处的运算符,将其写在对应栏中。
备选的运算符:XOR MOD HIGH AND GT

表4-2 运算符的优先级

优先级
运算符
1
( )<>[ ]
2
PTR 0FFSET SEG TYPE THIS:
3
______ LOW
4
*/ ______ SHL SHR
5
+ -
6
EQ NH ______ LT GE LE
7
NOT
8
______
9
OR ______
10
SHORT
【正确答案】
【答案解析】HIGH MOD GT AND XOR 本题考查汇编语言中运算符的优先级,常用的汇编语言运算符的优先级按照由高到低排列如下:
1. ( )<>[ ] . LENGTH SIZE WIDTH MASK
2. PTR OFFSET SEG TYPE THIS:
3. HIGH LOW
4. */MOD SHL SHR
5. + -
6. EQ NE GT LT GE LE
7. NOT
8. AND
9. OR XOR
10. SHORT
其中,尖括号“<”、“>”和圆点“.”用在结构中,冒号“:”表示段前缀。当不能确定优先级别时,建议采用圆括号“(”、“)”显式表达,它可以极大地提高程序的可读性。
问答题 BIOS软件开发接口由一批子程序组成,负责管理系统内的输入输出设备,直接为操作系统和应用程序提供底层设备驱动服务。常用的BIOS服务及功能见表4-3所示。

表4-3 常用的BIOS服务功能

BIOS服务
功能号
功能
打印屏幕服务
05H
将当前屏幕内容送到默认打印机
视频服务
10H
为显示适配器提供I/O支持
软盘服务
13H
提供软盘的读、写、格式化、初始化、诊断
串行通信服务
14H
为串行适配器提供字符输入输出
键盘服务
16H
为键盘提供I/O支持
日期服务
1AH
设置和读取时间、日期
若调用视频服务功能(10H)中的光标设置子功能(02H),将视频页上的光标移到3行14列,用如下汇编语言实现,请补充完整下面程序中的空处,将答案填写在对应栏中。
MOV AH,______H ; 十六进制表示
MOV DH,______H
MOV DL,______H
INT ______H
【正确答案】
【答案解析】02或2
03或3
0E或E
10 本题考查汇编语言在BIOS软件开发中的应用,BIOS(基本输入输出系统)是非常重要的一种软件接口,由一批子程序组成,负责管理系统中的输入输出设备,直接为操作系统(如DOS)和应用程序提供底层设备驱动服务,大多数的驱动程序以软件中断方式调用(称为BIOS设备服务例程DSR),每个BIOS的DSR都与中断向量表中的一个中断向量有关,如BIOS视频服务的中断向量为10H。
视频服务由INT 10H启动,并通过AH寄存器选择视频服务功能;待写的字符或像素一般在AL寄存器中传递;功能调用保存BX、CX、DX及段寄存器的值;X坐标(列号)在CX(图形功能)中或DL(正文功能)中传递;显示页在BH中传递,显示页从0开始计数。