电子科大微机原理练习题Word文档格式.docx
《电子科大微机原理练习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《电子科大微机原理练习题Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
数据出栈后,SP自动加1。
9.内存单元的物理地址可以唯一确定该单元在存储空间中的位置。
()
二、选择
1、指令是();
时钟周期是();
总线周期是();
指令周期是();
物理地址是();
逻辑地址是()。
A)CPU进行各种动作的最小时间刻度
B)唯一代表存储空间每个字节单元实际位置的地址,用5位16进制数表示
C)CPU访问1字节的存储单元或进行1字节的I/O操作所花的时间
D)由段基址和偏移量两部分组成,均用4位16进制数表示
E)完成各种操作的命令
F)执行每条指令所用的时间,不同指令的该时间不一
2、选择下面各操作或周期的时间,将合适的字母代号填入括号中:
基本总线周期是();
空转周期是();
等待状态是();
复位操作();
中断响应周期是()。
(A)1~n个TCLK(B)不小于4TCLK(C)4TCLK
(D)两个连续总线周期(E)若干个T1
3、8086/8088CPU从功能结构上看,是由()组成的。
(A)控制器和运算器(B)EU和BIU
(C)控制器和20位物理地址加法器(D)执行单元和总线接口单元
4、8086有20条地址总线,最大可寻址的I/O空间是()。
(A)32KB(B)1024KB(C)64KB(D)640KB
5、在以下关于8086/8088对存储器进行分段管理的叙述中,正确的是()。
A)1MB内存的空间可分为若干个64KB的段
B)段的大小根据具体需要而定,最大不超过64KB
C)段的起始地址能被16整除
D)段与段之间可以交叉
6、指令队列具有()的作用。
(A)暂存操作数地址(B)暂存操作数
(C)暂存指令地址(D)暂存预取指令
7、若8086CPU工作于最小方式,当M//IO=0、/RD=1、/WR=0时,表明CPU正在进行()的操作。
(A)存贮器读(B)存贮器写
(C)I/O读(D)I/O写
8、为与慢速外设相配合,CPU在一个总线周期的()时刻采样READY信号,以确定是否需要在()之间插入Tw。
(A)T1前沿(B)T3前沿
(C)T3和T4(D)T4和T1
9、一个16字的数据区,若起始地址为71A0:
DDF6H,则该数据区的最后一个字的物理地址是()。
(A)7F814H(B)7E814H
(C)7E815H(D)7F815H
三、填空题
1、8086/8088CPU从基本构成上可分为、和三部分;
从功能结构上可分为和两部分。
2、在“8088内部有16条数据总线,对外有8条总线”的表述中,两处“总线”分别指总线和总线;
“总线控制器”8288所生成的总线和“总线接口单元”所指的总线,均是指总线。
3、在8086的最大组态工作方式下,系统控制总线必须通过一片构成;
数据总线应由增强驱动能力;
地址总线则应使用进行锁存。
4、在IBMPC/XT的控制核心电路中,8282的作用是
;
8286的作用是
8288的作用是。
5、若一个存储单元的物理地址为32460H,其段寄存器值为3120H,则这个单元的偏移量为H。
6、设SS=2250H,SP=0140H。
向堆栈中存入5个字后,SP=H;
之后又取出两个字,SP=H。
7、8086/8088系统启动时,CS=H,IP=H。
若开机后要求系统从00800H单元开始执行程序,则应在内存地址H处设置一条跳转指令。
8、若一个程序在执行之前CS=093AH,IP=0100H,则该程序应从物理地址为H处开始。
若SS=3A50H,SP=1000H,则栈底的物理地址是
H、栈顶的物理地址是H。
9、一个由20个字组成的数据区,其起始地址是610AH:
1CE2H。
则该数据区的首、末单元的物理地址分别是:
H、H。
10、设若DS=9100H,则当前数据段可寻址的最大存储空间是从物理地址
H到H。
第三部分指令与程序
第一节指令基本格式和寻址方式
1、指令是依赖于机器的,没有通用性。
()
2、8088/8086的所有指令均由操作码、操作数两部分组成。
()
3、8088/8086的指令采用等长编码的方式,即每条指令均被编译为相同字节长度的机器码。
()
4、在寄存器间接寻址方式中,任何一个通用寄存器都可被用来指明操作数的有效地址。
5、几种寻址方式中,立即数寻址、直接寻址和寄存器寻址实际上都并不需要计算有效地址。
()
二、填空
1、如果使用BP进行间接寻址,则CPU会默认为在段中寻找操作数。
若仍要在数据段中寻址,可在操作数前加上前缀。
除了取指令必须在段、必须在堆栈段、对目的串寻址必须在
段三种情况外,其他间接寻址方式都可通过加前缀来改变段。
2、在寄存器间接寻址方式中,可使用的寄存器有:
基址寄存器和
变址寄存器和。
3、设DS=09B4H,ES=09BCH,SS=09A2H,BX=0030H,BP=1500H,SI=2106H,DI=40F0H,内存单元DATA的地址偏移量为0100H。
分别写出下列各条指令源操作数的寻址方式和物理地址:
(1)MOVAL,DATA
寻址方式:
物理地址:
H
(2)MOVBX,SS:
[0100H]
(3)MOVAX,[BP+DI]
(4)MOVCL,[BX][SI]DATA
(5)MOVDX,ES:
[SI]
(6)MOVDH,DS:
[BP]
(7)MOVAL,ES:
DATA[DI]
第二节数据传送类指令
(请仔细判别下列指令是否有错;
如有,请指出错误之处)
1、MOVDS,SS()
2、MOVAX,ES()
3、MOVCL,BP()
4、MOVDS,[DI]()
5、PUSHIP()
6、POP7000H()
7、XCHGDS,DX()
8、INAX,3()
9、OUT[0E2AH],AL()
10、LEACS,BUFFER()
11、LESDS,BUFFER()
12、LDSSI,0010H()
1、在数传类指令中,只有和两条指令会影响标志位的值,其中指令是唯一可以改变TF标志的指令。
2、在三条地址传送指令LEA、LES、LDS中,只计算地址偏移量、并不真正寻址的是指令;
必须进行二次寻址、并把所得双字单元的第二个字赋值给段寄存器ES的是指令。
3、使用查表指令XLAT时应注意:
表的首址必须送入通用数据寄存器
中,表内各数据的长度必须是,表最长不超过个数据。
4、堆栈实质上是按原则组织起来的一段连续的内存单元。
它用寄存器来指示栈顶。
堆栈操作以为单位进行,1个字数据入栈时,(填高或低)字节先放入栈顶;
出栈时,(填高或低)字节先被弹出。
5、设SS=3000H,SP=2000H。
执行指令PUSHAX后,AH的内容被保存在物理地址为H的内存单元中。
第三节算术运算类指令
1、ADDBX,0FH()
2、ADCDS,0FH()
3、SUBVAR1,VAR2(VAR1、VAR2表示两个变量)()
4、AAADX()
5、ADDAL,20H
AAA()
6、CMPCH,0FFFFH()
7、CMPDI,ES()
8、NEG55AAH()
9、MULAX,BL()
10、IMULDL
AAM()
11、CBWBX,BL()
12、DIVCL
AAD()
1、将一个字节扩展为一个字、或将一个字扩展为一个双字,有符号扩展和零扩展两种方式。
指令CBW、CWD是对进行扩展。
设若AL=8DH,则执行指令CBW之后AH=;
若AX=3FFFH,则执行指令CWD之后DX=。
2、对于同一个BX而言,分别执行指令INCBX与ADDBX,1之后的不
同之处在于。
同样地:
若DX=0000H,原CF=0,则执行指令DECDX后,(Flags)L=H;
而执行指令SUBDX,1后,(Flags)L=H。
3、对加法进行组合BCD码调整的指令是。
它要求两个相加,所得的和在中;
调整之后AL中仍为码,若有进位,体现在。
4、乘法的十进制调整指令是,它要求两个相乘,对所得的积做到的转换。
5、与加、减、乘法的十进制调整指令相比,除法AAD指令在使用方面的显著特点是。
它实际上是AAM指令的逆运算,即实现到的转换。
6、若SI=0A41H,则执行指令CMPSI,58E7H之后:
SI=H,(Flags)L=
H,OF=。
7、若AX=2C09H,BL=6,则执行指令
ADDAL,BL
AAA
之后,AX=H,CF=,AF=。
8、若BL=93H,则执行指令NEGBL之后:
BL=,OF=,(Flags)L=H。
第四节逻辑运算和移位指令
1、AND4E5FH,0FF0H()
2、TEST[4E5FH],0FF0H()
3、OR[4E5FH],[0FF0H]()
4、XORBX,CL()
5、NOTBX,0FF0H()
6、NOT0FF0H()
7、SHLES:
[BP],1()
8、RCRDX,CX()
9、ROL[SI+2],4()
10、SARCH,CL()
1、若要判断某带符号操作数的正、负而不影响其原值,可用的方法有:
(1)先执行指令,然后判标志位;
(2)先执行指令,然后判标志位;
(3)先执行指令,然后判标志位;
(4)先执行指令,然后判标志位;
(5)先执行指令,然后判标志位;
(6)先执行指令,然后判标志位;
(7)先执行指令,然后判标志位,等。
2、在所有逻辑运算指令中,除了指令不影响标志位而外,其余各条对标志位的影响都是相同的:
它们使、标志自动清0,对标志无定义。
3、指令可完成两个操作数的逻辑异或运算。
利用异或的性质,若要将某字节操作数的低4位取反、高4位保持不变,可使之与立即数相异或;
若要将它的偶数位保持、奇数位取反,可使之与立即数相异或。
4、TEST指令对源、目操作数进行运算,结果反映在上。
若VAR单元的内容为0B55H,执行指令TESTVAR,0F00H之后,VAR单元的内容为H,(Flags)L=H,OF=。
5、所有的移位指令对标志位具有类似的影响:
由操作数中移出的二进制位均移入中;
当移位次数为1时,若移位前后操作数的符号位有变化,则使。
6、用SAR指令移1位,相当于把一个(填有或无)符号数除以2;
用SHR指令移1位,相当于把一个(填有或无)符号数除以2。
设DL=0B5H,执行指令SARDL,1后:
DL=H,CF=,OF=;
接着再执行指令SHRDL,1后:
DL=H,CF=,OF=。
7、若AX=8F1AH,BX=0C44H,CX=3D05H,DX=0E960H,内存单元DATA处存放的数据依次为82H、0BH。
分别执行以下各条指令后,写出有关寄存器及标志位的值:
(1)ANDDL,BH执行后:
DL=H,(Flags)L=H,OF=。
(2)TESTDATA,CX执行后:
(DATA)=H,(Flags)L=H,OF=。
(3)ORAL,DATA执行后:
AL=H,(Flags)L=H,OF=。
(4)NOTDX执行后:
DX=H,(Flags)L=H,OF=。
(5)XORBL,CH执行后:
BL=H,(Flags)L=H,OF=。
(6)SALDATA,CL执行后:
(7)SHRAH,1执行后:
AH=H,(Flags)L=H,OF=。
(8)RORAX,CL执行后:
AX=H,(Flags)L=H,OF=。
(9)若CF原值为1,执行RCLDX,1后:
第五节
串操作指令
(请仔细判别下列指令是否有错;
1、MOVSDS:
BUF1,BUF2()
2、MOVSWBUF1,BUF2()
3、REPZCMPSB()
4、SCASBUF,AL()
5、LODSAX,[SI]()
6、STOSSS:
[DI]()
1、能够使用串操作指令进行处理的所谓“串”,在物理地址上一定是
的,各串元素的数据长度也一定相等。
2、所有的串操作指令都遵循以下规则:
源串默认在段中,用寄存器
做指针;
目的串必须在段中,用寄存器做指针。
无论有无重复前缀,每执行1次串操作,都会自动修改,修改的方向取决于。
3、带有重复前缀的串操作指令能否继续执行串操作,由寄存器的值以及决定。
例如,REPNE前缀首先使CX减1,然后判断:
当、且时继续执行串操作,否则执行下一条指令。
第六节控制转移指令及处理器专用指令
1、JMP指令与CALL指令相比较,前者无须保存断点。
2、“相对寻址”方式仅用于所有的条件转移指令。
()
3、CALL指令和INT指令都能引起软件中断。
4、用CLI指令可屏蔽INTR中断。
()
5、当CPU因HLT或WAIT指令处于暂停或等待状态时,均可通过外部硬中断恢复正常程序执行。
()
6、IRET指令依次使CS、IP和标志寄存器出栈。
7、无论INT指令或INTO指令,执行后总会使SP减6。
1、对段内直接调用的CALL指令,目标地址的寻址方式是。
2、JMP指令在寻址目标地址方面与指令类似;
在堆栈操作方面,两者的区别在于。
“短跳”的跳转范围在距原JMP指令的范围内,“近跳”的范围在内,“远跳”则可在内。
3、用CMPAX,DX指令比较两个无符号数的大小,若DX大,则转至标号GREAT处。
可完成上述功能的条件转移指令是。
4、同上题:
若将AX、DX中的数值视为带符号数,要完成同样功能的条件转移指令是。
5、执行INT指令时,CPU自动将、、的内容依次压入堆栈保护。
6、与CALL指令成对使用的指令是,该指令出现在
处;
必须与INT指令成对使用指令的是,该指令出现在处。
7、设若SS=5000H,SP=0100H,CS=5200H,IP=0048H。
则执行指令INT5后:
SP=H,物理地址500FAH~500FFH中的内容依次分别是
H、H、H、H及标志寄存器的值;
新的CS值在物理地址为的单元处;
新的IP值则在物理地址处。
8、能使HLT指令脱离暂停状态的条件是:
、
、。
若是由硬件中断引起的处理器脱离暂停态,中断返回时将回到处。
9、与HLT不同,WAIT指令在条件下使CPU进入等待态,而能使CPU恢复正常运行的条件是。
指令与程序综合练习
1、8086有四个段寄存器CS、DS、ES、SS,它们的值均可用堆栈操作指令实现保护和恢复。
2、8088/8086的段寄存器之间可以直接互传数据。
3、REPZ串操作前缀控制重复操作的条件是:
CX≠0,或ZF=1。
4、指令LEASI,BUF与指令MOVSI,OFFSETBUF的功能相同。
5、设AL=57H,执行指令TESTAL,80H之后,AL=57H。
6、设DS=12A0H,SS=12D0H,BP=0010H。
执行指令MOVAX,DS:
[BP]时,源操作数的物理地址是12A10H。
7、指令INAX,40H将字数据40H送入累加器中。
8、CPU执行MOV指令时,产生存储器读/写信号的部件是总线接口控制单元BIU。
9、指示性语句仅对汇编程序起提示作用,对机器码的生成无影响。
10、伪指令语句VALDB0和VALDW0的作用相同。
11、表达式中的操作数可以是变量,但不能是标号。
12、连接程序是把汇编语言程序翻译成机器码的系统程序。
13、数据既可从数据段中获得,亦可从其他段中获得。
14、汇编语言程序是用汇编语言编制的应用程序,简称汇编程序。
15、在标号Jone、AC_I、3MEN、ADD中,只有3MEN不可用。
16、伪指令是由汇编程序在汇编过程中执行的指令。
17、判断下列指令是否正确。
对错误的指令,说明出错原因:
1)MOVDS,1000H()
2)MOV[100],23H()
3)ADDAX,[BX+BP+6]()
4)PUSHDL()
5)INAX,[3FH]()
6)OUT3FFH,AL()
7)LESSS,[SI]()
8)POP[AX]()
9)IMUL4CH()
10)SHLBX,5()
11)INT300()
12)XCHGDX,0FFFH()
1、指出下列指令中源、目操作数所用的寻址方式:
1)MOVSI,2100H源操作数是()方式,目操作数是()方式;
2)SBBDISP[BX],7源操作数是()方式,目操作数是()方式;
3)AND[DI],AX源操作数是()方式,目操作数是()方式;
4)ORAX,[609EH]源操作数是()方式,目操作数是()方式;
5)MOV[BX+DI+30H],CX
源操作数是()方式,目操作数是()方式;
6)PUSHES:
[BP]源操作数使用了()寻址方式;
7)CALL[DI]DISP目标地址使用了()寻址方式;
8)JNZShort_label目标地址使用了()寻址方式;
(A)立即数寻址(B)寄存器寻址
(C)直接寻址(D)寄存器间接寻址
(E)变址寻址(F)基址加变址寻址
(G)相对寻址
2、在PC系列的微机中,CPU要读取I/O端口地址302H中的8位数据时,应该使用指令()。
(A)INAL,302H(B)OUT302H,AL
(C)MOVDX,302H(D)MOVDX,302H
INAL,DXINAX,DX
3、若原AX=5678H,BX=9ABCH。
在执行指令ADDAL,BL之后,标志寄存器的低8位应该是()。
(A)11H(B)94H(C)95H(D)15H
4、下列