《微机原理部分课后习题答案.pdf》由会员分享,可在线阅读,更多相关《微机原理部分课后习题答案.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理(第4 版)部分习题参考答案第一章绪论1、什么是冯诺依曼机?答:由运算器、控制器、存储器、输入设备、输出设备等5个部分组成,其基本原理是以存储器存储程序控制的原理。9、将下列二进制数转化为十进制数。(1)1 1 0 1.0 1 B=1 3.2 5(2)1 1 1 0 0 1.0 0 1 1 B=5 7.1 8 7 5(3)1 0 1 0 H.0 1 0 1 B=4 3.3 1 2 5(4)1 1 1.0 0 0 1 B=7.0 6 2 51 0、将下列十六进制数转化为十进制数。(1)A 3.3 H=1 6 3.1 8 7 5(2)1 2 9.C H=2 9 7.7 5(3)A C.D
2、C H=1 7 2.8 5 9 3 7 5(4)FA B.3 H=4 0 1 1.1 8 7 51 1、将下列十进制数转化为二进制、八进制、十六进制。(1)2 3=1 0 1 1 1 B=2 7 Q=1 7 H(2)1 0 7=1 1 0 1 0 1 1 B=1 5 3 Q=6 B H(3)1 2 3 8=1 0 0 1 1 0 1 0 1 1 0 B=2 3 2 6 Q=4 D 6 H(4)9 2=1 0 1 1 1 0 0 B=l 3 4 Q=5 C H1 2、将下列十进制数转换为8 位有符号二进制数。(1)+3 2=0 0 1 0 0 0 0 0 B(2)-1 2=1 1 1 1 0 1
3、 0 0 B(3)+1 0 0=0 1 1 0 0 1 0 0 8(4)-9 2=1 0 1 0 0 1 0 0 B1 3、将下列十进制数转化为压缩和非压缩格式的BCD码。压缩 非压缩(1)1 0 2=0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0(2)4 4=0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0(3)3 0 1 =0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0
4、0 0 0 0 0 0 0 0 0 0 0 1(4)1 0 0 0=0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 4、将下列二进制数转换为有符号十进制数。(1)1 0 0 0 0 0 0 0 B=-1 2 8(2)0 0 1 1 0 0 1 1 B=5 1(3)1 0 0 1 0 0 1 0 B=-1 1 0(4)1 0 0 0 1 0 0 1 B=-1 1 9第 二 章 8 0 8 6 系统结构5、要完成下述运算或控制,用什么标志位判别?其值是什
5、么?(1)比较两数是否相等。(2)两数运算后结果是正数还是负数。10、在实模式下对下列CS:IP的组合,求出要执行的下一条指令的存储地址。ZF=O不相等ZF=1相等SF=OSF=1(3)两数相加后是否溢出?(4)采用偶校验方式,判断是否要补1?OF=0未溢出PF=O需 补 1OF=1溢出PF=1不需补1(5)两数相减后比较大小。(6)中断信号能否允许?无符号数:CF=O被减数大于减数IF=0不允许CF=1被减数小于减数IF=1允许有符号数:SF=O被减数大于减数SF=1被减数小于减数8、用伪指令将下列16位十六进制数存储在存储器中,并画出内存分布图。a)1234H b)A122Hc)BI00H
6、A DW 1234HA34B DW AI22H12C DW B100HB22AlC00Bla)CS:IP=1000H:2000H 12000b)CS:IP=2000H:1000H 21000c)CS:IP=lA00H:B000H 25000d)CS:IP=3456H:AB09H 3F06911、实模式下,求下列寄存器组合所寻址的存储单元地址。a)DS=1000H,DI=2000H 12000Hb)SS=2300H,BP=3200H 26200Hc)DS=A000H,BX=1000H A1000Hd)SS=2900H,SP=3A00H 2CA00H12、若当前SS=3500H,SP=0800H,
7、说明堆栈段在存储器中的物理地址,若此时入栈10个字节,S P 内容是什么?若再出栈6 个字节,SP为什么值?解:堆栈段的物理地址为35800H,若此时入栈10个字节,S P 内容是07F6H,若再出栈6个字节,SP为 07FCH。第三章 8086的寻址方式和指令系统1.目的操作数源操作数(1)寄存器寻址立即寻址(2)寄存器寻址立即寻址(3)寄存器寻址寄存器间接寻址(4)寄存器相对寻址寄存器寻址(5)寄存器相对寻址寄存器寻址(6)基址变址寻址立即寻址(7)寄存器寻址基址变址寻址(8)相对基址变址寻址寄存器寻址(9)直接端口寻址(1 0)寄存器寻址寄存器寻址2.(1)0 2 0 0 H(2)2 A
8、 1 0 I1(3)0 2 0 0 H(4)5 9 4 6 H(5)4 6 3 C H(6)6 B 5 9 H3.寻址方式物理地址(1)直接寻址1 0 1 0 0 II(2)直接寻址1 0 0 3 0 H(3)寄存器间接寻址1 0 1 0 0 H(4)寄存器间接寻址2 0 1 0 0 H(5)寄存器间接寻址1 0 0 A 0 II(6)寄存器相对寻址1 0 1 1 0 H(7)寄存器间接寻址3 5 2 0 0 II(8);相对基址变址寻址3 5 2 D 0 H(9),相对基址变址寻址1 0 1 5 4 H(1 0)基址变址寻址3 5 2 2 4 H5 .A L=2 4 H($字符的 A SC
9、II 码)B X=OOOEHC X=5 5 5 0 IID X=1 2 2 4 HSI=4 5 9 A HD I=4 5 9 A HD S=1 2 0 0 HES=1 2 0 0 HA单元的内容为3 4 H6 .除正确外,其余都错误操作数长度不一致立即数不能作为目的操作数不允许把立即数直接传送到段寄存器不能同为存储器操作数(5)(6)I P不能寻址B X、B P不能同时出现(9)SI、D I不能同时使用Q 0)常数没有任何属性(1 1)操作数长度不一致立即数不能参与互换输入指令只能在外部端口与累加器之间进行数据传送格式错误,此外当端口地址超过OFF时,只能采用间接端口寻址方式7 .参考答案之一
10、TA B LE D B 4 0 H,7 9 H,.,1 8 HMOV B X,OFFSET TA B LEMOV A L,5XLA TMOV A H,A LMOV A L,7XLA TMOV B X,A X8、PUSH AX 执行之后1050:00FEH60HSP=OOFEH1050:01 OOH48HPUSH BX 执行之后1050:00FCH87HSP=OOFC H1050:00FEH12H60H48H1050:01 OOHPOP BX 执行之后87HSP=OOFEH1050:00FEH12H60H48H1050:01 OOHPOP AX 执行之后87HSP=O1 OOH12H60H48H
11、1050:01 OOH1 0.(1)A H=0 4 HC F=0 B L=3 6 HC F=0(3)A X=D A F7 H不影响C F(4)C X =F F F 4HC F=0(5)D H =0 8 HC F二0(6)C X =0 0 0 4HC F=0(7)D X =0 18 6HC F=0(8)A L =0 4HC F=0(9)B H =F O HC F二0(1 0)A X =4A 10 HC F=0(I D 若 C F 原状态为0,则 B X=1E 6C H C F=0若 C F 原状态为1,则 B X=1E 6D H C F=0(13 D X =418 6HC F=012.参考答案之
12、一设 D X 寄存器中1 的个数放在B L 中M O VM O VL P 2:R O LJ N CI N CL P 1:R C RC X ,16B L ,0A X ,1L P 1B LD X ,1L O O P L P 2参考答案之二M O V C X,16M O V D X,0M O V B X,0N E X T:R O R A X,1J N C L PI N C B XL P:A D C D X,0R O L D X,1L O O PN E X TR O R D X,113.(1)转去 120 0 H :0 278 H 处执行 转 去 120 0 H :0 30 0 H 处执行 转 去 1
13、20 0 H :48 0 0 H 处执行(4)转 去 340 0 H :0 A B C I I 处执行 转 去 O O F F H :48 0 0 H 处执行若将J M P 换成C A L L,转去的目标与J M P 相同,只是在转移之前,要将返回地址推入堆栈保护起来。14.(1)A X =5,B X =16,C X =0,D X =0(2)A X =2,B X =4,C X =3,D X =1 A X =3,B X =7,C X =2,D X =017、(0 0 0 0 8 H)=16H(0 0 0 0 9H)=0 0 H(O O O O A H)=8 5H(O O O O B H)=0 4
14、H18 .(1)n =0 0 40 H/4=10 H 或 16 D I 69H :240 B H =D 3A 9B H第四章汇编语言程序设计1、下列变量各占几个字节?2、下列指令完成什么功能?Al DW 23H,5876H;4A2 DB 3 DUP(?),OAH,ODH,;6A3 DD 5 DUP(1234H,567890H);40A4 DB 4 DUP(3 DUP(1,2,ABC);60MOV AX,00FFHAND 1122H+3344H;MOVAX,0066HMOV AL,15 GEHUB;MOVAL,OFFHMOV AX,00FFHLE 255+6/5;MOVAX,OFFFFHAND
15、AL,50 MOD 4;ANDAL,02HOR AX,0F00HAND 1234H OR 00FFH;OR AX,10FFH3、有符号定义语句如下:BUF DB 3,4,5,123ABUF DB 0L EQU ABUF-BUF求 L 的值为多少?解:L=ABUF-BUF=偏移量=64、假设程序中的数据定义如下:PAR DW?PNAME DB 16 DUP(?)COUNT DD?PLENGTH EQU$-PAR求 PLENGTH的值为多少?表示什么意义?解:PLENGTH的值为22H,表示数据段所占的字节数。5、对于下面的数据定义,各条MOV指令执行完后,有关寄存器的内容是什么?DAIDB?DA
16、2DW10 DUP(?)DA3DBABCD9MOVAX,TYPE DAI;AX=0001HMOVBX,SIZE DA2;BX=0014HMOVCX,LENGTH DA3;CX=0001H下段程序完成后,AH等于什么?INAL,5FHTESEAL,80HJZLIMOVAH,0JMPSTOPLI:MOVAH,OFFHSTOP:HALT解:程序执行结果:若端口地址5FH输入的数据的D 7=0,贝 l AH=0FFH若端口地址5FH输入的数据的D7=l,则 AH=00H第五章 存储器8.16片9位12条1 2.以设计16Kx 8 位的系统,地址范围为40000H 43FFFH为例需要用到2 片 276
17、4芯片,片内寻址地址线的位数为13位(1)如果是8088系统2 片 2764的数据线均与8088的 8 位数据线对应相连。用 8088的 A0A12作为片内寻址的地址线连接2 片 2764的 A0A12。A 13 A 15接 138 译码器的A、B、C端。A 18 控 制 138 译码器的G 1端,A 19、A 17、A 16通过或门接138 两个低电平控制端中的一个,另一个由存储器/I 0 端口选择信号控制。(或其它合理连接)译码器输出端和Y 1分别连接2 片 2764的 C S2 片 2764的接8 0 8 8 C P U 的端R D2 片 2764 地址范围分别为:40 0 0 0 H
18、41F F F H,420 0 0 H 43F F F H图略(2)如果是8 0 8 6系统1 片 2764的数据线与8 0 8 6的低8位数据线对应相连,另 1 片 2764的数据线与8 0 8 6的高8位数据线对应相连。2 片 2764片内寻址的地址线A 0 A 12与 8 0 8 6的 A P A 13相连。A 14 A 16接 138 译码器的A、B、C端。A 18 和通过与门控制138 译码器的G 1端,A 19、A 17通过或门接、。(或其它合理连接)译码器输出端经A 0 和译码后控制2 片 2764的 C S,2 片 2764的接8 0 8 6C P U 的端R D由 A 0 选
19、择的2764的地址范围是:40 0 0 0 H、43F F F H 中的偶地址,由选择的2764的地址范围是:40 0 0 0 i r 43F F F H 中的奇地址。图略第七章微型计算机中断系统10、执行 I N T 9 指令后,S S=0 50 0 H,S P=0 0 F A H,I P=0 0 60 H,F R=0 0 40 H栈顶的三个字依次是:0 0 A 2I 1,0 8 0 0 11,0 240 H16、(1)图略(2)主片的初始化程序:M O V A L,0 0 0 110 0 1B ;I C W 1O U T 0 F 8 H,A LM O V A L,8 0 11;I C W
20、2O U T O F A H,A LM O V A L,24H ;I C W 3O U T O F A H,A LM O V A L,0 0 0 10 0 0 1B ;I C W 4O U T O F A H,A LM O V A L,110 10 0 11B ;O C W 1O U T O F A H,A L从 片 1 的初始化程序:M O V A L,0 0 0 110 0 1B ;I C W 1O U T O F C H,A LM O V A L,90 H ;I C W 2O U T O F E H,A LM O V A L,0 2H ;I C W 3O U T O F E H,A LM
21、 O V A L,0 0 0 0 0 0 0 I B ;I C W 4O U T O F E H,A LM O V A L,1110 1111B ;O C W 1O U T O F E H,A L从片2 的初始化程序:M O V A L,0 0 0 110 0 1B ;I C W 1M O V D X,O F E E C HO U T D X,A LM O V A L,O A O H ;I C W 2M O V D X,O F E E E HO U T D X,A LM O V A L,0 5H ;I C W 3O U T D X,A LM O V A L,O O O O O O O 1B ;
22、I C W 4O U T D X,A LM O V A L,l l l O U H B ;O C W 1O U T D X,A L第八章可编程定时/计数器8253及应用4、8253的端口地址为300H,302H,304H,306H,通 道 0 工作在方式3,CLK0=2M HZ,输出1.5KHZ的方波,通 道 1用通道0 的输出作计数脉冲,输出300HZ的序列负脉冲,通道2 每秒钟向CPU发 50次中断请求。MOV DX,306HMOV AUOOllXlllBOUT DX,AL;通道 0,方式 3,BCD 计数,CLKo=2MHZ,GATEo=+5V,OUT0=1.5KHZMOV DX,300
23、HMOV AL,33HOUT DX,ALMOV AL,13HOUT DX,AL;No=2MHZ/1.5KHZ=1333MOV DX,306HMOV AL,0101XI0XBOUT DX,AL;通 道 1,方式2,BCD或二进制计数;CLK|=OUT()=1.5KHZ,GATE1=+5V,OUT=300HZMOV AL,5MOV DX,302HOUT DX,AL;Ni=1.5KHZ/300HZ=5MOV DX,306HMOV AL,1001X1X1BOUT DX,AL;通道 2,方式 2/3,BCD 计数,;CLK2=OUTO=1.5KHZ,GATE2=+5V,OUT2=50HZMOV DX,3
24、04HMOV AL,30HOUT DX,AL;N2=1.5KHZ/50HZ=305、8254端口地址为40H43H,时钟频率为5M H Z,通 道 0 输出方波,每秒钟产生18.2次中断,通 道 1每 隔 15us提出一次DMA请求,通道2 输出频率2000HZ的方波。MOV AL,O1O1X1X1BOUT 43H,AL;通道 1,方式 2/3,CLK|=5MHZ,GATE=+5V,OUT)=1/15MHZMOV AL,75HOUT 41H,AL;N=75MOV AL,1011X111BOUT 43H,AL;通道 2,方式 3,CLK2=5MHZ,GATE2=+5V,OUT2=2KHZMOV
25、AL,OOHOUT 42H,ALMOV AL,25HOUT 42H,AL;N2=2500MOV AL,0001X1X0BOUT 43H,AL;通道 0,方式 2/3,CLK0=OUT2=2KHZ,GATE()=+5V,OUT0=18.2HZMOV AL,6EHOUT 40H,AL;No=110=6EH6、8254芯片基地址为FOH,(1)对通道02 的计数进行锁存并读出来MOV AL,11011 HOBOUT 0F6H,AL;锁存3 个通道的计数IN AL,OFOHMOV DL,ALIN AL,OFOHMOV DH,AL;读通道0 计数至DXIN AL,0F2HMOV BL,ALIN AL,0
26、F2HMOV BH,AL;读通道1计数至BXIN AL,0F4HMOV AH,ALIN AL,0F4HXCHG AH,AL;读通道2 计数至AX(2)对通道2 状态进行锁存并读出来。MOV AL,11101000BOUT 0F6H,AL;锁存通道2 状态IN AL,0F4H;读通道2 状态字第九章可编程接口 8255及其应用4、5、A 口为 2F9H,B 口为 2FBH,C 口为 2FD H,控制字为 2FFHMOVOUTMOVOUTMOVOUTMOVOUTMOVAL,10001010B86H,ALAL,0XXX1001B86H,AL;PC4=1AL,0XXX1010B86H,AL;PC5=0
27、AL,0XXX1100B86H,AL;PC6=0AL,0XXXI101BOUT 86H,AL;PC6=1MOV AL,0XXX1100BOUT 86H,AL;PC6=07、A 口方式0输入,B 口方式1输出,控制字为1001X10XB,PC7PC3为普通I/O,PC2为 ACKB,PG 为 OBFR,PC。为 INTRBA 口方式1输 入,B 口方式0输出,控制字为1011X00XB,PC7,PC6,PC2PCo为普通I/O,PC5 为 IBFA,PC4 为 STBA,PC3 为 INTRA8、A 口方式 2,B 口方式 1 输入,PC。为 INTRB,PG 为 0 8%,PQ 为 ACKR,
28、PC3 为INTRA.PC4 为 STBA,PC5 为 IBFA,PC6 为 PC7 为 OBF,、A 口方式2,B 口方式0输出,PC()PC2为普通1/0,PC3PC7同上9、(1)初始化:MOV AL,1001X00XBOUT83H,AL;8255的A 口方式0输入,B 口方式0输出MOVAL,0011X1X1BOUT87H,AL;8253通道0,方式2/3,BCD计数MOVAL,OOHOUT84H,ALMOVAL,10HOUT84H,AL;CLK0=2KHZ,GATEo=+5V,OUT0=2HZ,No=1000HLT;等待中断,OUT。作为中断请求,每隔0.5s中断一次中断服务程序:S
29、TI开中断IN AL,80H;读A 口NOTAL;取反OUT81H,AL;写B 口IRET中断返回(2)初始化:MOVAL,1XXXX00XBOUT83H,AL;8255的B 口方式0输出MOVDL,01111111BMOVAU0U1X1X1BOUT87H,AL;8253通 道1,方式2/3,BCD计数MOVAL,OOHOUT85H,ALMOVAL,20HOUT85H,AL;CLKi=2KHZ,GATEo=+5V,OUT0=1HZ,No=2000HLT;等待中断,OU 作为中断请求,每 隔1s中断一次中断服务程序:STI;开中断ROLDL,1MOVAL,DLOUT81H,AL;轮流熄灭LED(
30、广LED?IRET*中断返回10、DATA SEGMENTLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H JCH,39H,5EH,79H,71H;0F 的七段显示代码DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROCMOV AX,DATAMOV DS,AXMOV AL,1001X00XBMOV DX,303HOUT DX,AL;A 口方式0 输入,B 口方式0 输出LEA BX,LED;代码表基地址送入BXXH:MOV DX,300HIN AL,DX;读 A 口AND ALOFH;屏
31、蔽高4 位XLAT;查七段显示代码表MOV DX,301HOUT DX,AL;送 B 口显示CALL DELAY2S;2s 延时JMP XHMOV AH,4CHINT 21H;返回 DOSMAIN ENDPCODE ENDSEND第十章 可编程串行接口芯片82516、0.00042 秒,0.0042 秒9、9600*16=153600HZ13、MOV AL,0OUT 86H,AL;连续写3 个 0DELAY;延时,写恢复OUT 86H,ALDELAYOUT 86H,ALDELAYMOV AL,40HOUT 86H,AL;写复位命令字DELAYMOV AL,00111000BOUT 86H,AL
32、;写方式字,2 个同步字符,内同步,偶校验,7 个数据位DELAYMOV AL,16HOUT 86H,AL;写同步字符(16H)DELAYOUT 86H,AL;写第2 个同步字符DELAYMOV AL,10010101BOUT 86H,AL;写命令字,启动搜索同步,清错误标志,允许接收发送14、MOV AL,0MOV DX,0FF2HOUT DX,AL;连续写3 个 0DELAY;延时,写恢复OUT DX,ALDELAYOUT DX,ALDELAYMOV AL,40HOUT DX,AL;写复位命令字DELAYMOV AL,01011010BOUT DX,AL;写异步方式字,奇校验,7 个数据位
33、,1个停止位,波特率因子16DELAYMOV AL,00010101BOUT DX,AL;清错误标志,允许接收发送16、(2)8251初始化程序同14题(将 DX置为305H)8253 初始化:MOV DX,303H(3)接收数据程序:NEXT_R:MOVOUTMOVMOVOUTMOVOUTLEAMOVMOVAL,0011X1X1HDX,AL;通道0,方式2/3,BCD计数DX,300HAL,60HDX,ALAL,02HDX,AL;N0=5MHZ/(1200*16HZ)=260DI,BUFFERCX,COUNTDX,305HIN AL,DX;读状态字TEST AL,02HJZ NEXT_R;RxRDY无效,循环等待TEST AL,38HJNZ ERROR;有错,转 ERRORMOV DX,304HIN AL,DX;接收数据MOV DI,ALINC DIMOV DX,305HLOOP NEXT.R发送数据程序:LEA BX,BUFFERMOV CX,COUNTMOV DX,305HNEXT_T:IN AL,DX;读状态字TEST AL,01HJZ NEXT_T;TxRDY无效,循环等待MOV DX,304HMOV AL,BXOUT DX,AL;发送数据INC BXMOV DX,305HLOOP NEXT T
限制150内