




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章作业习题课16:6:471杭州电子科技大学自动化学院微机原理与接口技术
微处理器只是一个中央处理器(CPU),由算术逻辑部件(ALU),累加器和通用寄存器组,程序计数器,时序和控制逻辑部件,内部总线等组成。微处理器不能构成独立工作的系统,也不能独立执行程序,必须配上存储器,外部输入、输出接口构成一台微型计算机方能工作。16:6:4722.微处理器,微型计算机,微型计算机系统有什么联系与区别?
微处理器是中央处理器(CPU)。它是由算术逻辑部件(ALU),累加器和寄存器组,指令指针寄存器IP,段寄存器,时序和控制逻辑部件,内部总线等组成。16:6:5043.微处理器有哪些主要部件组成?其功能是什么?微处理器主要部件作用:算术逻辑部件主要完成算术运算及逻辑运算。
通用寄存器组用来存放参加运算的数据、中间结果或地址。
程序计数器指向要执行的下一条指令,顺序执行指令时,每取一个指令字节,程序计数器加1。
控制逻辑部件负责对整机的控制,包括从存储器中取指令,对指令进行译码和分析,确定指令的操作及操作相应的控制信号和时序,送到微型计算机的其他部件,使CPU内部及外部协调工作。内部总线用来传送CPU内部的数据及控制信号。16:6:505第二章作业习题课1.8086CPU由哪两部分组成?它们的主要功能是什么?16:6:537
8086CPU由总线接口部件BIU和指令执行部件EU组成,BIU和EU的操作是并行的。
总线接口部件BIU的功能:地址形成、取指令、指令排队、读/写操作数和总线控制。所有与外部的操作由其完成。指令执行部件EU的功能:指令译码,执行指令。
指针和变址寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。
段寄存器给出相应逻辑段的首地址,称为“段基址”段基址与段内偏移地址结合形成20位物理地址。
指令指针寄存器用来存放将要执行的下一条指令在现行代码中的偏移地址。
16位标志寄存器PSW用来存放运算结果的特征,常用作后续条件转移指令的转移控制条件。16:6:549⑴比较两数是否相等?将两数相减,当全零标志位ZF=1时,说明两数相等,当ZF=0时,两数不等。⑵两数运算后结果是正数还是负数?用符号标志位SF来判断,SF=1,为负数;
SF=0,为正数。16:6:54105.要完成下述运算或控制,用什么标志位判断?其值是什么?⑶两数相加后是否溢出?用溢出标志位来判断,OF=1,产生溢出;OF=0,没有溢出。⑷采用偶校验方式。判定是否要补“1”?用奇偶校验标志位判断,有偶数个“1”时,PF=1,不需要补“1”;有奇数个“1”时,PF=0,需要补“1”。16:6:5411
8086存储器采用分体式结构:偶地址存储体和奇地址存储体,各为512k。
用A0和BHE来选择存储体。当A0=0时,访问偶地址存储体;当BHE=0时,访问奇地址存储体;当
A0=0,BHE=0时,访问两个存储体。6.8086系统中存储器采用什么结构?用什么信号来选中存储体?16:6:59139.实模式下,段寄存器装入如下数据,写出每段的起始和结束地址。(未布置!)16:6:5914a)1000Hb)1234H10000H~1FFFFH12340H~2233FHc)2300Hd)E000H23000H~32FFFHE0000H~EFFFFHe)AB00HAB000H~BAFFFH12.若当前SS=3500H,SP=0800H,说明堆16:7:017栈段在存储器中的物理地址,若此时入栈10个字节,SP内容是什么?若再出栈6个字节,
SP为什么值?堆栈段的物理地址范围:35000H~44FFFH当前栈顶的物理地址为:35000H+0800H=35800H入栈10个字节以后:SP=0800H-000AH=07F6H出栈6个字节以后:SP=07F6H+0006H=07FCH13.某程序数据段中存放了两个字,1EE5H和2A8CH,已知DS=7850H,数据存放的偏移地
址为3121H及285AH。试画图说明它们在存储
器中的存放情况。若要读取这个两个字,需要对存储器进行几次操作?16:7:018
最小模式为单机系统,系统中所需要的控制信号由CPU提供,实现和存储器及I/O接口电路的连接。16:7:22015.说明8086系统中“最小模式”和“最大模式”两种工作方式的主要区别是什么?
CPU与存储器(或者I/O端口)进行数据交换时,
CPU首先要送出地址信号,然后再发出控制信号及传送数据。由于8086引脚的限制,地址和数据分时复用一组总线,所以要加入地址锁存器,先锁存地址,使在读/写总线周期内地址稳定。16:7:22216.8086系统中为什么要用地址锁存器?8282地址锁存器与CPU如何连接?
8282是三态缓冲的8位数据交换锁存器,由选通信号STB与CPU的地址锁存允许信号ALE相连,
当STB端选通信号出现,8位输入数据锁存到8个D触发器中。17.哪个标志位控制CPU的INTR引脚?中断允许标志位IF控制INTR引脚的中断输入。16:7:22320.8086CPU重新启动后,从何处开始执行指令?16:7:425从内存的FFFF0H开始执行指令。21.8086CPU最小模式系统配置包括哪几部分?
包括时钟发生器、地址锁存器、数据收发器、存储器及I/O接口。补充题1:已知段地址和偏移地址分别为16:7:4262015H和0028H,此存储单元的物理地址是什么?存储单元的物理地址:20150H+0028H=20178H补充题2:若CS=A000H,求当前代码在存储器中的物理地址范围是什么?若数据段位于52000H到61FFFH的64K范围内,问DS=?物理地址范围:A0000H~AFFFFH,DS=5200H。2.
DS=1000H,
BX=0200H,
SI=0002H(10200H~10205H)依次存有10H,2AH,3CH,46H,59H,6BH(1)MOV
AX,
0200H
;
AX=0200MOV
AX,
[200H]物理地址=1000H×10H+0200H=10200H,
AX=2A10HMOV
AX,
BX
;
AX=0200HMOV
AX
,
3[BX]物理地址=1000H×10H
+0200H+3H=10203H,AX=5946HMOV
AX
,
[BX+SI]物理地址=1000H×10H+0200H
+2H=10202H,AX=463CHMOV
AX,
2[BX+SI]物理地址=1000H×10H
+200H+2H+2H=10204H,AX=6B59H3/19/2020MOV
DL,
[SI][DI]错,SI与DI是两个变址寄存器,不可以同时出现在源操作数中。MOV
AX, OFFSET
0A20H错,OFFSET后面跟的应该是符号地址,再把符号地址的值作为操作数。MOV
AL, OFFSET
TABLE错,TABLE的偏移地址是16位,目的与源长度不一致XCHG
AL,
50H错,交换指令可以在寄存器之间,寄存器和存储器之间进行,不可以是立即数。IN
BL,
05H错,BL不能作为IN指令的目的操作数,只能用AL或AXOUT
AL,
0FFEH错,端口地址0FFEH>FFH,应用DX间接寻址,同时源操作数和目标操作数的位置颠倒了,应改为OUT
DX,AL。3/19/20208.
SS=1050H,
SP=0100H,
AX=4860H,
BX=1287H60H48H1050H:00FEHSP(a)执行PUSH
AX后1050H:00FCH87H12H60H48HSP(b)执行PUSH
BX后1050H:00FEH87H12H60H48HSP3/19/2020(c)执行POP
BX后1050H:0100H87H12H60H48HSP(d)执行POP
AX后16:7:83410.
ARRAYNEWSUMAVERAGEDB
…………DB
7
DUP(?)DW
0DB
0(1)NEXT:07H00HARRAY[BX]5MOV
CX,MOV
BX,MOV
AL,ADD
AL,DAAMOVINCNEW[BX],ALBXLOOP
NEXTHLT(3)MOV
DX,
SUM16:7:836; DX=0×××H(BCD码)MOVBL,07HMOVAX,DX;取千位、百位数ANDAL,0F0HMOVCL,04HROLAL,CL;AX=0×0×H;
AL←AH×10+AL,
AH←00;十位商在AL中,余数在AH中;存平均成绩十位;取个位和数AL,
DLAL,
0FHBL
AVERAGE,
AL;
AL←AH×10+AL,
AH←00;个位商在AL中,余数在AH中;存平均成绩个位AADDIV
BLMOV
AVERAGE+1,
ALMOVANDAADDIVMOVMOVAVERAGE+2,AH
; 存余数11.AX=2508H,BX=0F36H,CX=0004H,DX=1864HAND
AH,
CLAH=04H,CF=0;(0010
0101B与0000
0100B)OR
BL,
30HBL=36H,CF=0;(0011
0110B或0011
0000B)NOT
AXAX=DAF7H,CF无影响;(0010
0101
0000
1000B取反后1101
1010
1111
0111B)XOR
CX,
0FFF0HCX=FFF4H,CF=0;(0000
0000
0000
0100B和1111
1111
1111
0000B异或后1111
1111
1111
0100B)TEST
DH,
0FHTEST操作并不修改结果,CF=0;16:7:83716:7:2738(6)CMP
CX,
00HCMP操作并不修改结果,CF=0;SHR
DX,
CLDX=0186H,CF=0;SAR
AL,
1AH=04H,CF=0;SHL
BH,
CLBH=F0H,CF=0;SAL
AX,
1AX=4A10H,CF=0;(
0010
0101
0000
1000B
左移)RCL
BX,
1若程序执行之前CF=0,BX=1E6CH,CF=0;若程序执行之前CF=1,BX=1E6DH,CF=0。ROR
DX,
CLDX=4186H,CF=0。(2)16:7:2840MOV
SI, OFFSET
STRINGMOVDI,OFFSETNEW_STRMOVCX,001AHCLDREPZ
CMPSB;DS:SI-ES:DIJNE
CLR_ALMOV
AL,
1JMPSET_BLCLR_AL:MOVAL,
0SET_BL:MOVBL,
001AHSUBBL,
CLHLT(3)16:7:2841STRINGMOV
DI,
OFFSETMOV
CX,
001AHMOV
AL,
‘&’CLDL1:SCASB;AL-ES:DIJZ
FINDNEXT:LOOP
L1HLTFIND:;用空格替换&MOV BL,‘
’MOV [DI-1],
BLJMP
NEXT(4)16:7:3342;数据段,源串;附加段,大写字符;附加段,其它字符OFFSET
STRINGOFFSET
CAPSOFFSET
CHART001AHL1:;AL←DS:SI;取出字符后该单元清零‘Z’[SI-1],
00HAL,
‘A’OTHERAL,OTHER;存大写字符MOV
SI,MOV
DI,MOV
BX,MOV
CX,CLD
LODSB
MOVCMPJBCMPJASTOSBJMP
L2OTHER:XCHG
BX,DI
;存其它字符STOSBXCHG
BX,DIL2:LOOP
L1HLTJMP改为CALL后,目的地址与JMP相同。CALL
PROG_N段内直接调用,3字节指令,0103H入栈CALL
BX段内寄存器间接调用,2字节指令,0102H入栈CALL
[BX]段内存储器间接调用,2字节指令,0102H入栈CALL
FAR
PROG_F段间直接调用,5字节指令,1200H和0105H分别入栈CALL
DWORD
PTR[BX]段间间接调用,2字节指令,1200H和0102H分别入栈16:7:34440BH24H69HD1H16:7:374618.0000H:0040H0000H:0042H中断向量表(1)中断类型号为0040H/4=10H(2)中断服务程序的段地址为D169H,偏移地址为240BH,即D169H:240BH,物理地址为D169H×10H+240BH=
D3A9BH3/19/2020第四章作业习题课杭州电子科技大学自动化学院微机原理与接口技术1.下列变量各占多少字节?A1
DW 23H,
5876H16:7:3948A2DB3DUP(?),
0AH,
0DH,
‘$’A3DD5DUP(1234H,
567890H)A4DB4DUP(3
DUP(1,
2,
‘ABC’))解:A1变量占4个字节;A2变量占6个字节;A3变量占5×8=40个字节;A4变量占4×3×5=60个字节;19.应考虑数组中可能出现多个0的情况程序如下:16:7:4250EDATA;定义数据段DB N,
XXH,
……EQU
0EDATASEGMENTBUFF
MENDS;STACKSEGMENTSTACK;定义堆栈段DW50H
DUP(?)TOPLABEL
WORDSTACKENDS;CODE16:7:4351SEGMENT ;定义代码段ASSUME
CS:CODE,
ES:EDATA,
DS:EDATA,
SS:STACKMAINSTART:MOVPROC
FARAX, STACK;初始化堆栈段MOVSS,AXMOVSP,OFFSET
TOPPUSHDS;程序段前缀MOVAX,0PUSHAXMOVAX,EDATA;初始化ES,DSMOVES,AXMOVDS,AXDEL:16:7:4653MOV
BL,[DI];前移,末尾补0IMOVINCLOOP[DI-1],
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论