《汇编语言》练习题库.docx
《《汇编语言》练习题库.docx》由会员分享,可在线阅读,更多相关《《汇编语言》练习题库.docx(22页珍藏版)》请在冰豆网上搜索。
《汇编语言》练习题库
华中师范大学网络教育学院
《汇编语言程序设计》练习测试题库
一.选择题(只有一个正确答案,填在题干前的括号里)
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
A.CF=1
B.CF=0
C.SF=OF=1
D.SF=OF=0
22.在8086/8088中,执行单步中断服务程序的第一条指令时,TF、IF的状态为____。
A.TF=0,IF=0
B.TF=0,IF=1
C.TF=1,IF=0
D.TF=1,IF=1
23.在数据传送过程中,不能直接与立即数进行传送的是_____。
A.通用寄存器
B.A和D是正确的
C.段寄存器
D.存储器
24.下面指令中不能完成BX+CX→AX的操作的是_____。
A.MOVAX,BX
B.ADDBX,CX
ADDAX,CXMOVAX,BX
C.XCHGAX,CX
D.ADDAX,BX
ADDAX,BXADDAX,CX
25.ANDDX,NUMAND0FFABH上述指令中出现两个AND,正确的解释是____。
A.均是逻辑运算符
B.均是指令助记符
C.前者是指令助记符,后者为逻辑运算符
D.两个AND操作均在程序执行时得到运算结果
26.指令代码的地址存放在寄存器____中。
A.DS和SI
B.BX和BP
C.ES和DI
D.CS和IP
27.JumpWORDPTR[SI]指令实现的是___。
A.段内直接寻址
B.段内间接寻址
C.段间直接寻址
D.段间间接寻址
28.立即寻址方式中的立即数可以为_______位。
A.8
B.9
D.8和16
29.能充当间接寄存器寻址方式的寄存器是___。
A.BX
B.AX
C.CX
D.DX
30.能充当变址寻址方式的基址寄存器是___.
A.SI
B.BH
C.CH
D.DH
31.能充当相对变址寻址方式的位移量的位数是___.
A.8
B.16
C.32
D.8和16
32.段内直接寻址方式只改变_____寄存器的内容。
A.IP
B.CS
C.AX
D.BX
33.段内间接寻址方式只改变_____寄存器的内容。
A.AX
C.CX
D.IP
34.段间直接寻址方式只改变_____寄存器的内容。
A.IP
B.CS
C.DS
D.IP和CS
35.段间间接寻址方式只改变_____寄存器的内容。
A.IP
B.CS
C.DS
D.IP和CS
36.段内直接寻址方式中的位移量是_____位。
A.8
B.16
C.32
D.8和16
37.在寄存器相对寻址方式MOVAX,[SI+DAT]中,偏移量DAT应是一个_____。
A.原码
B.补码
C.反码
D.移码
38.在下述指令的表示中,不正确的是_____。
A.MOVAK,NUM[BX]
B.MOVAX,[BX]NUM[S1]
C.MOVAK,[BX+BP+NUM]
D.MOVAX,NUM[BP+D1]
39.下列指令执行时出错的是_____。
A.ADDBUFI,BUF2
B.JMPDWORDPTRDAT[BX]
C.MOVAX,[BX+D]NUM
D.TESTAL,08H
40.指令JMPDWORDPTR[SI][BX]属于____寻址。
A.寄存器间接寻址
B.相对基址变址寻址
C.段内转移直接寻址
D.段间转移间接寻址
41.下述对PSW寄存器中标志位不产生影响的指令是____。
A.JMPNEXT
B.TESTAL,80H
C.SHLAL,1
D.INCSI
42.下述对PSW寄存器中标志位产生影响的指令是____。
A.LOOPDON
B.NOTAX
C.NEGAX
D.XLATBUF
43.进行两个补码整数9CH和7AH相加运算后,会产生____。
A.无溢出且无进位
B.无溢出但有进位
C.有溢出且有进位
D.有溢出但无进位
44.从键盘输入一个十进制数3042,它所对应的非压缩型BCD码的存储形式是____。
A.03,00,04,02
B.02,04,00,03
C.33,30,34,32
D.32,34,30,33
45.累加器AL中的内容为74H,执行CMPAL,47H指令后,累加器AL中的内容为____。
A.2DH
B.OD3H
C.74H
D.00H
46.已知(AX)=1234H,执行下述三条指令后,(AX)=____。
MOVBX,AX
NEGBX
ADDAX,BX
A.1234H
B.0EDCCH
C.6DCCH
D.0000H
47.执行IMUL指令时,如果乘积的高一半不是低一半的符号扩展,则()。
A.CF=0,OF=0
B.CF=0,OF=1
C.CF=1,OP=0
D.CF=1,OF=1
48.若(DS)=2000H,(BX)=0050H,(20050H);12H,(20051H)=34H,执行MOVAX,[BX]指令后,AX寄存器中的内容是____。
A.(AX)=0050H
B.(AX)=0012H
C.(AX)=1234H
D.(AX)=3412H
49.下列描述不正确的是____。
A.执行指令XORAX,AX后不会改变累加器原有的内容
B.执行指令TEXTAX,8000H后,不会改变加器原有的内容
C.执行指令ANDAX,0FFPFH后,不会改变累加原有的内容
D.执行指令ORAX,0000H后,不会改变累加器原有的内容
50.指出下列指令正确的是____。
A.MOVAX,12H
B.ADDADRI,ADR2
C.1NC[BX]
D.XORAX,[CX]
51.以下指令中不是逻辑运算指令的是____。
A.XOR
B.NOT
C.OR
D.CWD
52.在移位类指令中,只有____指令不仅仅是在空缺位补零。
A.SAL
B.SAR
C.SHL
D.SHR
53.移位类指令使用时,若需移动多位,则应先将该位数置于____中。
A.AL
B.AH
C.CL
D.CH
54.____是定义字节变量的。
A.DB
B.DD
C.DW
D.DQ
55.____是定义字变量的。
A.DB
B.DW
C.DD
D.DT
56.____是定义双字节变量的。
A.DB
B.DW
D.DQ
57.若某数据段定义如下:
DATASEGMENT
F1DB25H,28H,46H,34H
F2DW3356H,2536H,1242H
F3DD4DUP(?
)
DATAENDS
则执行指令语句:
MOVAH,TYPEFl
MOVAL,TYPEF2
之后,AX中的内容为____。
A.102H
B.104H
C.201H
D.以上均不正确
58.ASSUME伪指令说明了汇编程序所定义段与段寄存器的对应关系,它只影响____的设定。
A.源程序
B.目标程序
C.汇编程序
D.连接程序
59.在汇编过程中,汇编程序在第____遍扫描之后产生机器代码。
A.1
B.2
C.3
60.在ASSUME伪指令设定了段寄存器后,无需在程序段中用指令完成赋值的寄存器是____。
A.CS
B.DS
C.SS
D.ES
61.流程图中的执行框表明的是某一段程序或某一个模块的功能,它的特点是___。
A.一个入口一个出口
B.一个入口多个出口
C.多个入口一个出口
D.多个入口多个出口
62.在8086/8088基址变址寻址指令中,允许使用的寄存器有____。
A.AX,BX,CX,DX
B.SP,IP
C.CS,ES,DS,SS
D.BX,BP,SI,DI
63.以BUF为起始地址的字节单元中建立一个输入缓冲区,在DOS功能子程序的调用中,执行0AH号功能后,用户从键盘输入的字符是从____个字节开始存放。
A.第一
B.第二
C.第三
D.第四
64.下列描述中正确的是____。
A.在汇编语言编程中,必须有数据段和代码段
B.在汇编语言编程中,数据可以安排在代码段中
C.在汇编语言编程中,必须分别完整的定义数据段、堆栈段、附加段和代码段
D.在汇编语言编程中,必须采用过程的形式编写
65.子程序重定位可选在内存中的整个区域内,进行程序设计时子程序内应采用____。
A.绝对地址
B.逻辑地址
C.相对地址
D.物理地址
66.在进行二重循环程序设计时,下列描述正确的是____。
A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内
B.外循环初值应置外循环之内;内循环初值应置内循环之内
C.内、外循环初值都应置外循环之外
D.内、外循环初值都应置外循环之内,内循环之外
67.COM文件只能由一个段组成,最大长度为____。
A.1K
B.
B.64KB
C.1MB.
D.无限制
二.判断题(只需判断对错,在题干前括号里对√,错×)
()1.指令MOVAX,[BX][SI]也可写作MOVAX,[BX+SI]。
()2.CF标志位,不但可以用来判断无符号数有无溢出,而且也可以判断带符号数有无溢出
()3.立即数是不允许被用作目的操作数的。
()4.一个符号经EQU赋值后,在整个程序中,这个符号不能再重新赋值。
()5.因为SP所指栈顶为“实”栈顶,所以在入栈和出栈操作时都要先修改堆栈指针SP,再执行入栈、出栈操作。
()6.因为计算机的存储空间是分段管理的,而汇编程序存放在存储器中,无论取指还是存操作,都要访问内存,因此,汇编语言源程序的编写必须遵照存储器分
段编写。
()7.汇编好的目标程序要经过连接和定义之后才能交给机器运行。
()8.存储区存取数据或地址采用的原则和存储程序区存取指令代码的原则一样都是“先进先出”。
()9.只有通过汇编才能产生目标程序。
()10.换码指令可将累加器AL中的一个值/码翻译为内存表格中的另一个值/码,但不送回AL。
()11.MOV指令中的源和目的操作数中至少要有一个是寄存器。
()12.执行部件负责指令的执行,它主要由寄存器组、算逻部件、标志寄存器组成。
()13.在用户程序中,一般都需要用户自己建立堆栈段,大小可由用户根据需要选定,最大不超过64K字节。
()14.机器语言指令由操作码和地址码两部分组成.
()15.寄存器法就是于程序的入口参数和出口参数都在约定的寄存器之中。
()16.计算机与外设传送数据的常用方式有如下四种:
无条件传送、查询传送、中断传送、直接存储器传送。
()17.串寻址中,8086规定SI指向目的串,DI指向源串。
()18.串传送时的串长度值必须放在CL中。
()19.串处理指令处理存放在存储器里的数据串,所有串指令都可以处理字节或字。
()20.变量的偏移地址是指变量所在段的段首址到该变量定义语句的字节距离。
()21.所有移位指令都可以作字或字节操作。
()22.数据寄存器主要用来保存操作数或运算结果等信息。
()23.指示器变址寄存器组一般用来存放操作数的偏移地址,用作指示器或变址寄存器。
()24.标志寄存器用来保存在一条指令执行之前,CPU所处状态的信息及运算结果的特征。
()25.8086微处理器只能进行16位地址运算,表示16位地址,寻找操作数的范围最多也只能是64K字节。
()26.逻辑运算是按字节操作的.
()27.子程序结构相当于高级语言中的过程。
()28.寄存器寻址方式中指令所指明的寄存器就是操作数的存放地址,即操作数的指令指明的寄存器中。
()29。
在变址寻址方式中,操作数在存储器中,而操作数偏移地址EA是指令中指明的寄存器的内容与指令中给出的位移量相加之和。
()30.IN和OUT指令提供了字和字节两种使用方式,选用哪一种,则取决于外设端口宽度。
()31.LEA有效地址送寄存器指令格式为:
LEAREG,SRC
()32.减法指令格式:
SUBDST,SRC
()33.乘法指令对除CF和OF以外的条件码位无定义。
()34.除法指令要求字节操作时商为8位,字操作时商为16位。
()35.在汇编语言中,变量是一个数据存储单元的名字,即数据存放地址的符号表示。
()36.变量的段属性即指定义变量所在段的段首址,当需要访问该变量时,该段首址一定要在某一段寄存器中。
()37.标号是机器指令语句存放地址的符号表示,也可以是过程名。
()38.语句MOVSI,OFFSETBUF的功能是:
将变量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.加法指令的汇编语言格式为:
ADDDST,SRC,其中SRC表示____地址。
13.加法指令的汇编语言格式为:
ADDDST,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.