第17章作业答案Word下载.docx
《第17章作业答案Word下载.docx》由会员分享,可在线阅读,更多相关《第17章作业答案Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
16位算术逻辑单元ALU(运算器)
8个16位通用寄存器(AX、BX、CX、DX、SP、BP、SI、DI)
1个16位标志寄存器FLAGS
执行部分控制电路
总线接口单元(BIU)包含:
4个16位段寄存器(DS、CS、ES、SS)
1个16位指令指针寄存器IP
20位地址加法器
6字节指令队列缓冲器
3、8086CPU内部的14个寄存器都是什么?
AX、BX、CX、DX、SP、BP、SI、DI,FLAGS,DS、CS、ES、SS,IP
4、存储器如何分段?
1、把1M字节存储器空间分成若干个段,每个段的容量<
=64K字节。
每段内地址(也称偏移地址)可以用16位地址表示出来。
2、每个段的起始地址低4位必须为0,高16位地址放在16位的段寄存器内,称为段基址,段寄存器分别为CS、DS、SS和ES,段基址存放在这4个段寄存器中。
3、每个段不一定都是64KB,可以小于它,且每个段可以分开,也可以重叠。
5、存储器中各个段如何命名?
通常一个程序中通常有代码段、堆栈段、数据段、附加段.
代码段:
用于存放程序。
代码段段基址在代码段寄存器CS中。
堆栈段:
用于存放一些特殊数据。
堆栈段段基址在堆栈段寄存器SS中。
数据段:
用于存放一些数据。
数据段段基址在数据段寄存器DS中。
附加段:
附加段段基址在附加段寄存器ES中。
6、在程序或指令中存储器各个段的地址用逻辑地址表示,写出各个段的逻辑地址表示方法。
逻辑地址格式为:
段基址:
偏移地址
代码段逻辑地址CS:
IP
数据段逻辑地址DS:
段内偏移地址
堆栈段逻辑地址SS:
SP
附加段逻辑地址ES:
7、存储器各段物理地址如何计算?
代码段存储器的物理地址=CS*16+IP
堆栈段存储器的物理地址=SS*16+SP
数据段存储器的物理地址=DS*16+段内偏移地址
附加段存储器的物理地址=ES*16+段内偏移地址
8、已知代码段CS=3000H,指令指针IP=2010H,指出指针所指程序在存储器中的物理地址。
当前指令物理地址=CS*16+IP=3000H*10H+2010H=32010H
9、已知某数据存放在存储器数据段中,且其段内偏移量为3535H,数据段DS=1000H,指出此数据在存储器中的物理地址。
此数据物理地址=DS*16+段内偏移地址=1000H*10H+3535H=13535H
10、已知逻辑地址,指出下列存储器地址的、段基址、物理地址。
2000H:
1000H
段内偏移量1000H
段基址2000H
物理地址=段基址*16+段内偏移量=2000H*10H+1000H=21000H
2.1节课本作业P43
(3)总线接口中加法器的作用是什么?
它与执行部件中的加法器在功能上有何差别?
总线接口中加法器:
根据逻辑地址计算20位的物理地址,执行部件中的加法器用于进行数据运算。
(4)设段地址为4ABFH,物理地址为50000H,求有效地址是什么(也称偏移地址)?
有效地址=偏移地址=50000H-4ABF*10H=5410H
(6)已知当前数据段位于存储器的B1000H到C0FFFH范围内,问DS寄存器的内容是什么?
DS=B100H
(7)8086CPU有哪几个状态标志位?
哪几个控制标志位?
他们在什么条件下被置位?
状态标志位:
CFAFPFZFSFOF
控制标志位DFTFIF
置位条件可参考课本。
2.2节补充作业
1、8086的AD0~AD15为地址/数据总线,采用分时方式。
A0~A15为地址总线的低16位,DO~D15为16位数据总线。
2、8086的A16/S3~A19/S6为地址/状态总线,采用分时方式,A16~A20为地址总线的高4位。
3、/RD为读信号。
4、/WR为写信号。
5、ALE为地址锁存信号。
6、说明8086最小模式下系统的三种总线是如何产生的?
答:
1)、地址总线:
由8086CPU的AD0~AD15、A16、A17、A18、A19通过3片地址锁存器8282后构成,提供20条地址线。
2)、数据总线:
直接由8086CPU的AD0~AD15供给16条数据总线。
或者通过两片8286/8287发送/接收接口芯片后构成,这样增大了总线的驱动能力。
3)、控制总线:
直接由8086CPU的控制线供给。
11根
7、画出最小模式下系统的典型配置图。
(参考P28)
2.3节补充作业
1、什么是总线周期?
什么是时钟周期?
总线周期—每当CPU与存储器或I/O端口交换一个字节(或字)数据所需的时间称之为一个总线周期。
时钟周期T:
时钟脉冲CLK的周期.
每个总线周期通常包含4个时钟周期.
2、画出具有等待状态的存储器读时序图,并说明T1、T2、T3、T4状态CPU所做的工作。
⒈T1前下讲沿后
①M/IO变高表存储器读,变低IO接口读
②给出地址,若读存储器数据,则给出20位地址,若为读I/O端口数据,则给出低16位地址(高4位为低)
③ALE变为有效变成高电平,用来将复用线上的地址锁存起来。
④DT/R变低,表示CPU读
⒉T2状态下
①A19/S6~A16/S3引脚输出状态信号S6~S3
②AD15~AD0转为高阻
③RD变低,允许读出
④DEN变低,允许数据传送
3.T3周期
CPU在T3周期的前下降沿判断READY管脚的状态,
1)若READY管脚为高电平,则下一个周期为T4周期;
2)若READY管脚为低电平,CPU在T3周期后加入一个或几个等待周期Tw,直到当在Tw周期的前下降沿判断READY管脚为高电平时,则停止插入Tw,下一个周期为T4周期。
4.T4周期
CPU在T4的前下降沿采样数据线,获取数据。
结束其他控制信号。
4、说明系统复位后,CPU各个段寄存器、标志寄存器F、指针寄存器IP的内容。
系统复位后段寄存器CS=FFFFH,其他各个段寄存器为0,标志寄存器F=0000H,指针寄存器IP=0000H
第三章补充作业
1、抄写P45项目1中第1、4、5、6、21条指令并解释
2、写出8086汇编语言的4种操作数。
立即数、寄存器、存储器、I/O口
3、写出存储器的5种表示形式。
1)、[nn]
2)、[BX]
或[BP]
或[SI]
或[DI]
3)、[BX+DISP]
或[BP+DISP]
或[SI+DISP]
或[DI+DISP]
4)、[BX+SI]
或[BX+DI]
或[BP+SI]
或[BP+DI]
5)、[BX+SI+DISP]
或[BX+DI+DISP]
或[BP+SI+DISP]
或[BP+DI+DISP]
4、什么是指令的寻址方式?
寻找操作数的方式
5、8086/8088指令有哪几种寻址方式?
(1)立即数寻址方式i
例MOVAX,100
(2)寄存器寻址方式rrs
例MOVAX,100
(3)存储器寻址方式m[X]
(4)I/O端口寻址方式
6、写出下列存储器操作数段的隐含约定。
(1)[2000H]DS
(2)[BX]DS
(3)[BP]SS
(4)[SI]DS
(5)[DI]DS
(6)[BX+0200H]DS
(7)[BP+0200H]SS
(8)[SI+0200H]DS
(9)[DI+0200H]DS
(10)[BX+SI]DS
(11)[BX+DI]DS
(12)[BP+SI]SS
(13)[BP+DI]SS
(10)[BX+SI+0100H]DS
(11)[BX+DI+0100H]DS
(12)[BP+SI+0100H]SS
(13)[BP+DI+0100H]SS
8、已知:
有关寄存器及存储器单元的内容如下:
DS=3000H,BX=0820H,SI=0005H,SS=2000H,BP=1000H,[31000]=22H,[31001H]=34H,[30820H]=56H,[31820H]=55H,[30825H]=ABH,[30826H]=6DH,[21000H]=88H
问下列各条指令执行完后,AL或AX寄存器的内容各是什么?
存储器寻址写出逻辑地址、物理地址
(1)MOVAX,1500H
(2)MOVAL,BL
(3)MOVAX,[1000H]
(4)MOVAL,[BX]
(5)MOVAL,1000H[BX]
(6)MOVAX,[BX][SI]
(7)MOVAL,[BP]
(1)AX=1500H
(2)AL=20H
(3)存储器逻辑地址DS:
[1000H]
存储器物理地址=DS*16+1000H=3000H*10H+1000H=31000H
AL=[31000]=22H,AH=[31001H]=34H,所以AX=3422H
(4)存储器逻辑地址DS:
[BX]
存储器物理地址=DS*16+BX=3000H*10H+0820H=30820H
AL=[30820]=56H
(5)存储器逻辑地址DS:
1000H[BX]
存储器物理地址=DS*16+1000H+BX=3000H*10H+1000H+0820H=31820H
AL=[31820]=55H
(6)存储器逻辑地址DS:
[BX][SI]
存储器物理地址=DS*16+BX+SI=3000H*10H+0820H+0005H=30825H
AL=[30825]=ABH,AH=[30826]=6DH,所以AX=6DABH
(7)存储器逻辑地址SS:
[BP]
存储器物理地址=SS*16+BP=2000H*10H+1000H=21000H
AL=[21000]=88H
9、读懂P45项目1程序,会解释每句程序。
(实验一)
10、读懂P54项目2程序,用单步调试法指出每句程序的调试结果。
11、对P66页例3-21每句程序进行注释,写出数据段的分布。
19、如何判断键盘是否有键按下?
举例说明
利用BIOS中断
入口参数:
AH=01
中断号:
16H
返回参数:
如ZF=0,AL=字符码,AH=扫描码
;
如ZF=1,缓冲区空
例:
QQ1:
MOVAH,1;
判断PC键盘是否有按键按下
INT16H
JZQQ1;
无按键则跳回继续循环等待,有键按
下键值在AL中
20、如何显示一个字符?
如何显示一个字符串?
如何返回DOS?
举例说明
(1)如何显示一个字符?
利用DOS中断
AH=02(或06)
DL=字符(用ASCII码表示)
中断号:
21H
MOVAH,02
MOVDL,41H
INT21H;
代表显示A
(2)如何显示一个字符串?
利用DOS中断
入口参数:
AH=09
DS:
DX=字符串地址
中断号:
MOVAH,09
MOVDX,字符串偏移地址
INT21H
(3)如何返回DOS?
AH=4CH
例如:
MOVAX,4C00H
21、现有多个有符号数23、-120、36、780、600、-2000,编制程序,找出最大值并放至指定的MAX存储单元中。
并把数据23、-120、36、780、600、-2000显示出来。
(实验二)
DATASEGMENT
BUFFERDW23、-120、36、780、600、-2000
COUNTEQU($-BUFFER)/2
MAXDW?
用于存放最大值
MES1DB‘23、-120、36、780、600、-2000’,0AH,0DH,’$’
DATAENDS
STACKSEGMENT
DB64DUP(?
)
TOPEQU$-STACK;
计算出堆栈指针数值
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
BEGIN:
MOVAX,SEGDATA
MOVDS,AX;
初始化DS
MOVAX,SEGSTACK
MOVSS,AX;
初始化SS
MOVSP,TOP
MOVCX,COUNT
LEABX,BUFFER;
初始化指针
MOVAX,[BX]
INCBX
INCBX
DECCX
AGAIN:
CMPAX,[BX];
比较
JGENEXT;
大于等于转
NEXT:
INCBX
INCBX;
改变指针
LOOPAGAIN
MOVMAX,AX
MOVAH,9
LEADX,MES1
INT21H;
显示字符串
MOVAH,1
INT16H
JZQQ1;
等待有无任意键按下
MOVAH,4C
返回DOS结束
CODEENDS
ENDBEGIN
课本作业P1324/5/6/7/9/1017
思考题与练习题
(4)请说明下列指令是否正确,并指出错误原因。
①MOV[2100],[2200H](×
②MOVDH,0001H(∨)
③MOVCX,50H[BX+BP](×
④MOVIP,2456H(×
⑤PUSHDL(×
⑥MOVCS,AX(×
⑦PUSHCS(∨)
⑧MOV3000H,BX(×
⑨MOVES,DS(×
⑩INAX,256(×
(5)如果数据段符号地址DBUF为3100H,并从它开始存放1234H,请问执行以下指令后寄存器AX的内容是什么?
LEAAX,DBUF3100H
MOVAX,DBUFAX=1234H
(6)已知SP=1000H,AX=1122H,BX=3344H,程序段如下:
PUSHAX
PUSHBX
POPBX
POPAX
请问:
①指令PUSHBX执行后SP的内容是什么?
请画出堆栈操作示意图。
SP=FFCH
xx
②指令POPAX执行后请画出堆栈操作示意图。
FFCH
44H
FFDH
33H
FFEH
22H
FFFH
11H
1000HSP
(7)已知AH=B、AL=00000000B。
请问下列每条指令执行后,AH和AL的内容是什么?
对标志位ZF、CF的影响是什么?
①ADDAH,1AH=00000000BZF=1CF=1
②SUBAL,0FDHAL=00000011HBZF=0CF=1
③INCAHAH=00000000BZF=1CF:
不改变
④DECALAL=11111111BZF=0CF:
⑤ANDAH,06HAH=00000110BZF=0CF=0
⑥ORAL,90HAL=00001001BZF=0CF=0
⑦XORAH,0FHAH=11110000BZF=0CF=0
⑧TESTAL,80HAL=00000000BZF=10CF=0
⑨CMPAH,7FHAH=11111111BZF=0CF=0
(9)已知程序段如下,请说明完成什么操作?
MOVCL,3
MOVAL,0F0H
SARAL,CLAL=11111110B
(10)已知AH=0FDH、AL=03,请说明执行下列程序段后,程序将转向哪一个符号地址W1、W2或W3?
ADDAH,ALCF=1OF=0ZF0
JNOW1
JNCW2
JZW3程序将转向符号地址W1
第四章作业
补充作业
1、主存储器的分类。
RAM(SRAM、DRAM)、ROM(掩模ROM、可编程PROM、EPROM、EEPROM)
2、写出RAM的特点、ROM的特点。
RAM的特点:
可随机读写,读写速度快,掉电数据丢失。
ROM的特点:
只能读出不能写入,掉电后数据不丢失。
3、某系统扩展一片6264RAM(8K*8位)与2732ROM(4K*8位),利用74LS138译码器,画出与8088/8086CPU系统总线的连线,并计算出两个芯片的基本地址范围。
课本作业思考题与练习题
(5)常用的存储器片选控制方法有哪几种?
它们各有什么优缺点?
有三种,即全译码法、部分译码法和线选法。
采用全译码法的优点:
是存储器中每一存储单元都有惟一确定的地址;
缺点是译码电路比较复杂。
部分译码法它的优点:
是片选译码电路比较简单;
缺点是存储器空间中存在地址重叠区,使用的时候需要注意。
线选法优点是:
无须使用片选译码器;
缺点是存储器地址空间被分成了相互隔离的区段,造成地址空间的不连续,该编程带来不便。
(7)若要用2114芯片扩充2KBRAM,规定地址为4000~47FFH,地址线应如何连接?
画出连接图。
(8)设计一个具有8KBROM和40KBRAM的存储器。
画出CPU与存储器的连接图。
要求ROM用EPROM芯片2732组成,从0000H地址开始;
RAM用SRAM芯片6264组成,从4000H地址开始。
第五章作业
1、写出I/O接口的功能。
1).实现和不同外设的速度匹配
2).输出数据锁存
3).输入数据三态缓冲
2、写出常用的几个并行接口芯片型号
8255、8155、74LS244、74LS373
3、画出接口电路的典型芯片及其与三种总线的连线图(可参考PPT图5.2)
4、假设8255的A0连接CPU地址总线AB的A0,8255的A1连接CPU地址总线AB的A1,8255的片选CS连接CPU地址总线AB的A3,写出8255芯片PA口、PB口、PC口、控制字口的地址。
实验三
1、在下图中右边第二个数码管中显示6这个数字,画出硬件接线图,编写控制程序。
2、在下图中右边第二个数码管中显示数据段VALULE单元中的数,编写控制程序(VALULE单元中的数据可任意设定为0~F)。
3、利用三种总线、8255、数码管显示单元(见下图)实现4位LED动态显示数据段DISVALUE单元开始存放的4个数。
(4个数据可任意设定为0~F)。
主机按任意键停止显示返回DOS。
完成系统硬件设计及软件编程。
1/2/3硬件接线图
1、控制程序:
CODE
START:
MOVAL,10000000B;
8255方式控制字(PA口输出,PB口输出)
MOVDX,283H;
8255控制字端口地址283H
OUTDX,AL;
8255初始化
MOVAL,00000010B;
MOVDX,280H;
8255PA口地址
OUTDX,AL;
选定最右边第二个数码管,数码管位选
MOVAL,7DH;
6的共阴极码5BH
MOVDX,281H;
8255PB口地址
显示6,数码管段选
BB1:
MOVAH,1
INT16H调用BIOS中断,键盘中断程序
JZBB1;
判断PC键盘是否有按键按下,无按键则跳回继续循环,有则执行下一行指令
MOVAH,4CH
INT21H;
调用DOS中断,返回DOS
ENDSTART
2、在上图中左边第二个数码管中显示数据段VALULE单元中的数,编写控制程序(VALULE单元中的数据可任意设定为0~F)。
硬件接线图参考上题图
控制程序:
DATASEGMENT
VALULEDB8
DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATAENDS;
0~F对应的7段数码管的共阴极段值
CODESEGMENT
ASSUMECS