微机原理课后作业答案第五版Word文档下载推荐.docx
- 文档编号:21564076
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:17
- 大小:28.03KB
微机原理课后作业答案第五版Word文档下载推荐.docx
《微机原理课后作业答案第五版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理课后作业答案第五版Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
16+0100H=3A700H
8、
(1)段起始地址1200H×
16=12000H,结束地址1200H×
16+FFFFH=21FFFH
(2)段起始地址3F05H×
16=3F050H,结束地址3F05H×
16+FFFFH=4F04FH
(3)段起始地址0FFEH×
16=0FFE0H,结束地址0FFEH×
16+FFFFH=1FFD0H
9、3456H×
16+0210H=34770H
11、堆栈地址范围:
2000:
0000H~2000H(0300H-1),即20000H~202FFH。
执行两条PUSH指令后,SS:
SP=2000:
02FCH,再执行1条PUSH指令后,SS:
02FAH。
12、(2000H)=3AH,(2001H)=28H,(2002H)=56H,(2003H)=4FH
从2000H单元取出一个字数据需要1次操作,数据是283AH;
从2001H单元取出一个字数据需要2次操作,数据是5628H;
17、CPU读写一次存储器或I/O端口的时间叫总线周期。
1个总线周期需要4个系统时钟周期(T1~T4)。
8086-2的时钟频率为8MHz,则一个T周期为125ns,一个总线周期为500ns,则CPU每秒最多可以执行200万条指令。
第三章
1、源操作数的寻址方式:
(1)
(2)(6)立即寻址(3)寄存器间接寻址(4)(5)(8)(10)寄存器寻址
(7)基址变址寻址(9)直接寻址
2、DS=1000H,BX=0200H,SI=0002H
(10200H~10205H)依次存有10H,2AH,3CH,46H,59H,6BH
(1)MOVAX,0200H;
AX=0200
(2)MOVAX,[200H]
物理地址=1000H×
10H+0200H=10200H,AX=2A10H
(3)MOVAX,BX;
AX=0200H
(4)MOVAX,3[BX]
10H+0200H+3H=10203H,AX=5946H
(5)MOVAX,[BX+SI]
10H+0200H+2H=10202H,AX=463CH
(6)MOVAX,2[BX+SI]
10H+200H+2H+2H=10204H,AX=6B59H
3、DS=1000H,ES=2000H,SS=3500H,
SI=00A0H,DI=0024H,BX=0100H,BP=0200H,VAL=0030H
(1)MOVAX,[100H]直接寻址方式,10100H
物理地址=DS×
10H+100H=10000H+0100H=10100H
(2)MOVAX,VAL直接寻址方式,10030H
10H+VAL=10000H+0030H=10030H
(3)MOVAX,[BX]寄存器间接寻址,10100H
10H+BX=10000H+0100H=10100H
(4)MOVAX,ES:
[BX]寄存器间接寻址,20100H
物理地址=ES×
10H+BX=20000H+0100H=20100H
(5)MOVAX,[SI]寄存器间接寻址,100A0H
物理地址=DS×
10H+SI=10000H+00A0H=100A0H
(6)MOVAX,[BX+10H]寄存器相对寻址,10110H
10H+BX+10H=10000H+0100H+10H=10110H
(7)MOVAX,[BP]寄存器间接寻址,35200H
物理地址=SS×
10H+BP=35000H+0200H=35200H
(8)MOVAX,VAL[BP][SI]相对基址变址寻址,352D0H
10H+BP+SI+VAL
=35000H+0200H+00A0H+0030H=352D0H
(9)MOVAX,VAL[BX][DI]相对基址变址寻址,10154H
10H+BX+DI+VAL
=10000H+0100H+0024H+0030H=10154H
(10)MOVAX,[BP][DI]基址变址寻址,35224H
10H+BP+DI=35000H+0200H+0024H=35224H
5、
6、
(1)MOVDL,AX
错,寄存器寻址方式中,目的操作数与源操作数长度必须一致
(2)MOV8650H,AX
错,目的操作数不可以是立即数
(3)MOVDS,0200H
错,MOV指令不允许将立即数传入段寄存器
(4)MOV[BX],[1200H]
错,MOV指令的两个操作数不能同时为存储器
(5)MOVIP,0FFH
错,IP不能作为MOV指令的目的操作数
(6)MOV[BX+SI+3],IP
错,IP不能作为MOV指令的源操作数
(7)MOVAX,[BX][BP]
错,BX与BP不可以同时出现在源操作数当中
(8)MOVAL,ES:
[BP]对
(9)MOVDL,[SI][DI]
错,SI与DI是两个变址寄存器,不可以同时出现在源操作数中。
(10)MOVAX,OFFSET0A20H
错,OFFSET后面跟的应该是符号地址,再把符号地址的值作为操作数。
(11)MOVAL,OFFSETTABLE
错,TABLE的偏移地址是16位,目的与源长度不一致
(12)XCHGAL,50H
错,交换指令可以在寄存器之间,寄存器和存储器之间进行,不可以是立即数。
(13)INBL,05H
错,BL不能作为IN指令的目的操作数,只能用AL或AX
(14)OUTAL,0FFEH
错,端口地址0FFEH>
FFH,应用DX间接寻址,同时源操作数和目标操作数的位置颠倒了,应改为OUTDX,AL。
8、
10、AX=2508H,BX=0F36H,CX=0004H,DX=1864H
(1)ANDAH,CL
AH=04H,CF=0;
(00100101B与00000100B)
(2)ORBL,30H
BL=36H,CF=0;
(00110110B或00110000B)
(3)NOTAX
AX=DAF7H,CF无影响;
(0010010100001000B取反后1101101011110111B)
(4)XORCX,0FFF0H
CX=FFF4H,CF=0;
(0000000000000100B和1111111111110000B异或后1111111111110100B)
(5)TESTDH,0FH
TEST操作并不修改结果,CF=0;
(6)CMPCX,00H
CMP操作并不修改结果,CF=0;
(7)SHRDX,CL
DX=0186H,CF=0;
(8)SARAL,1
(9)SHLBH,CL
BH=F0H,CF=0;
(10)SALAX,1
AX=4A10H,CF=0;
(0010010100001000B左移)
(11)RCLBX,1
若程序执行之前CF=0,BX=1E6CH,CF=0;
若程序执行之前CF=1,BX=1E6DH,CF=0。
(12)RORDX,CL
DX=4186H,CF=0。
12、
14、
(1)LOOPNEXT
(2)LOOPENEXT
(3)LOOPNENEXT
START:
MOVAX,01H
MOVBX,02H
MOVDX,03H
MOVCX,04H
NEXT:
INCAX
ADDBX,AX
SHRDX,1
()
程序运行前DX=00000011B
(1)AX=0005HBX=0010HCX=0000HDX=0000H
(2)AX=0002HBX=0004HCX=0003HDX=0001H
(3)AX=0003HBX=0007HCX=0002HDX=0000H
15、ARRAYDB78H,67H,75H,69H,70H,74H,71H
NEWDB7DUP(?
)
MOVCX,0007H
MOVBX,0000H
NEXT:
MOVAL,ARRAY[BX]
ADDAL,5
DAA
MOVNEW[BX],AL
INCBX
LOOPNEXT
HLT
第四章(请主动识别程序中的标点符号为英文输入模式下的)
2.、指令语句由4部分组成,格式:
标号:
指令助记符操作数;
注释
其中,指令助记符不可缺少。
伪指令语句由4部分组成,格式:
名字伪指令指示符操作数;
其中,伪指令指示符不可缺少。
3、伪指令语句在汇编过程中完成某些特定的功能,没有它们,汇编程序将无法完成汇编过程。
和指令语句的主要区别是它没有对应的机器码,不能让CPU执行。
5、每条语句执行后的结果依次为:
AL=1BL=2CL=4AH=0FFHBH=4CH=1
6、
13、程序流程图如下:
汇编程序如下:
CODESEGMENT
ASSUMECS:
CODE
CMPBL,60;
与60分比较
JBFAIL;
<
60,转FAIL
CMPBL,85;
≥60,与85分比较
JAEGOOD;
≥85,转GOOD
MOVDL,‘P’;
其它,将DL←‘P’
JMPDISPLAY;
转显示程序
FAIL:
MOVDL,‘F’;
DL←‘F’
GOOD:
MOVDL,‘G’;
AL←‘G’
DISPLAY:
MOVAH,02H;
显示存在DL中的字符
INT21H
MOVAX,4C00H
CODEENDS
ENDSTART
14、
DATASEGMENT
TABLEDB01H,80H,0F5H,32H,86H,90H
DB74H,49H,0AFH,25H,40H,88H
PLUSDB0;
存正数个数
NEGTDB0;
存负数个数
ZERODB0;
存0的个数
DATAENDS
CODE,DS:
DATA
MOVAX,DATA
MOVDS,AX
MOVCX,12;
数据总数
MOVBX,0;
BX清0
AGAIN:
CMPTABLE[BX],0;
取一个数与0比
JGEGRET_EQ;
≥0,转GRET_EQ
INCNEGT;
0,负数个数加1
JMPNEXT;
往下执行
GRET-EQ:
JGP-INC;
>
0,转P-INC
INCZERO;
=0,零个数加1
P-INC:
INCPLUS;
正数个数加1
NEXT:
INCBX;
数据地址指针加1
DECCX;
数据计数器减1
JNZAGAIN;
未完,继续统计
21、为便于理解,假设存放在BX(需要注意的是要先将BX中的数据送给AX)中的16位二进制数的实际值为9346,转换后应使CX=9346H(压缩BCD数)。
BIN_BCDPROCNEAR
MOVAX,BX
CMPAX,9999;
AX>
9999?
JBETRAN;
小于,转
JMPEXIT;
大于,转退出
TRAN:
SUBDX,DX;
DX初值清0
MOVCX,1000;
CX1000
DIVCX;
(DX,AX)/1000=9…346(AX=9,DX=346)
XCHGAX,DX;
交换,使DX=9,AX=346(下次除法被除数)
MOVCL,4;
第一个商9左移4次
SHLDX,CL;
DX=0090H
MOVCL,100;
CL100
DIVCL;
346/100=3…46,AL=3,AH=46
ADDDL,AL;
将第2次的商加到DL中,使DX=0093H
MOVCL,4;
DX左移4次
左移后DX=0930H
XCHGAL,AH;
交换,AX=0346H
SUBAH,AH;
AX=0046H,第2次余数做被除数
MOVCL,10;
CL10
AX/10=4…6,结果AL=4,AH=6
ADDDL,AL;
4加到DL上,使DX=0934H
MOVCL,4
SHLDX,CL;
DX左移4次,DX=9340H
ADDDL,AH;
最后一次余数加到DX上,DX=9346H
MOVCX,DX;
最后结果:
AX=9346H
EXIT:
RET
BIN_BCDENDP
第五章
1、内存分为随机存取存储器RAM和只读存储器ROM。
RAM的特点:
可随机写入和读出,访问速度快,但断电后内容会全部丢失,即具有易失性。
存放在ROM中的内容不会因断电而丢失,它属于非易失性存储器,计算机只能对ROM读出不能进行写入,改写要用专门的编程器。
3、静态RAM电路结构复杂,集成度较低,功耗也大,但存取速度很快,访问时间可小于10ns。
不适合做容量很大的内存,主要用作高速缓存(Cache),并用于网络服务器、路由器和交换机等高速网络设施上。
动态RAM电路简单,但存取速度慢,电容上存储的信息会丢失,需要刷新。
容量大,价格便宜,PC机上的内存都采用DRAM,而且做成内存条,便于扩充内存容量。
还被用在其它需要大量存储的场合,如激光打印机、高清晰数字电视等。
4、动态RAM存储单元由1个MOS管和1个小电容C构成。
C充满电荷便保存了信息1,无电荷为0。
电容C上保存的电荷会逐渐泄漏,使信息丢失。
为此,要在DRAM使用过程中及时向保存1的那些存储单元补充电荷,也就是对C进行预充电,这一过程称为DRAM的刷新(refresh)。
读操作是读出电容C上的电荷转换成的0或1的逻辑电平,并非对电容C进行充电。
15、8,A10~A0,A19~A11,4
16、
芯片
A19~A16
A15~A13
A12~A0
一个可用的芯片地址范围
1
XX10
000
全0~全1
20000H~21FFFH
2
001
22000H~23FFFH
3
010
24000H~25FFFH
4
011
26000H~27FFFH
18、
X001
100
18000H~19FFFH
101
1A000H~1BFFFH
110
1C000H~1DFFFH
111
1E000H~1FFFFH
第六章
1、答:
CPU和外设之间的信息交换存在以下一些问题:
速度不匹配;
信号电平不匹配;
信号格式不匹配;
时序不匹配。
I/O接口电路是专门为解决CPU与外设之间的不匹配、不能协调工作而设置的,处于总线和外设之间,一般应具有以下基本功能:
⑴设置数据缓冲以解决两者速度差异所带来的不协调问题;
⑵设置信号电平转换电路,如可采用MC1488、MC1489、MAX232、MZX233芯片来实现电平转换。
⑶设置信息转换逻辑,如模拟量必须经A/D变换成数字量后,才能送到计算机去处理,而计算机送出的数字信号也必须经D/A变成模拟信号后,才能驱动某些外设工作。
⑷设置时序控制电路;
⑸提供地址译码电路。
2、CPU与外设通信时,传送的信息主要包括数据信息、状态信息和控制信息。
在接口电路中,这些信息分别进入不同的寄存器,通常将这些寄存器和它们的控制逻辑统称为I/O端口,CPU可对端口中的信息直接进行读写。
在一般的接口电路中都要设置以下几种端口:
⑴数据端口:
用来存放外设送往CPU的数据以及CPU要输出到外设去的数据。
数据端口主要起数据缓冲的作用。
⑵状态端口:
主要用来指示外设的当前状态。
每种状态用1位表示,每个外设可以有几个状态位,它们可由CPU读取,以测试或检查外设的状态,决定程序的流程。
⑶命令端口:
也称为控制端口,它用来存放CPU向接口发出的各种命令和控制字,以便控制接口或设备的动作。
I/O端口的编址方式有两种:
分别称为存储器映象寻址方式和I/O指令寻址方式。
存储器映象寻址方式:
把系统中的每个I/O端口都看作一个存储单元,并与存储单元一样统一编址,这样访问存储器的所有指令均可用来访问I/O端口,不用设置专门的I/O指令。
I/O指令寻址方式:
对系统中的输入输出端口地址单独编址,构成一个I/O空间,它们不占用存储空间,而是用专门的IN指令和OUT指令来访问这种具有独立地址空间的端口。
8086/8088CPU采用I/O指令寻址方式,用地址总线的低16位(A15~A0)来寻址I/O端口,最多可以访问216=65536个输入或输出端口。
7、端口A:
包含1个8位的数据输出锁存器/缓冲器,1个8位的数据输入锁存器。
A口作输入或输出时数据均能锁存。
端口B:
包含1个8位的数据输入/输出锁存器/缓冲器,1个8位的数据输入缓冲器。
端口C:
包含1个8位的数据输出锁存器/缓冲器,1个8位的数据输入缓冲器,无输入锁存功能,
分成两个4位端口时,每个端口有1个4位的输出锁存器。
C口还可配合A口和B口工作,用来产生A口和B口的输出控制信号、输入到A口和B口的端口状态信号。
A组:
管理A口和C口高,通过PA7~PA0以及PC7~PC4引脚与外部联络。
B组:
管理B口和C口低,通过PB7~PB0以及PC3~PC0引脚与外部联络。
8、8255A具有3种基本的工作方式,在对8255A进行初始化编程时,应向控制字寄存器写入方式选择控制字,用来规定8255A各端口的工作方式。
这3种基本工作方式是:
方式0——基本输入输出方式:
适用于不需要用应答信号的简单输入输出场合。
这种方式A口和B口可作为8位的端口,C口的高4位和低4位可作为两个4位的端口。
方式1——选通输入输出方式:
A口和B口作为数据口,均可工作于输入或输出方式。
端口C的6根线用来产生或接受联络信号。
方式2——双向总线I/O方式:
只有A口可以工作于这种方式。
端口A工作于方式2时,端口C的5位(PC3~PC7)作A口的联络控制信号。
9、控制字寄存器。
方式选择控制字的D7位总为1,而置位/复位控制字的D7位总为0。
10、0F8H,0FAH,0FCH,0FEH
MOVAL
OUT86H,AL
15、
MOVDX,83H;
控制字寄存器
OUTDX,AL;
写入控制字
TEST_IT:
MOVDX,80H;
指向A口
INAL,DX;
读入开关状态
NOTAL
MOVDX,81H;
指向B口
B口控制LED
CALLDELAY_20S;
调延时20s子程序
JMPTEST_IT;
延时20s再检测
DELAY_20S:
…;
延时20s子程序
第七章
1、8253内部包含3个完全相同的计数器/定时器通道,即0~2计数通道,对3个通道的操作完全是独立的。
8253的每个通道都有6种不同的工作方式。
方式0:
计数结束中断,输出一个正跳变
方式1:
可编程单稳输出,输出一个宽度可
调的负脉冲
方式2:
比率发生器,输出序列负脉冲
方式3:
方波发生器。
方式2,3均可n分频
方式4:
软件触发选通,写入n开始计数
方式5:
硬件(GATE上升沿)触发选通
4、通道0:
方式3,初值N0=2M/1K=2000=(2000H)BCD控制字:
00110111B
通道1:
方式2,初值N1=2M/500=4000=(4000H)BCD控制字:
01110101B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课后 作业 答案 第五