微机原理与与接口技术Word下载.docx
- 文档编号:22766366
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:77
- 大小:399KB
微机原理与与接口技术Word下载.docx
《微机原理与与接口技术Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理与与接口技术Word下载.docx(77页珍藏版)》请在冰豆网上搜索。
EU完成指令译码和指令执行的工作,BIU是CPU与外部(存储器和I/O口)的接口,它提供了16位双向数据总线和20位地址总线,完成所有的外部总线操作。
具有地址形成、取指令、指令排队、读/写操作数、总线控制等功能。
4.简要解释下列名词的意义。
CPU:
中央处理单元CPU(ControlProcessingUnit)也称微处理器,是微型计算机的核心部件,由运算器ALU、控制器、寄存器组以及总线接口等部件组成。
主要完成各种运算,负责对整机的控制。
存储器:
用于存储程序和数据的硬件设备。
堆栈:
堆栈是一种数据结构,是内部RAM的一段区域。
设置堆栈的目的是用于数据的暂存,中断、子程序调用时断点和现场的保护与恢复。
IP:
指令指针寄存器,用于控制CPU的指令执行顺序(只存放偏移量),只能和代码段寄存器CS配合使用,可以确定当前所要取的指令的内存地址,且始终指向代码段中下一条将要读取到CPU指令队列的那条指令。
顺序执行程序时,CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节。
SP:
堆栈指针寄存器,用于指示堆栈的栈顶地址偏移量的寄存器,它决定了堆栈在内部RAM中的物理位置。
只能和SS段寄存器配合使用,且始终指向堆栈的栈顶,在堆栈指令中隐含的使用它来定位栈顶数据。
BP:
基址指针寄存器。
用于存放偏移量,通常和SS段寄存器配合使用,在间接寻址中用于定位堆栈段中的内存单元。
段寄存器:
由于CPU内部的寄存器都是16位的,为了能够提供20位的物理地址,8086系统中采用了存储器分段的方法。
规定存储器的一个段为64KB,由段寄存器来确定存储单元的段基址,由指令提供该单元相对于相应段起始地址的16位偏移量。
状态标志:
表示前一步操作(如加、减等)执行以后,ALU所处的状态,后续操作可以根据这些状态标志进行判断,实现转移。
控制标志:
可以通过指令人为设置,用以对某一种特定的功能起控制作用(如中断屏蔽等),反映了人们对微机系统工作方式的可控制性。
物理地址:
存储器的实际地址,它是指CPU和存储器进行数据交换时所使用的地址。
物理地址是由段地址与偏移地址共同决定的,计算物理地址的表达式为:
物理地址=段地址×
16+偏移地址
逻辑地址:
是在程序中使用的地址,它由段地址和偏移地址两部分组成。
逻辑地址的表示形式为“段地址:
偏移地址”。
机器语言:
直接用二进制编码表述的指令系统语言,通常称为机器语言,机器语言指令是计算机惟一能直接识别和执行的指令。
汇编语言:
便于记忆和使用,通常使用汇编语言(符号指令或指令助记符)来描述计算机的指令系统。
指令:
让计算机完成某种操作的命令称为指令。
指令系统:
一台计算机所能识别、执行的指令的集合就是它的指令系统。
总线:
连接计算机系统中其他主要功能部件的桥梁,是计算机系统中信息输送的枢纽,只有通过总线,计算机系统的各部件才能实现相互通信。
内部总线:
微处理器内部各个器件之间传送信息的通路。
系统总线:
微处理机机箱内的底板总线。
可分为:
ISA、EISA、VESA局部总线、PCI局部总线等。
时钟周期:
CPU时钟频率的倒数称为时钟周期,也称T状态。
总线周期:
BIU完成一次访问存储器或I/O端口操作所需要的时间称为总线周期。
一个基本的总线周期是由4个(或4个以上)时钟周期组成的。
指令周期:
执行一条指令所需要的时间称为指令周期,不同指令的指令周期的长短是不同的。
一个指令周期是由几个总线周期组成的。
5.要完成下列运算和控制,用什么标志判别?
其值是什么?
(1)比较两数是否相等?
两数相减后用零标志ZF判断,ZF=1,则相等。
(2)两数运算后结果是正数还是负数?
用符号标志SF判断,SF=1,则结果为负数。
(3)两数相加后是否溢出?
用溢出标志OF判断,OF=1,则有溢出。
(4)采用偶校验方式,判定是否要补“1”?
用奇偶标志PF判断,数据结果低8位中含有偶数个“1”时,PF=1;
不用补“1”。
(5)两数相减后比较大小。
ZF=1,两数相等。
对于无符号数,CF=1,则被减数小于减数;
CF=0,则被减数大于减数;
ZF=1,则两数相等。
对于带符号数,SF⊕OF=1,则被减数小于减数;
SF⊕OF=0,则被减数大于减数。
(6)中断信号能否允许?
用中断允许标志IF判断,IF=1,则能允许中断。
10.在实模式下对下列CS:
IP组合,求出要执行的下一条指令的存储地址。
(1)CS:
IP=1000H:
2000H=12000H
(4)CS:
IP=3456H:
AB09H=3F069H
15.说明8086系统中“最小模式”和“最大模式”两种工作方式的主要区别。
最小模式(最小工作方式):
单微处理器系统(系统中只有一个8086微处理器),所有的总线控制信号,都是直接由8086CPU产生的,适用于规模较小的微机应用系统。
当把8086的33脚MN/MX接+5V时,8086CPU就处于最小工作方式。
最大模式(最大工作方式):
多微处理器系统(包含有两个或多个微处理器,一个主处理器8086CPU,其他的处理器称为协处理器它们是协助主处理器工作的。
),主要用在中等或大规模的8086系统中。
当把8086的33脚MN/MX接地时,8086CPU就处于最大模式。
18.什么是总线周期?
CPU在读/写总线周期中,数据在哪个机器周期状态出现在数据总线上?
一个基本的总线周期是由4个(或4个以上)时钟周期T组成的。
在总线周期的第三个时钟周期T3内,高4位总线仍然输出状态信息,低16位总线上出现的是数据信号。
读----存储器或I/O端口的数据送到总线上,写----CPU的数据送到总线上。
画出8086系统最小模式系统配置电路图
第三章
1.分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。
源目的
(1)MOVAX,2048H立即数寻址寄存器寻址
(2)MOVCL,0FFH立即数寻址寄存器寻址
(3)MOVBX,[SI]寄存器间接寻址寄存器寻址
(4)MOV5[BX],BL寄存器寻址寄存器相对寻址
(5)MOV[BP+100H],AX寄存器寻址寄存器相对寻址
(6)MOV[BX+DI],‘$’立即寻址基址变址寻址
(7)MOVDX,ES:
[BX+SI]基址变址寻址寄存器寻址
(8)MOVVAL[BP+DI],DX寄存器寻址相对基址加变址寻址
(9)INAL,05H直接寻址寄存器寻址
(10)MOVDS,AX寄存器寻址寄存器寻址
2.已知:
DS=1000H,BX=0200H,SI=02H,内存10200H~10205H单元的内容分别为10H,2AH,3CH,46H,59H,6BH。
下列每条指令执行完后AX寄存器的内容各是什么?
AX内容
(1)MOVAX,0200H(AX)=0200H
(2)MOVAX,[200H](AX)=2A10H
(3)MOVAX,BX(AX)=0200H
(4)MOVAX,3[BX](AX)=5946H
(5)MOVAX,[BX+SI](AX)=463CH
(6)MOVAX,2[BX+SI](AX)=6B59H
6.指出下列指令中哪些是错误的,错在什么地方
(1)MOVDL,AX错误,源和目的操作数类型不匹配,DL是8位寄存器,AX是16位寄存器。
(2)MOV8650H,AX错误,立即数不能作为目的操作数。
(3)MOVDS,0200H错误,不能用立即数直接给段寄存器赋值。
(4)MOV[BX],[1200H]错误,不能在两个存储单元之间直接传送数据
(5)MOVIP,0FFH错误,IP不能作目的操作数或不能用立即数直接给IP寄存器赋值。
(6)MOV[BX+SI+3],IP错误,IP不能作源操作数。
(7)MOVAX,[BX][BP]错误,基址变址寻址方式必须是一个基址寄存器与一个变址寄存器,不能两个同时为基址寄存器(BX、BP均为基址寄存器)。
(8)MOVAL,ES:
[BP]正确。
(9)MOVDL,[SI][DI]错误,基址变址寻址方式必须是一个基址寄存器与一个变址寄存器,不能两个同时为变址寄存器(SI、DI均为变址寄存器)。
(10)MOVAX,OFFSET0A20H错误,OFFSET后必须是标号地址,不能是立即数。
(11)MOVAL,OFFSETTABLE错误,操作数类型不匹配,AL为8位,TABLE为16位。
(12)XCHGAL,50H错误,交换指令XCHG的操作数不能是立即数。
(13)INBL,05H错误,IN指令的目的操作数必须是累加器
(14)OUTAL,0FFEH错误,OUT指令的源操作数必须是累加器,目的操作数为I/O端口地址。
(9)INAL,05H直接寻址寄存器寻址
10.已知AX=2508,BX=0F36H,CX=0004H,DX=1864H,求下列每条指令执行后的结果是什么?
标志位CF等于什么?
(1)ANDAH,CL(AH)=04HCF=0
(2)ORBL,30H(BL)=36HCF=0
(3)NOTAX(AX)=0DAF7HCF不变(不影响CF)
(4)XORCX,0FFF0H(CX)=0FFF4HCF=0
(5)TESTDH,0FH(DH)=18HCF=0
(6)CMPCX,00H(CX)=0004HCF=0
(7)SHRDX,CX(DX)=0186HCF=0
(8)SARAL,1(AL)=04HCF=0
(9)SHLBH,CL(BH)=0F0HCF=0
(10)SALAX,1(AX)=4A10HCF=0
(11)RCLBX,1(BX)=1E6CHCF=0
(12)RORDX,CL(BX)=4186HCF=0
12.编程将AX寄存器中的内容以相反的次序传送到DX寄存器中,并要求AX中的内容不被破坏,然后统计DX寄存器中1的个数是多少。
解:
将AX的内容用ROR循环右移,16次之后AX的内容不变(如果用算术/逻辑右移SHL/SAL,则AX的内容破坏,需要用堆栈PUSHUAX/POPAX保护),其最低位移入CF中,再使用RCL循环左移将CF中的值移入DX中。
并且,如果CF的值为1,则将BL加1。
MOVCX,16
XORBL,BL
LP1:
RORAX,1
JNCLP2
INCBL
LP2:
RCLDX,1
LOOPLP1
HLT
调试程序:
STACKSEGMENTSTACK
DB100DUP(?
)
STACKENDS
DATASEGMENT
BUFDW12
BUF1DW100DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVAX,1234H
MOVCX,16
XORBL,BL
JNCLP2
INCBL
LOOPLP1
HLT
CODEENDS
ENDSTART
13.设CS=1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H,(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N标号的地址为1200:
0278H,PROG_F标号的地址为3400:
0ABCH。
说明下列每条指令执行完后,程序分别转移到何处执行?
JMP指令
(1)JMPPROG_N
段内直接近转移,目的地址为1200H:
0278H(或12278H)
(2)JMPBX
段内寄存器间接转移,目的地址为1200H:
0300H(或12300H)
(3)JMP[BX]
物理地址=DS×
10H+BX=2000H×
10H+0300H=20300H
(20300H)=4800H→IP
段内存储器间接转移,目的地址为1200H:
4800H(或16800H)
(4)JMPFARPROG_F
段间直接转移,目的地址为3400H:
0ABCH(或34ABCH)
(5)JMPDWORDPTR[BX]
(20300H)=4800H→IP,(20302H)=00FFH→CS
段间存储器间接转移,目的地址为00FFH:
4800H(或057F0H)
JMP改为CALL后,目的地址与JMP相同。
(1)CALLPROG_N
段内直接调用,3字节指令,目的地址为1200H:
0278H(或12278H),0103H入栈,SP=03FEH
(2)CALLBX
段内寄存器间接调用,2字节指令,目的地址为1200H:
0300H(或12300H),0102H入栈,SP=03FEH
(3)CALL[BX]
段内存储器间接调用,2字节指令,目的地址为1200H:
4800H(或16800H),0102H入栈,SP=03FEH
(4)CALLFARPROG_F
段间直接调用,5字节指令,目的地址为3400H:
0ABCH(或34ABCH),1200H和0105H分别入栈,SP=03FCH
(5)CALLDWORDPTR[BX]
段间间接调用,2字节指令,目的地址为00FFH:
4800H(或057F0H),1200H和0102H分别入栈,SP=03FCH
部分调试程序:
ORG300H
DB00H,48H,0FFH,00H
MOVBX,0300H
CALLPROG_N
CALLBX
CALL[BX]
ORG0278
PROG_N:
RET
ORG0300H
RET
ORG4800H
14.如在下列程序段的括号中分别填入以下指令:
(1)LOOPNEXT
(2)LOOPENEXT
(3)LOOPNENEXT
试说明在这三种情况下,程序段执行完后,AX,BX,CX,DX寄存器的内容分别是什么
MOVAX,01H
MOVBX,02H
MOVDX,03H
MOVCX,04H
NEXT:
INCAX
ADDBX,AX
SHRDX,1
()
LOOP过程:
AXBXCXDX
初始值01H02H04H03H
循环1次02H04H03H01H
循环2次03H07H02H00H
循环3次04H0BH01H00H
循环4次05H10H00H00H
结果:
AXBXCXDX
(1)05H10H00H00H
(2)02H04H03H01H
执行一次,ZF=0,退出循环。
(3)03H07H02H00H
执行两次,ZF=1,退出循环。
15.某班有七个同学的英语成绩低于80分,分数存在ARRAY数组中,试编程完成以下工作:
(1)给每人加5分,结果存到NEW数组中
(2)把总分存到SUM单元中
(3)把平均分存到AVERAGE单元中
ARRAYDB7DUP(?
NEWDB7DUP(?
SUMDW0
AVGDB0
MOVCX,7
MOVSI,0
MOVSUM,0
MOVAH,0
MOVAL,ARRAY[SI]
ADDAL,05H
DAA
MOVNEW[SI],AL
ADDSUM,AL
ADCAH,0
MOVSUM+1,AH
INCSI
MOVAX,SUM
MOVBL,07H
DIVBL
MOVAVG,AL
ARRAYDB65,76,78,54,70,75,58
NEWDB7DUP(?
SUMDB00H,00H
AVGDB0
A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术