北京交通大学《微机原理与接口技术》作业答案.docx
《北京交通大学《微机原理与接口技术》作业答案.docx》由会员分享,可在线阅读,更多相关《北京交通大学《微机原理与接口技术》作业答案.docx(33页珍藏版)》请在冰豆网上搜索。
北京交通大学《微机原理与接口技术》作业答案
《微机原理与接口技术》第一章作业
一、书上P22作业题2、3、7
2.完成下列数制之间的转换。
(1)01011100B=92D
(3)135D=10000111B
(5)10110010B=262Q=B2H
3.组合型BCD码和非组合型BCD码有什么区别?
写出十进制数254的组合型BCD数和非组合型BCD数。
答:
组合型BCD码的储存格式用一个字节存放2位BCD码,高4位表示十进制的十位数,低4位表示十进制的个位数,数值表示范围为0~99;非组合型的储存格式是用一个字节的低4位存放1位BCD码,高四位可以为0或任意数,数值表示范围为0~9。
254D的组合型BCD码:
0
254D的非组合型BCD码:
00
7.计算机中为什么采用补码的形式储存数据?
当计算机的字长n=16时,补码的数据表示范围是多少?
答:
是为了便于进行加减运算,简化机器硬件结构。
当n=16时,补码表示数值的范围是+32767~-32768。
《微机原理与接口技术》第二章作业
一、书上P59作业题2、5、6、9、14
2、8086标志寄存器包含哪些状态标志位?
试说明各状态标志位的作用.
答:
6个状态标志位:
CF(CarryFlag)——进位标志位。
当执行一个加法(或减法)运算,使最高位产生进位(或借位)时,CF为1;否则为0。
PF(ParityFlag)——奇偶标志位。
该标志位反映运算结果中1的个数是偶数还是奇数。
当指令执行结果的低8位中含有偶数个1时,PF=1;否则PF=0。
AF(AuxiliarycarryFlag)——辅助进位标志位。
当执行一个加法(或减法)运算,使结果的低4位向高4位有进位(或借位)时,AF=1;否则AF=0。
ZF(ZeroFlag)——零标志位。
若当前的运算结果为零,ZF=1;否则ZF=0。
SF(SignFlag)——符号标志位。
它和运算结果的最高位相同。
OF(OverflowFlag)——溢出标志位。
当补码运算有溢出时,OF=1;否则OF=0。
3个控制标志位:
DF(DirectionFlag)——方向标志位。
它用以指定字符串处理时的方向,当该位置“1”时,字符串以递减顺序处理,即地址以从高到低顺序递减。
反之,则以递增顺序处理。
IF(InterruptenableFlag)——中断允许标志位。
它用来控制8086是否允许接收外部中断请求。
若IF=1,8086能响应外部中断,反之则不响应外部中断。
TF(TrapFlag)——跟踪标志位。
它是为调试程序而设定的陷阱控制位。
当该位置“1”时,8086CPU处于单步状态,此时CPU每执行完一条指令就自动产生一次内部中断。
当该位复位后,CPU恢复正常工作。
5、逻辑地址与物理地址有什么区别?
如何将逻辑地址转换为物理地址?
答:
物理地址是真实存在的唯一地址,指的是存储器中各个单元的单元号;逻辑地址是思维性的表示,由段地址和偏移地址联合表示的地址类型叫逻辑地址。
物理地址=段地址×10H+偏移地址。
6、写出下列逻辑地址的段基址、偏移地址和物理地址。
(1)2314H:
0035H
(2)1FD0H:
000AH
答:
(1)段基址:
2314H
偏移地址:
0035H
物理地址:
23175H。
(2)段基址:
1FD0H
偏移地址:
000AH
物理地址:
1FD0AH。
9、设一个16字的数据区,它的起始地址为70A0H:
DDF6H(段基址:
偏移地址),求这个数据区的首字单元和末字单元的物理地址。
答:
首字:
70A0*10H+DDF6H=7E7F6H
末字:
7E7F6H+(16-1)*2=7E814H。
14、80486CPU存储器最大可寻址空间是多少?
虚拟存储空间是多少?
两者有何区别?
答:
最大可寻址空间是4GB,虚拟存储空间是64TB。
可寻址空间是实地址,虚拟存储空间是外部存储管理器。
《微机原理与接口技术》第三章作业
一、书上P95作业题4、5、6、7、10、11、12、13、14、15、16、17、18、22、27
4、指出下列指令中的源操作数和目标操作数的寻址方式。
(1)MOVBX,1000H源操作数:
立即寻址;目标操作数:
寄存器寻址
(2)MOVAL,[BX]源操作数:
寄存器间接寻址;目标操作数:
寄存器寻址
(3)MOVCX,[BP+10H]源操作数:
寄存器相对寻址;目标操作数:
寄存器寻址
(4)MOVAL,ES:
[BX+SI]源操作数:
基址加变址寻址;目标操作数:
寄存器寻址
(5)MOV[DI+1000H],BX源操作数:
寄存器寻址;目标操作数:
寄存器相对寻址
(6)MOV[1000H],CX源操作数:
寄存器寻址;目标操作数:
直接寻址
(7)MOVAL,[BX+DI+1234H]源操作数:
寄存器相对寻址;目标操作数:
寄存器寻址
(8)MOVAL,1000H[BX+SI]源操作数:
寄存器相对寻址;目标操作数:
寄存器寻址
(9)MOV[EBX+ESI+2010H],DX源操作数:
寄存器寻址;目标操作数:
带位移的基址加变址寻址
(10)MOVAX,0100H[EBX+ESI*4]源操作数:
基址加比例变址寻址;目标操作数:
寄存器寻址
5、设(DS)=2000H、(ES)=2100H、(SS)=1500H、(BX)=0100H、(BP)=0040H、(SI)=00A0H、(DI)=0120H,在指令MOVAX,src中,求用下列表示源操作数src的有效地址EA和物理地址PA各是多少?
(1)100H[BX]EA=(100H+0100H)=0200H;PA=2000*10H+0200H=20200H
(2)ES:
[BX+DI]EA=0100H+0120H=0220H;PA=2100*10H+0220H=21220H
(3)[BP]EA=0040H;PA=1500*10H+0040H=15040H
(4)ES:
[BX+10H]EA=0100H+0010H=0110H;PA=21000H+0110H=21110H
(5)[BP+SI]EA=0040H+00A0H=00E0H;PA=1500*10H+OOEOH=150E0H
(6)[1000H]EA=1000H;PA=2000*10H+1000H=21000H
(7)ES:
[DI]EA=0120H;PA=2100*10H+0120H=21120H
(8)1050H[BX+SI]EA=1050H+0100H+00A0H=11F0H;PA=2000*10H+11F0H=211F0H
(9)DS:
10C0H[BP+SI]EA=10C0H+0040H+00A0H=11A0H;PA=2000*10H+11A0H=211A0H
(10)[BX+DI]EA=0100H+0120H=0220H;PA=2000*10H+0220H=20220H
6、指出下列指令中的错误,并改正。
(1)MOVBL,30A0H操作数不匹配改:
MOVBX,30A0H
(2)MOV0010H,AL立即数不可以作为目标操作数改:
MOVAX,0010H
(3)XCHGAL,BX操作数类型不匹配改:
XCHGAX,BX
(4)MOV[AX],3456H立即数送入存储器需要说明改:
MOVWORDPTR[AX],3456H
(5)PUSHAL堆栈以字为操作单元改:
PUSHAX
(6)POPCSPOP不可以用CS为目标操作数改:
POPAX
(7)MOVDS,1000H立即数不能直接送入段寄存器改:
MOVAX,1000HMOVDS,
AX
(8)MOV[BX],[1000H]存储器不可以相互传送改:
MOVAX,[1000H]MOV[BX],AX
(9)LDS(BX),[1000H]LDS使用时期目标为16位通用寄存器改:
LDSBX,[1000H]
(10)LEABX,CXLEA源操作数为存储器改:
LEABX,[CX]
7、已知(AX)=4A0BH,[1020H]单元中的内容为260FH,写出下列每条指令单独执行后的结果。
(1)MOVAX,1020H;(AX)=1020H
(2)XCHGAX,[1020H];(AX)=260FH
(3)MOVAX,[1020H];(AX)=260FH
(4)LEAAX,[1020H];(AX)=1020H
10、设一个堆栈段共有100H个字节单元,堆栈的起始地址为1250H:
0000H,若在堆栈中存有5个字数据,问:
(1)栈顶的物理地址多少?
栈底:
12600H
(2)栈底的物理地址是多少?
栈顶:
12600-A=125F6H
(3)当前SS和SP的内容是多少?
SS:
[1250H:
0000H]
SP:
[1250H:
00F6H]
(4)若弹出两个数据,SP的内容是多少?
SP:
[1250H:
00FAH]
11、编程完成下列程序段,根据运算结果置标志位OF、SF、ZF、AF、PF、CF,并分析程序执行结果是否正确?
为什么?
(设字长n=8)
(1)30+64
(2)122-64
(3)96+52
(4)-68+(-72)
答:
(1)MOVAL,30
MOVBL,64
ADDAL,BL
结果:
0101111OF=0SF=0ZF=0AF=0PF=1CF=0
(2)MOVAL,122
MOVBL,64
SUBAL,BL
结果:
00111010OF=0SF=0ZF=0AF=0PF=1CF=0
(3)MOVAL,96
MOVBL,52
ADDAL,BL
结果:
10010100F=0SF=0ZF=0AF=0PF=1CF=0
(4)MOVAL,-68
MOVBL,-72
ADDAL,BL
结果:
01110100OF=1SF=0ZF=0AF=1PF=1CF=1
17、判断下列指令格式的对与错,并解释错在哪里。
(1)ADD25H,AX(×)目标操作数不可以为立即数
(2)INCBX,1(×)INC只有目标操作数
(3)MULAL,BL(×)乘法指令目标操作数是隐含的
(4)SUBBAL,3(×)减法指令是SUB
(5)DAAAL(×)DAA后无操作数
(6)NEGCX,0(×)NEG后只有目标操作数
(7)CMP[BX],1000H[BX+SI](√)
18、设(AL)=10010010B,将AL的内容算术右移2位,AL的内容和CF是多少?
再将AL的内容逻辑右移2位,AL的内容和CF是多少?
算术右移2位AL:
11100100CF:
1
逻辑右移2位AL:
00100100CF:
1
22、写出下列程序段执行后的结果。
MOVCL,4
MOVAL,87
MOVDL,AL
ANDAL,0FH
ORAL,30H
SHRDL,CL
ORDL,30H
(AL)=37H,(DL)=35H
27、试用CMP指令和条件转移指令实现下列判断
(1)AX和CX中的内容为无符号数:
若(AX)>(CX)则转至BIGGER符号执行;
若(AX)<(CX)则转至LESS符号执行。
CMPAX,CX
JABIGGER
JBLESS
(2)BX和DX中的内容为无符号数:
若(BX)>(DX)则转至BIGGER符号执行;
若(BX)<(DX)则转至LESS符号执行。
CMPBX,DX
JGBIGGER
JLLESS
《微机原理与接口技术》第四章作业
一、课本P1558、12、13、14
8、按下列的要求写出段定义格式。
(1)数据段的位置从0E000H开始,在该段中定义的5个字节数据,3个字数据,2双字数据,要求字节数据从偏移地址0000H开始,字数据从偏移地址0010H开始,双字数据从偏移地址0020H开始。
(2)堆栈段定义100个字节
(3)代码段的开始位置给有关段寄存器赋值,在程序结束时能够返回DOS。
DATASEGMENT
ORG0000H
D1DB00H,01H,02H,03H,04H
ORG0010H
D2DW0000H,0010H,0020H
ORG0020H
D3DD3DUP(?
)
DATAENDS
STACKSEGMENTSTACK
DB100DUP(?
)
STACKENDS
CODESEGMENTCODE
ASSUMECS:
CODE,DS:
DATA
START:
……
MOVAH,4CH
INT21H
CODEENDS
ENDSSTART
12、定义数据段如下,画出数据存储示意图,并说明变量X1和X2所对应的逻辑地址各是多少?
...
16H
21H
…
41H
42H
31H
32H
43H
44H
10A00H
DATASEGMENTAT10A0H
ORG0010H
10A10H
X1DB22,33,
ORG$+0020H
X2DB‘AB12CD’
10A32H
DATAENDS
X1的逻辑地址:
10A0H:
0010H
X2的逻辑地址:
10A0H:
0032H
13、定义数据段如下,写出执行以下指令后的结果。
DATA SEGMENT
DA1 DW 2437H ,14A2H
DA2 DB ‘ABCD’
DA3 DD 10 DUP (?
)
DATA ENDS
(1)MOV BX,DA1 ;(BX)=2437H
(2)MOV SI,OFFSET DA1 ;(SI)=0000H
(3)MOV AL, TYPE DA1 ;(AL)=2
(4)MOV AL,[DA2+02H] ;(AL)=‘C’=43H
(5)MOV AL,LENGTH DA3;(AL)=10
(6)MOV AL,SIZE DA3;(AL)=10
14、程序中数据段定义的数据如下:
DATA SEGMENT
NAMES DB‘GOOD MORNING!
’
DW 2050H,78H,3080H DATA
ENDS
请指出下列指令序列执行后累加器中的结果是多少?
(1) MOV BX,OFFSET NAMES
MOV AL,[BX+03H]
(2) MOV BX,12
MOV SI,3
MOV AX,NAMES[BX+SI]
(3) MOV BX,12
MOV SI,3
LEA AX,NAMES[BX+SI]
答:
(1)44H
(2)78H
(3)0FH
《微机原理与接口技术》第五章作业
一、作业P1802、5、7、8、9、10
2、半导体储存器的主要性能指标有哪些?
1、存储容量
2、存取速度
3、可靠性
4、功耗
5、储存器芯片的片选信号的产生有哪几种方法?
各有什么特点?
1、线选法:
用除片内寻址外的高位地址线不经过译码,直接分别接至各个存储芯片的片选端来区别各芯片的地址
优点:
连接简单,无需专门的译码电路
缺点:
不能充分利用系统的存储器空间,地址空间浪费大。
2、部分译码法:
只对高位地址线中某几位地址经译码器译码
优点:
高位地址的部分地址线经过译码产生片选信号。
缺点:
存在地址重叠现象。
3、全译码法:
存储芯片内寻址以外的系统的全部高位地址线都参与译码产生片选信号。
、优点:
芯片的地址范围不仅是唯一确定的,而且是连续的。
缺点:
译码电路较复杂,连线也较多
7、若用1024*1b的RAM芯片组成16K*8b的存储器,需要多少芯片?
在地址线中有多少位参与片内寻址?
多少位用做芯片组选择信号?
(设系统地址总线为16位)
1024K*1b=1K*1b
1K*8b/1K*1b=8
16K*8b/1K*8b=16
8*16=128
需要128片;
1024=2^10,需要10位参与片内寻址
16=2^4,需要4位做芯片组选择信号
8、试用4K*8b的EPROM2732和8K*8b的SRAM6264,以及74LS138译码器,构成一个8KB的ROM,32KB的RAM存储系统,要求设计存储器扩展电路,并指出每片存储芯片的地址范围.
9、用EPROM2764和SRAM6264各一片组成存储器,其地址范围为FC000~FFFFFH,试画出存储器与CPU的连接图和片选信号译码电路(CPU地址线20位,数据线8位)。
10、现有存储芯片:
2K*1b的ROM和4K*1b的RAM,若用它们组成容量为16KB的存储器,前4KB为ROM,后12KB为RAM,问各种存储芯片分别用多少片?
4K*8b/4K*1b=8
4K*1b/2K*1b=2
8*2=16
需要16片2K*1b的ROM
12K*8b/12K*1b=8
12K*1b/4K*1b=3
8*3=24
需要24片4K*1b的RAM
《微机原理与接口技术》第六章作业
一、P207:
1,3,5,10,14。
18,19,20
1、什么叫中断?
中断系统的主要功能有哪些?
中断:
是指CPU在执行程序的过程中,由于某种外部或内部事件的作用,强迫
CPU停止当前正在执行的程序,转去为该事件服务,待事件服务结束后,能自动地返回到被中断的程序中继续执行。
中断系统的功能:
1、设置中断源
2、中断源识别
3、中断源判优
4、中断与返回
3、CPU响应中断时的处理过程是什么?
在各个处理环节主要完成哪些操作?
过程是:
中断请求、中断响应、中断处理和中断返回。
(1)中断请求:
中断源需要进行中断服务时,由硬件产生一个中断信号INTR发给CPU且保持到CPU响应。
(2)中断响应:
CPU在当前指令执行结束后采样查询INTR,若中断请求信号有效且允许响应INTR中断(IF=1),则向请求设备送回低电平有效的中断响应信号INTR,自此系统自动进入中断响应周期,并由硬件自动完成内容入栈,清除TF和IF标志、断点入栈,取中断服务程序的入口地址等一系列操作,继而转去执行中断服务程序。
(3)中断处理:
执行中断的主体部分。
不同的中断请求源,其中断处理的内容是不同的。
需要根据中断请求源所要完成的功能,编写相应的中断服务程序存入内存。
等待中断响应后调用执行。
(4)中断返回:
又中断服务程序中的中断返回指令IRET完成。
执行该指令时,将压入对战的断点和标志位弹出,使CPU转向被中断的现行程序中继续执行。
5、中断允许标志IF的作用是什么?
可以用什么指令对它置1或清0。
IF用来控制INTR和单步中断。
IF=1允许中断IF=0不允许中断
STI:
IF=1
CLI:
IF=0
10、中断向量表用来存放什么内容?
它占用多大的存储空间?
存放在内存的哪个区域?
可以用什么方法写入或者读取中断向量表的内容?
中断向量表存放中断向量,即中断服务程序的段基址+偏移地址。
中断向量表占1KB内存
RAM区,地址范围:
000H—3FFH。
写入方法:
1、用传送指令直接装入
2、DOS功能调用:
INT21H
(AH)=25H
(AL)=中断类型号
(DS:
DX)=中断服务程序的入口地址
读出方法:
1、用传送指令直接读
2、DOS功能调用:
INT21H
(AH)=35H
(AL)=中断类型号
出口参数:
(ES:
BX)=中断服务程序的入口地址
14、8259A有哪几种中断结束方式?
它们适合应用在什么场合?
1、自动结束方式
自动结束方式是利用中断响应信号INTA的第二个负脉冲的后沿将ISR中的中断服务标志位清除,是在中断过程中完成的,并非中断服务程序的真正结束。
只适合适用在无多级中断嵌套的场合。
2、普通结束方式
通过向8259A传送一个普通EOI命令来清除ISR中当前优先权级别最高位,适合使用在完全嵌套方式下的中断结束。
3、特殊结束方式通过向8259A传送一个普通EOI命令来清除ISR中的指定位。
适合使用在完全嵌套方式下的中断结束,更适合用于嵌套结构有可能遭到破坏的中断结束。
18、某系统使用一片8259A管理中断,中断请求由IR2引人,采用电平触发、完全嵌套、普通EOI结束方式,中断类型号为42H端口地址为80H和81H,试画出8259A与CPU的硬件连接图,井编写初始化程序。
初始化程序:
MOVAL,00011011B;电平触发、单片、写ICW4
OUT80H,AL;写ICW1
MOVAL,01000000B;中断类型号40H,则IR2为42H
OUT81H,AL;写ICW2MOVAL,00000001B;完全嵌套、非自动结束、8086模式
OUT81H,AL;写ICW4
19、某系统使用两片8259A管理中断,从片的INT连接到主片的IR2请求输入端。
设主片工作于边沿触发、特殊完全嵌套、非自动结束和非缓冲方式,中断类型号为70H,端口地址为80H和81H;从片工作与边沿触发、完全嵌套、非自动结束和非缓冲方式,中断类型号为40H,端口地址为20H和21H。
要求:
(1)画出主、从片级联图
(2)编写主、从片初始化程序
主片初始化程序:
MOVAL,00010001B;边沿触发、主片、写ICW4
OUT80H,AL;写ICW1
MOVAL,01110000B;中断类型号70H,则IR2为42H
OUT81H,AL;写ICW2
MOVAL,00000100
OUT81H,AL;写ICW3
MOVAL,00010001B;完全嵌套、非自动结束、8086模式
OUT81H,AL;写ICW4
从片初始化程序:
MOVAL,00010001B;边沿触发、从片、写ICW4
OUT20H,AL;写ICW1
MOVAL,01000000B;中断类型号40H,则IR2为42HOUT21H,AL;写ICW2
MOVAL,00000010
OUT21H,AL;写ICW3
MOVAL,00000001B;完全嵌套、非自动结束、8086模式
OUT21H,AL;写ICW4
20、某系统由8259A的IR2引入外设中断请求(跳变信号有效),要求当CPU响应IR2请求时,输出显示字符串“****”,并中断10次退出,试编写主程序和中断服务程序。
程序:
DATASEGMENT
MESSDB'*****',OAH,ODH,'$'
INTA00EQU0020H
INTA01EQU0021H
DATAENDS
STACKSEGMENTSTACK
DB100HDUP(?
)
STACKENDS
CODESEGMENT