最新微机原理和汇编语言复习资料.docx
- 文档编号:23096762
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:36
- 大小:29.63KB
最新微机原理和汇编语言复习资料.docx
《最新微机原理和汇编语言复习资料.docx》由会员分享,可在线阅读,更多相关《最新微机原理和汇编语言复习资料.docx(36页珍藏版)》请在冰豆网上搜索。
最新微机原理和汇编语言复习资料
微机原理和汇编语言复习资料
一、选择题(30分)
1.已知X=76,则[X]补=()
A.76HB.4CHC.0BCHD.0CCH
2.已知[X]补=80H,则X=()
A.80HB.0C.0FFHD.-80H
3.已知X=78,Y=-83,则[X+Y]补=()
A.0F5HB.0A1HC.0FBHD.65H
4.下列为补码表示,其中值最大的是()
A.10001000B.11111111C.000000000D.00000001
5.十六进制数88H,可以表示成下面几种形式,请找出错误的表示()
A.无符号十进制数136B.带符号十进制数-120
C.压缩BCD码十进制数88D.8位二进制数-8的补码
6.在微机系统中分析并控制指令执行的部件是()
A.寄存器B.数据寄存器C.CPUD.EU
7.在计算机的CPU中执行算术逻辑运算的部件是()
A.ALUB.PCC.ALD.AR
8.执行指令PUSHCX后堆栈指针SP自动()
A.+2B.+1C.-2D.-1
9.在标志寄存器中表示溢出的标志是()
A.AFB.CFC.OFD.SF
10.若计算机字长16位,则无符号整数表示的范围用十六进制表示为()
A.8000H~FFFFHB.0000H~7FFFH
C.0000H~FFFFHD.0001H~FFFFH
11.设物理地址(10FF0H)=10H,(10FF1H)=20H,(10FF2H)=30H,从地址10FF1H中取出一个字的内容是()
A.1020HB.3020HC.2030HD.2010H
12.某数据段存储单元的偏移地址为2200H~31FFH,则其存储空间大小是()
A.2KB.4KC.8KD.16K
13.在8086CPU标志寄存器中,ZF=1表示()
A.结果有进位B.结果为0C.结果溢出D.结果为负
14.两个操作数运算时,下列哪种情况会发生溢出()
A.两个负数相加,结果为负B.两个正数相加,结果为负
C.一正一负相加,结果为负D.两个正数相加,结果为正
15.堆栈段的逻辑地址由()组成
A.DS:
BXB.ES:
DIC.CS:
IPD.SS:
SP
16.代码段某单元的逻辑地址为3458H:
2C92H,其物理地址为()
A.37212HB.26FF2HC.34580HD.32C92H
17.在8086系统中,数据寄存器组为()
A.SI,DI,SP,BPB.AX,BX,CX,DX
C.CS,DS,ES,SSD.CF,SF,ZF,OF
18.指令MOVAX,DS:
[1000H]中源操作数的寻址方式是()
A.立即寻址B.直接寻址
C.寄存器寻址D.基址变址寻址
19.指令MOVDX,COUNT[BP][DI]的执行结果是()
A.将COUNT的值传送给DX
B.将COUNT+BP+DI的值传送给DX
C.将数据段中有效地址为COUNT+BP+DI的存储单元的值传送给DX
D.将堆栈段中有效地址为COUNT+BP+DI的存储单元的值传送给DX
20.若(AX)=2530H,(BX)=18E6H,MOV[BX],AL指令正确的执行结果为()
A.BX寄存器的值为2530HB.BL寄存器的值为30H
C.18E6H单元的值为30HD.18E6H单元的值为2530H
21.指令MOVAX,COUNT[BX]完成的操作是()
A.从存储单元读出一个字送入AXB.从存储单元读出一个字节送入AX
C.将AX中的一个字写入存储单元D.将AX中的一个字节写入存储单元
22.一条指令中目的操作数不允许使用的寻址方式是()
A.寄存器寻址B.立即寻址C.变址寻址D.寄存器间接寻址
23.用直接寻址将AL的内容保存到16号单元,可以用()指令
A.MOVDS:
[0016H],ALB.MOVAL,DS:
[0016H]
C.MOVDS:
[0010H],ALD.MOVAL,DS:
[0010H]
23.经过汇编产生的二进制目标文件是()
A..ASMB..OBJC..EXED..MAP
24.不能用MOV指令赋初值的段寄存器是()
A.DSB.ESC.CSD.SS
25.在COUNTDB5这条存储单元定义伪指令中,COUNT称为()
A.助记符B.变量C.符号D.标号(带冒号的)
26.将字符串“INPUT”保存到存储单元MESS,正确的伪指令是()
A.INPUTDBMESSB.MESSDBINPUT
C.INPUTDB‘MESS’D.MESSDB‘INPUT’
27.若X已经定义为字型,可以用()改变X为字节型
A.BYTEPTRXB.OFFSETXC.TYPEXD.LABLEX
28.INCWORDPTR[BX]指令中的操作数的数据类型是()
A.字节B.字C.双字D.四字
29.ABCDW1,$+2,5,7,其中$代表()
A.当前的偏移地址值为0B.当前的偏移地址值为1
C.当前的偏移地址值为2D.当前的偏移地址值为3
30.()可用来指出一条汇编指令所在存储单元的符号地址
A.变量B.数组名C.标号D.偏移值
31.汇编语言中存储单元的属性不能是()
A.字符CHAR型(无字符型)B.字节BYTE型C.字WORD型D.双字DWORD型
32.用指令MOVBX,SEGCOUNT可以得到存储单元COUNT的()
A.物理地址B.段地址C.偏移地址D.属性
33.下列指令中,有错误的是()
A.MOVAH,BLB.MOVDS,AXC.MOVCL,DXD.MOVSI,90
34.若AX=1E30H,BX=12E4H则ADDAL,BL的执行结果为AL和CF的值是()
A.14H,0B.24H,0C.14H,1D.24H,1
35.若BL=83H,CF=1,则ADCBL,90H执行后,AH=()
A.14HB.15HC.16HD.17H
36.若DX=1010H,BX=0923H,则SUBDX,BX的执行结果为()
A.168DHB.06EDHC.F6DDHD.0087H
37.从键盘输入一串字符使用DOS功能调用()
A.1号功能B.2号功能C.9号功能D.10号功能
38.DOS功能调用中,功能号应写入()寄存器中
A.ALB.AHC.DLD.DH
39.显示一个字符的DOS功能调用要求将字符放入( )
A.DS:
DXB.DS:
BXC.BLD.DL
40.获得BUFFER单元有效地址的汇编指令为()
A.MOVBX,BUFFERB.LEABX,BUFFER
C.MOVBX,[BUFFER]D.LDSBX,BUFFER
41.关于字节乘法的指令错误的说法是()
A.被乘数隐含在AL中B.乘数和被乘数都是字节型
C.被乘数隐含在AX中D.乘积是字型
42.关于字除法错误的说法是()
A.16位被除数AX与8位源操作数相除
B.32位被除数DX:
AX与16位源操作数相除
C.商在AX寄存器,余数在DX寄存器中
D.带符号除法的商和余数都是补码表示的数
43.在分支指令中,利用符号进行判断的指令是()
A.JCB.JSC.JZD.JO
44.在执行条件转移指令前,不能形成条件的指令是()
A.CMPB.SUBC.ANDD.MOV
45.在条件转移指令中,结果不为0则转移的指令是()
A.JNSB.JZC.JSD.JNZ
46.两个带符号数比较,不大于则转移的指令是()
A.JLEB.JBEC.JLD.JAE
47.带符号数乘以2的操作可以用()移位指令实现
A.SALAL,1B.SALAL,2C.SHRAL,1D.ROLAL,2
48.将AL的2、6位屏蔽为0,其余位保持不变,指令为()
A.ADNAL,42HB.ANDAL,0BBHC.ORAL,26HD.ADDAL,0FBH
49.将AL的第4位置1,其余位不变,指令为()
A.ORAL,40HB.ANDAL,40HC.ORAL,10HD.ANDAL,1FH
50.将AL清0的指令为()
A.ANDAL,ALB.ORAL,0C.XORAL,AL(自身异或)D.XORAL,0
51.将键盘输入的小写字母变为大写,用指令()
A.ANDAL,20HB.ANDAL,0DFHC.ORAL,20HD.0RAL,0DFH
52.用户程序中数据段的段基址,用()指令给出
A.MOVAX,CODEB.MOVCS,CODEC.MOVCS,DATAD.MOVAX,DATA
MOVCS,AXMOVDS,CSMOVDS,CSMOVDS,AX
53.下列描述错误的是()
A.LOOP指令以CX为循环控制计数器
B.LOOPE指令循环的条件是CX≠0且ZF=0
C.LOOPE指令循环的条件是CX≠0且ZF=1
D.LOOPNE指令循环的条件是CX≠0且ZF=0
54.串处理操作需要循环重复执行,()不能出现在串处理指令中
A.REPB.REPZC.REPNZD.LOOP
55.在串传送指令中,串的传送方向由()标志位决定
A.DFB.CFC.ZFD.OF
56.循环指令LOOP可以实现()的循环
A.循环次数已知B.循环次数未知
C.循环次数累加D.循环次数不变
57.在多重循环程序中,从外循环再次进入内循环时,内循环()
A.不必考虑B.重新赋值C.置0D.置1
58.循环指令的控制条件除CX之外,还可以把标志位()作为控制条件
A.CFB.SFC.ZFD.OF
59.下列指令不能构成循环的是()
A.JMPB.JNZC.LOOPD.DECCX
60.在串处理指令中,设置方向标志为1的指令是()
A.STDB.CLDC.HLTD.CWD
61.如果子程序的属性为FAR,下列说法错误的是()
A.可以段内直接调用B.可以段间间接调用
C.可以段间直接调用D.只能段间调用
62.在子程序调用过程中,断点指的是()
A.CALL指令本身B.CALL的下一条指令
C.CALL的下一条指令的地址D.子程序名
63.执行CALLSUB1指令后,完成的操作是()
A.将SUB1的偏移地址入栈保护B.将断点的偏移地址入栈保护
C.将断点的偏移地址送IPD.将SUB1的段地址送CS,偏移地址送IP
64.子程序的属性是用()定义的
A.CALLB.PROCC.FARD.RET
65.执行段间返回RET指令时,从堆栈中()
A.先弹出断点的偏移地址,再弹出段基址B.先弹出断点的段基址,再弹出偏移地址
C.弹出断点的偏移地址D.弹出断点的段基址
66.子程序结构中,保存现场指的是()
A.保存CALL指令B.保存断点的地址
C.保存主程序用到的寄存器D.保存子程序用到的寄存器
67.CALL和RET指令的用法,正确的说法是()
A.CALL和RET指令都对堆栈操作B.只有CALL指令使用堆栈
C.只有RET指令使用堆栈D.CALL和RET指令都不使用堆栈
68.CALL和RET指令对堆栈操作,正确的说法为()
A.CALL指令从堆栈中取出子程序的地址B.RET指令从堆栈中取出子程序的地址
C.CALL指令从堆栈中取出断点的地址D.RET指令从堆栈中取出断点的地址
69.执行CALLFARPTRSUBR2指令时,正确的说法是()
A.先将断点的段地址入栈,再将偏移地址入栈
B.先将断点的偏移地址入栈,再将段地址入栈
C.先将SUBR2的段地址入栈,再将偏移地址入栈
D.先将SUBR2的偏移地址入栈,再将段地址入栈
70.用CALL指令调用子程序时,从子程序返回到主程序()
A.用JMP指令B.用INT21H指令
C.用RET指令D.可以用RET,也可以用JMP
71.在用CALL指令实现子程序嵌套调用时,子程序的RET指令()
A.返回到最初始的调用程序中B.返回到上一级调用程序中
C.可以换为JMP指令返回D.可以不用
72.子程序参数传递时,用存储单元传参方式,()
A.只能主程序访问传参单元B.只能子程序访问传参单元
C.主程序和子程序都能访问传参单元D.主程序读传参单元,子程序写传参单元
73.用寄存器传参,在子程序做现场保护时,()
A.传参寄存器必须保存B.传参寄存器不必保存
C.传参寄存器可以改写D.根据情况确定保存与否
74.如果在子程序中进行了现场保护,那么子程序()
A.恢复现场在RET指令之前B.恢复现场在RET指令之后
C.直接用RET指令返回D.直接用JMP指令返回
75.有关宏的作用,下列说法不正确的是()
A.宏可以被多次调用B.宏调用时不用保持断点
C.宏定义体中不可以有标号D.宏展开是汇编程序完成的
76.宏调用是通过()实现的
A.汇编指令B.宏指令C.宏展开D.机器指令
77.宏定义的伪指令是()
A.PROC…….ENDPB.MACRO…….ENDM
C.SEGMENT……ENDSD.STRUC……ENDS
78.宏与子程序的区别是()
A.宏可以被多次调用B.宏是一段程序
C.宏可以实现参数传递D.宏调用时不用返回
79.80X86系统中,CPU是通过()获取硬件可屏蔽中断发生的
A.INTR引脚B.NMI引脚C.中断允许标志IFD.INTn指令
80.CPU对软件中断的处理,下列说法正确的是()
A.中断允许标志IF必须为1
B.通过8255A中断控制器管理中断
C.不需要得知中断类型号
D.执行INTn指令时立即转入中断处理
81.在中断处理系统中,中断向量指的是()
A.中断类型号B.中断子程序C.中断子程序的入口地址D.中断源
82.有关中断向量表的说法正确的是()
A.中断向量表就是中断向量
B.中断向量表中保存的是中断向量
C.中断向量表中保存的是中断类型号
D.中断向量表中保存的是中断子程序
83.在80X86中断系统中,中断优先级最高的是()
A.可屏蔽中断B.非屏蔽中断C.内部中断D.单步中断
84.8086系统的中断向量表位于()
A.内存的0~255号字节单元B.BIOS的ROM中
C.硬盘的0~255号字节单元D.系统的CMOS中
85.当硬件中断发生时,CPU通过()获取中断类型号
A.INTR引脚B.INTn指令C.数据总线D.中断源
86.在8086指令系统中,取出中断向量的指令是()
A.MOVAH,35HB.MOVAH,25HC.MOVAH,31HD.MOVAH,4CH
INT21HINT21HINT21HINT21H
87.编写中断子程序时,下列说法错误的是()
A.允许中断嵌套B.不允许开中断
C.应该保护和恢复现场D.必须用IRET指令返回
88.中断调用和子程序调用过程相同的是()
A.保护断点B.保存标志寄存器
C.将IF和TF清零D.中断源有优先级
89.BIOS中断设置位置的指令是()
A.MOVAH,01HB.MOVAH,02HC.MOVAH,01HD.MOVAH,02H
INT10HINT10HINT21HINT21H
90.BIOS中断从键盘读入一个字符的指令是()
A.MOVAH,00HB.MOVAH,01HC.MOVAH,00HD.MOVAH,01H
INT10HINT10HINT16HINT21H
91.BIOS中断显示一个字符串的指令是()
A.MOVAH,0EHB.MOVAH,13HC.MOVAH,02HD.MOVAH,09H
INT10HINT10HINT21HINT21H
92.DOS中断读取系统时间的指令是()
A.MOVAH,1CHB.MOVAH,2CHC.MOVAH,1CHD.MOVAH,2CH
INT10HINT16HINT21HINT21H
1.P30习题2.3
8086/8088系统中存储器的逻辑地址和物理地址之间有什么关系?
表示的范围各为多少?
答:
8086/8088CPU有20根地址线,可以直接寻址1MB的存储空间,其地址范围为:
0~220-1,用十六进制表示是:
00000H~FFFFFH,与存储单元一一对应,称为存储单元的物理地址。
由于8086/8088CPU内部寄存器都是16位的,它只能处理16位的二进制数。
为了能够提供20位的物理地址,系统采用了将存储器分段的方法,具体采用的方法是将1MB存储空间按64KB的大小分成16个段,每个段的起始地址由段寄存器来确定,由指令提供一个存储单元相对于起始地址的16位偏移量。
这样系统就将整个1MB的存储空间分为16个互相不重叠的逻辑段了,每个段的地址范围是:
0~216,也就是:
0000H~FFFFH
逻辑地址是在程序中使用的地址,它由段的起始地址和偏移地址(偏移量)两部分组成(都是16位),逻辑地址的表示为“段地址:
偏移地址”。
物理地址与逻辑地址的关系是:
物理地址=段地址X16+偏移地址
2.P30习题2.6
AX、BX、CX、DX能用来存放偏移地址吗?
哪些可以?
哪些不可以?
答:
这四个都是通用数据寄存器,他们可以以字(16位)的形式访问(AX、BX、CX、DX),也可以以字节(8位)形式进行访问(AL、AH、BL、BH、CL、CH、DL、DH)。
其中AX称为累加器,BX称为基址寄存器,CX称为计数器,DX称为数据寄存器。
四个寄存器中只有BX可以用来存放偏移地址,其他三个都不能用于存放偏移地址。
3.P30习题2.12
8086有哪4种逻辑段?
各逻辑段分别是什么用途?
答:
8086为了达到寻找1MB的目的,将1MB的空间分成64K大小的逻辑段,在8086CPU内有四个寄存器:
CS、DS、SS、ES,分别用来存放代码段、数据段、堆栈段和附加段的段基址。
代码段用来存放程序的指令序列。
数据段用于存储程序运行所需要的各种原始数据、中间结果和最后结果。
堆栈段是按“后进先出、先进后出”原则组织的一段特殊的存储区域,计算机在进行子程序调用和中断时,都会用到堆栈段。
附加段的作用与数据段基本相同,也用来保存数据。
4.P96习题3.1
8086指令系统可以处理哪些数据类型?
答:
8086指令系统可以处理的数据,
按照存放的位置不同可以分为:
寄存器中的数据、内存中数据和I/O端口的数据;
按照数据的长度不同可以处理:
8位和16位的二进制数;
按照存储大小不同可以处理:
字节类型和字类型的数据。
5.P167习题5.6
请说明堆栈段的作用,在程序中是否一定要定义堆栈段,如果定义的话用什么方法定义,请举例说明。
答:
堆栈段是一个特殊的段,在程序中可以定义它,也可以不定义它。
除了要生成COM型执行文件的源程序,一个完整的源程序一般最好定义堆栈段。
如果在程序中不定义堆栈段,那么,操作系统在装入该执行程序时将自动为其指定一个64KB的堆栈段。
在源程序中定义堆栈段的方法有2种:
方法1:
STACK1SEGMENT
DB256DUP(?
)
TOPLABLEWORD
STACK1ENDS
方法2:
STACK1SEGMENTSTACK
DB256DUP(?
)
STACK1ENDS
在方法1中定义之后必须在代码段中的ASSUME语句中包含:
SS:
STACK1,而方法2就不用在ASSUME语句中进行说明。
6.P185习题6.7
在子程序中常用的参数传递方法有哪些?
答:
参数传递必须事先约定,子程序根据约定从存储器或存储单元取原始数据(入口参数),进行处理后将处理结果(出口参数)送到约定的寄存器或存储单元,返回主程序。
子程序调用时常用的参数传递方法有三种:
1、用寄存器传递:
适用于参数传递较少的情况,传递速度快;
2、通过地址表传送参数地址:
适用于参数较多的情况,但传递速度较慢;
3、用堆栈传递:
适用于传递参数较多,存在嵌套或递归调用的情况。
7.P185习题6.4
简述段内和段间子程序调用指令CALL的主要区别。
答:
CALL指令有两种格式,分别用于段内和段间子程序的调用。
1、段内调用的格式是:
CALLNEARPTR子程序名(或CALL子程序名)
指令执行的操作:
返址(返回的地址,也称断点)入栈:
①(SP)←(SP)-2;
②((SP)+1,(SP))←(IP)
转子程序:
(IP)←(IP)+16位偏移地址(偏移量)
2、段间调用的格式是:
CALLFARPTR子程序名
指令执行的操作:
返址(返回的地址,也称断点)入栈:
①(SP)←(SP)-2;
②((SP)+1,(SP))←(CS)
③(SP)←(SP)-2;
④((SP)+1,(SP))←(IP)
转子程序:
(IP)←子程序入口地址的偏移地址
(CS)←子程序入口地址的段基址
从上面两种调用可以看出,段内调用不需要把CS的值保存到栈区,因为子程序和主程序在同一个段内;而段间调用要把CS和IP同时保存到栈区,以便子程序返回时能够根据CS和IP的值准确地计算出断点的地址值。
8.P215习题8.3
什么是中断?
中断向量表有什么作用?
答:
中断是一种CPU中止正在执行的程序而转去处理特殊事件的操作。
这些引起中断的事件称为中断源,中断处理过程一般包括:
中断请求、中断响应、中断处理和中断返回四个步骤。
中断向量表是中断服务程序入口地址的偏移值和段基址,一个中断向量占4个字节空间,它是中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址。
四、填空题(20分)
1.P146:
例5.7
已知某班学生的计算机成绩按学号从1开始按小到大的顺序排列在TAB表中,假定要查询的学生的学号放在变量NO中,请将查询的学生成绩放在ENGLISH中,程序如下:
INCLUDEPRINT.ASM
DATASSEGMENT
TABDB80,85,86,71,79,96
DB83,56,32,66,78,84
NODW8
ENGLISHDB?
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 微机 原理 汇编语言 复习资料
![提示](https://static.bdocx.com/images/bang_tan.gif)