微机原理与接口技术Word文件下载.docx
《微机原理与接口技术Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术Word文件下载.docx(48页珍藏版)》请在冰豆网上搜索。
2.从内存单元偶地址开始存放的数据称为规则字。
()√
3.EU执行算术和逻辑运算后的结果特征可由控制标志位反映出来。
4.指令执行中插入TI,和TW是为了解决CPU与外设之间的速度差异。
5.总线操作中第1个时钟周期通常是取指周期。
6.8086系统复位后重新启动时从内存地址FFFF0H处开始执行。
四、简答题
1.8086微处理器中的指令队列起什么作用(EU从指令队列取指令的缓冲作用),其长度是多少字节(6个字节)?
P26
2.什么是逻辑地址(无符号32位二进制数),它由哪两部分组成(段地址和偏移地址)?
8086的物理地址是如何形成的(物理地址=段地址*10H+偏移地址)?
P35
3.8086微机系统中存储器为什么要分段(8086系统内的地址寄存器均是16位,只能寻址64KB;
将1MB存储器分成逻辑段,每段不超过64KB空间,以便CPU操作。
),各逻辑段之间的关系如何(可重叠、交叉、紧密连接和分离)?
P34
4.I/O端口有哪两种编址方式(统一编址和独立编址),8086的最大I/O寻址空间是多少(64KB)?
P36
5.8086的最大工作模式(8086、8087和8089通过总线控制器8288产生对总线的控制信号)和最小工作方式(8086直接产生总线控制信号)的主要区别是什么?
他们分别应用在何种场合(多处理器和单处理器系统)?
P39
6.简述实地址方式(由段地址和偏移地址计算产生物理地址,其物理地址可以超过20位)和虚拟8086方式(由段地址和偏移地址计算产生的有效物理地址为20位)的区别。
P41
7.简述Pentium微处理器的主要特性。
P44
五、分析题
1.有一个由10个字组成的数据区,其起始地址为1200H:
0120H。
试写出该数据区的首末存储单元的实际地址(12120H~12120H+10*2-1=12133H)。
2.若一个程序段开始执行之前,(CS)=33AOH,(IP)=0130H,试问该程序段启动执行指令的实际地址是什么(33A00H+0130H=33B30H)?
3.有两个16位的字31DAH和5E7FH,它们在8086系统存储器中的地址分别为00130H和00134H,试画出它们的存储示意图。
地址
存储空间
00130H
0DAH
00131H
31H
00134H
7FH
00135H
5EH
4.将字符串“Good!
”的ASCII码依次存人从01250H开始的字节单元中,画出它们存放的内存单元示意图。
01250H
‘G’
01251H
‘o’
01252H
01253H
‘d’
01254H
‘!
’
5.8086微处理器读/写总线周期各包含多少个时钟周期(4个时钟周期)?
什么情况下需要插入TW等待周期(当T3上升沿检测到READY=0时,在T3与T4之间插入TW)?
应插入多少个TW,取决于什么因素(READY=0持续的时间长短)?
什么情况下会出现空闲状态TI(BIU不执行总线操作的时钟周期。
例如:
8086执行MUL、DIV指令长指令时,BIU有段时间不执行总线操作;
因此,插入TI)?
P38
3思考与练习题
1.寄存器间接寻址方式中,要寻找的操作数位于()中。
A.通用寄存器B.内存单元C.段寄存器D.堆栈
2.下列指令中正确的是()。
A.MOVAL,BXB.MOVCS,AXC.MOVAL,CLD.MOV[BX],[SI]
3.下列指令中错误的是()。
A.MOVAX,1234HB.INCBXC.SRLAX,2D.PUSHDX
4.设(SP)=1010H,执行POPAX后,SP中的内容为()。
A.1011HB.1012HC.1OOEHD.100FH
5.给定(AL)=80H,(CL)=02H,指令SHRAL,CL执行后的结果是()。
A.(AL)=40HB.(AL)=20HC.(AL)=C0HD.(AL)=E0H
6.将AX清零并使CF位清零,下面指令错误的是()。
A.SUBAX,BXB.XORAX,AXC.MOVAX,0(不影响FR)D.ANDAX,0OOOH
1.计算机指令通常由_操作码字段_和_操作数字段_两部分组成;
指令对数据操作时.按照数据的存放位置可分为_立即数、寄存器操作数、存储器操作数_。
2.寻址的含义是指_寻找操作数的过程_;
8086指令系统的寻址方式按照大类可分为_与操作数有关的寻址方式、与I/O端口有关的寻址方式_;
其中寻址速度最快的是_立即数寻址_。
P54~P57
3.指令MOVAX,ES:
[BX+O1OOH]中,源操作数位于_物理地址为ES*10H+BX+0100H的存储单元_;
读取的是_附加数据ES_段的存储单元内容。
4.堆栈是一个特殊的_存储器区域_,其操作是以_2字节单元_为单位按照__先进后出_原则来处理;
采用_SP_指向栈顶地址,入栈时地址变化为_SP<
=(SP)-2_。
P57
5.I/O端口的寻址有_直接端口寻址和间接端口寻址_两种方式;
采用8位数端口地址(直接端口寻址)时,可访问的端口地址为_0~255_;
采用16位数端口地址(间接端口寻址)时,可访问的端口地址为_0~65535_。
P57~P58
三、分析计算题
1.指出如下指令中源操作数和目的操作数的寻址方式:
(1)MOVAX,100H
(2)MOVCX,AX
(3)ADD[SI],1000(4)SUBBX,[SI+100]
(5)MOV[BX+300],AX(6)ANDBP,[DI]
源操作数目的操作数
(1)MOVAX,100H立即数寄存器
(2)MOVCX,AX寄存器寄存器
(3)ADD[SI],1000立即数寄存器间接
(4)SUBBX,[SI+100]变址寄存器
(5)MOV[BX+300],AX寄存器变址
(6)ANDBP,[DI]寄存器间接寄存器
2.分析如下指令的正误,对错误指令说明出错误原因并加以收正:
(1)MOV[1200],23H
(2)MOV1020H,CX
(3)MOV[1000H],[2000H](4)MOVIP,O00H
(5)PUSHAL(6)OUTCX,AL
(7)INAL,[80H](8)MOVCL,3300H
(1)MOV[1200],23H;
未指明数据类型MOVBYTEPTR[1200],23H
(2)MOV1020H,CX;
立即数不能作为目标操作数MOV[1020H],CX
(3)MOV[1000H],[2000H];
两操作数不能均是内存单元MOVBYTEPTR[1000H],2000H
(4)MOVIP,000H;
IP不能在MOV指令中出现JMP000H
(5)PUSHAL;
操作数必须是16位PUSHAX
(6)OUTCX,AL;
CX不能作为端口地址的间接访问寄存器OUTDX,AL
(7)INAL,[80H];
直接端口地址写法错误INAL,80H
(8)MOVCL,3300H;
两操作数的数据类型不一致MOVCX,3300H
3.给定(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(2010lH)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H。
试分析如下指令执行后,AX寄存器中的内容:
(1)MOVAX,12O0H
(2)MOVAX,BX
(3)MOVAX,[1200H](4)MOVAX,[BX]
(5)MOVAX,1100H[BX](6)MOVAX,[BX+SI]
(7)MOVAX,[11OOH+BX+SI]
(1)MOVAX,1200H;
(AX)=1200H
(2)MOVAX,BX;
(AX)=0100H
(3)MOVAX,[1200H];
(AX)=4C2AH
(4)MOVAX,[BX];
(AX)=3412H
(5)MOVAX,1100H[BX];
(6)MOVAX,[BX+SI];
(AX)=7856H
(7)MOVAX,[1100H+BX+SI];
(AX)=65B7H
4.已知(AX)=75A4H,CF=1,分别写出如下指令执行后的结果:
(1)ADDAX,08FFH
(2)INCAX
(3)SUBAX,4455H(4)ANDAX,OFFFH
(5)ORAX,0101H(6)SARAX,1
(7)RORAX,1(8)ADCAX,5
(1)ADDAX,08FFH;
(AX)=7EA3HCF=0
(2)INCAX;
(AX)=75A5HCF=1
(3)SUBAX,4455H;
(AX)=314FHCF=0
(4)ANDAX,0FFFH;
(AX)=05A4HCF=0
(5)ORAX,0101H;
(AX)=75A5HCF=0
(6)SARAX,1;
(AX)=3AD2HCF=0
(7)RORAX,1;
(8)ADCAX,5;
(AX)=75AAHCF=0
5.给定(SS)=8000H,(SP)=2000H,(AX)=7A6CH,(DX)=3158H。
执行如下程序段,画出每条指令执行后寄存器的内容和堆栈存储内容的变化情况:
PUSHAX
PUSHDX
POPBX
POPCX
PUSHAX;
(AX)=7A6CH,(SP)=1FFEH,(81FFEH)=7A6CH
PUSHDX;
(DX)=3158H,(SP)=1FFCH,(81FFCH)=3158H
POPBX;
(BX)=3158H,(SP)=1FFEH
POPCX;
(CX)=7A6CH,(SP)=2000H
6.试分析如下程序段执行完后,BX的内容:
817FH
MOVBX,1030H;
(BX)=1030H
MOVCL,3;
(CL)=3
SHLBX,CL;
(BX)=8180H
DECBX;
(BX)=817FH
四、设计题
1.现有两个双倍精度字数据1234FEDCH和11238765H,分别存放在数据段中从1000H和2000H开始的存储单元中,低位在前,高位在后。
要求两数相加之后所得的和放在从1000H开始的内存单元中,设计该程序段。
;
3_4_1.ASM
MOVSI,2000H;
SI指向2000H
MOVDI,1000H;
DI指向1000H
CLC;
CF=0
MOVCX,4;
CX=4,循环相加4次
LL:
MOVAL,[SI];
取数
ADCAL,[DI];
相加
MOV[DI],AL;
保存
INCSI;
SI增1
INCDI;
DI增1
LOOPLL;
CX减1,不为0,转LL
MOVAX,0
ADCAX,0
MOV[DI],AX
2.设AX、BX中保存有带符号数,CX、DX中保仔无符号数,请写出实现以下功能的指令或程序段。
(1)若(CX)<
(DX),则转移到NEXT1。
CMPCX,DX
JBNEXT1
(2)若(AX)>
(BX),则转移到NEXT2。
CMPAX,BX
JGNEXT2
(3)若(CX)=0,则转移到NEXT3。
CMPCX,0或JCXZNEXT3
JENEXT3
(4)若AX中内容为负,则转移到NEXT4。
TESTAX,8000H或ADDAX,0
JNZNEXT4或JSNEXT4
3.设堆栈寄存器(SS)=2250H。
堆栈指示器(SP)=0140H,若在堆栈中存入5个字数据,则SS、SP的内容各是多少?
[(SS)=2250H、(SP)=0136H]如果又取出2个字数据,SS、SP的内容各是多少?
[(SS)=2250H、(SP)=013AH]
4思考与练习题
1.汇编语言程序中可执行的指令位于()中。
A.数据段B.堆栈段C.代码段D.附加数据段
2.以下内容不是标号和变量属性的是()。
A.段属性B.地址属性C.偏移属性D.类型属性
3.DOS功能调用中采用屏幕显示单个字符,其值保存在()寄存器。
A.ALB.AHC.DLD.DH
4.DOS功能调用中,从键盘读取一个字符并回显的是()。
A.01HB.02HC.09HD.0AH
5.循环程序设计中,要考虑的核心问题是()。
A.循环的控制B.选择循环结构C.设置循环参数初始值D.修改循环控制参数
6.对于宏指令和子程序,下列说法不正确的是()。
A.宏指令不能简化目标程序
B.子程序可以简化目标程序,但执行时间长
C.子程序在执行过程中由CPU处理
D.宏指令在执行时要保护和恢复现场
1.汇编语言是一种面向_CPU指令系统_的程序设计语言,采用_指令助记符_表示操作码和操作数,用_符号地址_表示操作数地址。
P82
2.汇编语言的语句可由_名字、操作符、操作数、注释_四部分组成;
其中_操作符_是必须具备的。
P83
3.机器指令是指_发送给CPU的命令_,在运行时由_CPU_执行;
伪指令是_发送给汇编程序的命令_,在汇编过程中由_汇编程序_进行处理;
宏指令是指_代表一段源程序_,通常用于_经常用到的一个程序段_场合。
P87、P107
4.子程序的基本结构包括_子程序说明、现场保护及恢复、子程序体、子程序返回_等几个部分;
子程序的参数传递有_寄存器、堆栈、存储器_等方法。
P104、P105
5.DOS功能调用可完成对_完成对文件、设备、内存_的管理;
BIOS的主要功能是_外设的控制;
如系统加电自检、引导装入及对键盘、磁盘、显示器、打印机、异步串行通信口等的控制_。
6.给定如下程序段,在每条指令的右边写出指令的含义和操作功能,指出该程序段完成的功能及运行结果:
MOVAX,0;
AX<
=0
MOVBX,1;
BX<
=1
MOVCX,5;
CX<
=5
LP:
ADDAX,BX;
=AX+BX
ADDBX,2;
=BX+2
LOOPLP;
=CX-1;
若CX≠0,转LP
HLT;
停机
(1)该程序段完成的功能是_
_。
(2)程序运行后:
(AX)=_36_;
(BX)=_11_;
(CX)=_0_。
1.伪指令是在汇编中用于管理和控制计算机相关功能的指令。
2.程序中的“$”可指向下一个所能分配存储单元的偏移地址。
3.宏指令的引入是为了增加汇编程序的功能。
4.多重循环的内循环要完整地包含在外循环中,可嵌套和并列。
5.子程序结构缩短了程序的长度,节省了程序的存储空间。
1.完整的汇编源程序应该由哪些逻辑段组成(数据段、堆栈段、代码段)?
各逻辑段的主要作用是什么(存放数据变量及其预置初值、保存中断和子程序的断点和参数传递、存放程序执行的代码)?
P87
2.简述在机器上建立(为源程序起一个有意义的文件名字,并创建成文本文件)、编辑(在文本编辑软件EDIT.EXE环境下,输入和编辑源程序)、汇编(通过汇编程序ASM.EXE或MASN.EXE,将源程序会变成机器语言目标程序.OBJ)、连接(运用连接程序LINK.EXE,将目标程序.OBJ连接生成执行程序.EXE)、运行(在DOS状态下,直接运行执行程序)、调试(运用调试程序DEBUG.EXE将执行程序跳入调试界面状态,并进行断点设置调试运行或单步调试运行操作)汇编语言源程序的过程和步骤。
P94
3.什么是伪指令(发送给汇编程序的命令)?
程序中经常使用的伪指令有哪些(数据定义、符号定义、段定义、过程定义、结构定义、模块定义与连接、程序计数器$和起点定义ORG)?
简述其主要功能(数据定义为变量及其类型分配存储单元,并赋予初值;
符合定义给一个符号重新命名;
段定义指定逻辑段的名称、范围、断的定位类型、组合类型和类别;
过程定义为程序段定义成过程,并赋予过程名字,以便用CALL指令调用;
结构定义用于相互关联的数据定义;
模块定义与连接用NAME为源程序汇编后的目标程序指定模块名,以便连接该目标模块,并生成执行程序文件;
$在汇编过程中,用于存储单元分配计数器,该计数器可在指令操作数表达式中引用;
ORG为数据变量和程序段指定起始位置。
)?
P87~P93
4.什么是宏指令(代表某功能的一段源程序)?
宏指令在程序中如何被调用(在源程序中,通过宏名字(即宏指令名)进行调用)?
P107
5.子程序与宏指令在程序的使用中有何共性(宏和子程序都可用来简化程序,并可使程序多次对它们调用。
)及不同特点(宏操作可直接传递和接收参数,不通过堆栈或其他媒介;
子程序不能直接带参数,需有传递参数时,必须通过堆栈寄存器和存储器进行。
宏调用只能简化源程序的书写,并没有缩短目标代码长度;
子程序调用能缩短目标程序长度。
应用好操作并不会在执行目标代码时增加额外的时间开销;
子程序调用由于需要保护和恢复现场和断点,因而延长目标程序的执行时间)?
P109
五、设计题
1.编程实现求S=(X2+Y2)/Z的值,并将结果放人RESULT单元。
;
XT4_5_1.ASM
DATASEGMENT;
定义数据段
XDW15
YDW-32
ZDW280
RESULTDW2DUP(?
);
定义结果保存单元
DATAENDS;
数据段结束
CODESEGMENT;
定义代码段
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA;
初始化DS
MOVDS,AX
MOVAX,X;
取出被乘数X存入AX中
IMULX;
执行X2操作
MOVCX,AX;
乘积的低位字转存至CX
MOVBX,DX;
乘积的高位字转存至BX
MOVAX,Y;
IMULY;
执行Y2操作
ADDAX,CX;
X2+Y2的低位字与Z的低位字相加
ADCDX,BX;
X2+Y2的高位字相加
IDIVZ;
(X2+Y2)/Z
MOVRESULT,AX;
商存入RESULT单元
MOVRESULT+2,DX;
余数存入RESULT+2单元
MOVAH,4CH
INT21H;
返回DOS
CODEENDS;
代码段结束
ENDSTART;
汇编结束
2.编程序完成计算S=(A+B)/2-2(AANDB)。
XT4_5_2.ASM
ADW15
BDW-32
SDW?
MOVAX,A;
取出被乘数A存入AX中
ADDAX,B;
A+B
SARAX,1;
(A+B)/2
MOVBX,AX;
存入BX中
ANDAX,B;
AANDB
SALAX,1;
(AANDB)*2
SUBBX,AX;
(A+B)/2-2(AANDB)
MOVS,BX;
存入S单元
3.试编程实现将内存中的若干个无符号字数据中的最大值和最小值找出来,并开辟独立的存储区域保存结果。
XT4_5_3.ASM
DATASEGMENT
ARRDW123,456,67,0,34,90,89,67,0,256
CNEQU($-ARR)/2
ZDDW0;
最大(数组中任何数均大于AX内容)
ZXDW0FFFFH;
最小(数组中任何数均小于BX内容)
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
MOVAX,DATA
MOVDS,AX;
MOVSI,OFFSETARR;
数组首地址送SI
MOVCX,CN;
数组元素个数送CX