华中师范大学网络教育学院
《汇编语言程序
》练习测试
库
一 .选择题(只有一个正确答案,填在题干前的括号里)
1.一台完整的计算机系统包括_________。
A.硬件系统和软件系统
B.系统硬件和系统软件
C.控制器、运算器、存储器、输入设备和输出设备
D.操作系统、机器语言、汇编语言、高级语言
2.汇编程序属于_________。
A.硬件系统
B.软件系统
C.系统软件
D.用户软件
3.简单的汇编语言程序可以通过_________来建立
A.连接程序
B.调试程序
C.汇编程序
D.编辑程序
4.8086/8088微处理器包含有两个独立的部件_________和_________。
A.R和ALU
B.CS和IP
C.BIU和EU
D.CPU和I/0设备
5 .进行汇编语言编程时,设计者应该考虑一些基本的要求,下列叙述不正确的是____。
A.程序应该结构化
B.程序应该执行速度快
C.程序应该占用空间大
D.程序应该简明、易读、易懂
6 .一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是____。
A.12C5BH
B.12B6BH
C.12C59H
D.12BFEH
7 .字符串HOLLO的ASCII代码表示为____.
A.484F4C4C4FH
B.484F4D4D4FH
C.494F4C4C4FH
D.494F4D4D4FH
8.如果内存中某一单元的物理地址是20B4CH,那么它的逻辑地址是_________:212CH。
A. IEA2H
B. IEB2H
C. IFA2H
D. IFB2H
9,现有段地址和偏移地址为1025H:0F2AH,那么它所对应存储单元中的物理地址是
_________。
A. 1107AH
B. 01F4FH
C. 11F4FH
D. 1117AH
10.一个有16个字的数据区,它的起始地址是1000H:117AH,请指出这个数据区最末一个字单元的物理地址是_________。
A.111ACH
B.11190H
C .11198H
D.1119AH
11.在机器内部操作中,CPU与存储器之间的任何信息交换使用的都是_________。
A.逻辑地址
B.物理地址
C.有效地址
D.相对地址
12.十进制数-80用16位补码表示是_________。
A. FFBOH
B. 8080H
C. FF80H
D. F080H
13 . 设(DS)=6789H,偏移量为84H,该字节的物理地址是_____。
A. 67974H
B. 6873H
C. 67914H
D. 681DH
14.在程序执行过程中,IP寄存器中始终保存的是_____。
A.上一条指令的首地址
B.下一条指令的首地址
C.正在执行指令的首地址
D.需计算有效地址后才能确定地址
15.一个16位相对偏移量的范围是_____。
A. 0-65535
B. 0000H-FFFFH
C. 8000H-7FFFH
D. 8000H-FFFFH
16.与BP寄存器组合才能形成堆栈中物理地址的寄存器是_____。
A.CS寄存器
B.IP寄存器
C. DS寄存器
D.SS寄存器
17.在程序状态字寄存器PSW中,作为
指令操作结果的标志是_____。
A.CF,OF,PF,AF,SF,ZF
B.CF,PP,ZF,SF
C.OF,DF,IF,SF,ZF,CF
D,1F,DF,OF,CF
18.PSW寄存器中共有_____位条件状态位,有_____位控制状态位。
A. 6、 3
B. 3、6
C. 8、 4
D. 4、8
19.8086/8088微处理器有_____地址线,直接寻址内存空间的范围是_____。
A.10条,64KB
B.20条,64KB
C.16条,1MB
D.20条,1MB
20. CPU执行的指令将从代码段取得,而用来给出当前代码段的代码段寄存器是_____。
A.CS
B.DS
C.SS
D.ES
21 .用CMP指令判断无符号数A
格式为: LEA REG,SRC
( )32. 减法指令格式: SUB DST,SRC
( )33. 乘法指令对除CF和OF以外的条件码位无定义。
( )34. 除法指令要求字节操作时商为8位,字操作时商为16位。
( )35. 在汇编语言中,变量是一个数据存储单元的名字,即数据存放地址的符号表示。 ( )36. 变量的段属性即指定义变量所在段的段首址,当需要访问该变量时,该段首址一定要在某一段寄存器中。
( )37. 标号是机器指令语句存放地址的符号表示,也可以是过程名。
( )38.语句MOV SI,OFFSET BUF的功能是:将变量BUF的偏移地址送入SI,其后的源操作数也属于立即寻址方式。
( )39. 地址表达式中允许出现不带方括号的寄存器符号。
( )40. 在数据定义语句中,如果表达式中出现变量和标号,则是取其偏移地址值参加运算。
( )41. 操作项可以是指令、伪操作,但不可以是宏指令的助记符。
( )42. 存储器的物理地址是由段地址和偏移地址组合而成的。
三.填空题
1.软件是为了____、_____和维护计算机而编制的各种____的总和。
2.把汇编源程序翻译成目标程序的语言程序称为______。汇编程序进行翻译的过程叫做
______。
3.控制器负责把指令逐条从 ______中取出,经_____ 后向全机发出取数、执行和存数等控制命令,以保证完成程序所要求的功能。
5.PSW是一个16位的寄存器,其中状态标志位有_______位,控制标志位有_____位。
6.存储器按段划分,每个段的大小可在______范围内选取任意个_______数。
7.段的起始地址______起始于任意地址,在1MB的地址空间中可以选取 _____个段起始地址。
8.计算"00000000"和"01010101"的与运算结果是。
9.计算"00000000"和"01010101"的或运算结果是。
10.计算"00000000"和"01010101"的非运算结果是。
11.计算"00000000"和"01010101"的异或运算结果是。
12.加法指令的汇编语言格式为:ADD DST,SRC,其中SRC表示____地址。
13.加法指令的汇编语言格式为:ADD DST,SRC,其中DST表示____地址
14.在SHL指令中移位次数由_____决定,CNT可以是___或____。
15. 所有移位指令都可以作___或______操作。
16.算术移位指令适用于_____运算;而逻辑移位指令则用于____运算。
17.循环移位指令不影响除____和____以外的其他条件标志。
21.在字操作中,当方向标志DF=0时用____,当方向标志DF=1时用____。
22.转移可以分成两类:______和_______。
23.段内转移是指在同一段的范围之内进行转移,此时只需改变__寄存器的内容。段间转移则是要转到另一个段去执行程序,此时不仅要修改IP寄存器的内容,还需要修改_____寄存器的内容才能达到目的。
24.转移目标地址由新的_____和______两部分组成。
25.段内直接短转移格式只允许在____到____字节的范围内转移。
26.条件转移指令根据上一条指令所设置的_____来判别测试条件。
27. RET指令放在子程序的____,它使____程序在功能完成后返回调用程序继续执行。
28.CALL指令和RET指令都______条件码。
29.中断分为____中断和_____中断两类。
30.当CPU响应一次中断时,应将___和___和____保存入栈。
31.变量仅代表本数据存储区中的____数据单元。
32.字类型变量中存放的16位操作数_____传送到8位的寄存器AL中?
33._____运算符用来指明某个变量、标号或地址表达式的类型属性。
34._____是机器指令语句存放地址的符号表示,也可以是过程名。
35.运算符______用于临时给变量、标号或地址表达式指定一个段属性。
36.运算符THIS与______具有类似的功能,即指定某个变量、标号或地址表达式的类型。
37.不带方括号的寄存器符号不是______。
38._____运算符分离出其后变量或标号所在段的段首址。
39._____运算符分离出其后变量或标号的偏移地址。
40._____运算符取其后变量或标号的类型。
41.取变量所含的数据存储单元个数算符______。
42._____用来取其后常量或地址表达式的高字节数据作为运算结果。
43.一般说来,名字项可以是_____或_____。
44.操作项可以是______、______或______。
45.操作数项由一个或多个______组成,多个操作数项之间一般用逗号分开。
46.______用来说明一段程序或一条减几条指令的功能,它是可有可无的。
47.______可以是常数、寄存器、标号、变量或由表达式组成。
48.无分支,无循环,无转移的程序结构称为程序,这种程序设计
称为直流法或称为_______。
49. 顺序结构程序设计主要考虑如何选择简单的有效______,如何选择_____单元和_____单元。
50.在顺序结构的流程图中,执行框有_____个,但判断框。
51.在汇编语言程序设计中,以中断方式结束程序返回系统,送入AH寄存器中的功能号是______或______。
52.在编写汇编浯言程序时,常常对存储单元赋产一个名字,这些存储单元一般有二种类型的用途:常数单元、_____单元及_____单元。
53.当循环次数已知时,通常使用_______实现循环。
54.循环计数器可根据寄存器的分配情况,选用_____通用寄存器或存储单元。
55.LOOP指令往回转向的标号离该指令的下一条指令所在地址的距离范围为____字节。
56.单重循环循环次数分_____和______两种情况。
57.所谓_____,即其循环体内不再包含循环结构。
58.若测试比较的结果表明_____循环条件,则继续循环,否则结束循环。
59.对于循环次数未知的情况,常用_____来控制循环。
60.在循环结构执行过程中,对循环体先执行,后判断的循环结构称为____ 循环结构;对循环体先判断,后执行的循环结构称为______循环结构。
四 .编程题
1 . 试编写一个程序段,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII码为07)。
2 .编写一个完整的汇编语言程序,在屏幕上显示“华中师范大学”的英文名称。
3 .编程求从1开始连续50个奇数之和,并将结果存放在SUM字存储单元中。
4 .已知数组A包含6个互不相等的整数,数组B包含9个互不相等的整数,试编一程序将在A、B两数组中都出现的整数存放于数组C中。
5.试编写从内存BUF单元开始的256个字单元的清零程序。
6.设在变量ADR为起始地址的字节存储单元中存放一组有符号数据,编写程序分别统计:
(1)正数的个数;(2)负数的个数;(3)0的个数。
7.在DATA1首址区有100个字节数据,试编写一个完整程序,将其中的奇、偶数分开。统计奇、偶数的个数,并将奇数送DATA2首址区,偶数送DATA3首址区。
8. 编写一程序段,将AL中的第7位和第0位,第6位和第1位,第5位和第2位,第4位和第3位互换。
9. 编制一个程序求数组变量ARRAY中有多少个二进制位为1的程序。
10.写一子程序CRLF,其功能是输出回车换行。
11. 编一程序将字节变量DATAl中的压缩BCD数转换成二进制数,并将其存储到原变量中去的程序。
12. 试编写一程序段,在CHAR为首址的26个字节单元中依次存放字母'A'~'Z'。
13. 设在DAT1,DAT2字单元中存放一双字长有符号数,编一程序段,完成求出该双字长数的绝对值后送ABS1和ABS2字存储单元。
14. 有两个无符号数分别存放于DATA1和DATA2单元,要求将两数中大的一个挑选出来,并送入DATA3单元。