1、微机原理课后作业答案第五版第一章6、+42原00101010B=+42反+42补42原10101010B42反11010101B42补11010110B+85原01010101B=+85反+85补85原11010101B85反10101010B85补10101011B10、微型计算机基本结构框图地址总线I/O总线微处理器CPU存储器I/O接口I/O设备数据总线控制总线微处理器通过一组总线(Bus)与存储器和I/O接口相连,根据指令的控制,选中并控制它们。微处理器的工作:控制它与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。存储器用来存放数据和指令,其内容以二进制
2、表示。每个单元可存8位(1字节)二进制信息。输入将原始数据和程序传送到计算机。输出将计算机处理好的数据以各种形式(数字、字母、文字、图形、图像和声音等)送到外部。接口电路是主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。总线:从CPU和各I/O接口芯片的内部各功能电路的连接,到计算机系统内部的各部件间的数据传送和通信,乃至计算机主板与适配器卡的连接,以及计算机与外部设备间的连接,都要通过总线(Bus)来实现。13、8086有20根地址线A19A0,最大可寻址220=1048576字节单元,即1MB;80386有32根地址线,可寻址232=4GB。80
3、86有16根数据线,80386有32根数据线。第二章1、8086外部有16根数据总线,可并行传送16位数据;具有20根地址总线,能直接寻址220=1MB的内存空间;用低16位地址线访问I/O端口,可访问216=64K个I/O端口。另外,8088只有8根数据总线2、8086 CPU由两部分组成:总线接口单元(Bus Interface Unit,BIU)BIU负责CPU与内存和I/O端口间的数据交换:BIU先从指定内存单元中取出指令,送到指令队列中排队,等待执行。执行指令时所需的操作数,也可由BIU从指定的内存单元或I/O端口中获取,再送到EU去执行。执行完指令后,可通过BIU将数据传送到内存或
4、I/O端口中。指令执行单元(Execution Unit,EU) EU负责执行指令:它先从BIU的指令队列中取出指令,送到EU控制器,经译码分析后执行指令。EU的算术逻辑单元(Arithmetic Logic Unit,ALU)完成各种运算。6、见书P28-29。7.(1) 1200:3500H=1200H16+3500H=15500H (2) FF00:0458H=FF00H16+0458H=FF458H (3) 3A60:0100H=3A80H16+0100H=3A700H8、(1)段起始地址 1200H1612000H,结束地址 1200H16+FFFFH21FFFH(2)段起始地址 3
5、F05H163F050H,结束地址 3F05H16+FFFFH4F04FH(3)段起始地址 0FFEH160FFE0H,结束地址 0FFEH16+FFFFH1FFD0H9、3456H16+0210H=34770H11、堆栈地址范围:2000:0000H2000H(0300H-1),即20000H202FFH。执行两条PUSH指令后,SS:SP=2000:02FCH,再执行1条PUSH指令后,SS:SP=2000:02FAH。12、(2000H)=3AH, (2001H)=28H, (2002H)=56H, (2003H)=4FH从2000H单元取出一个字数据需要1次操作,数据是 283AH;从
6、2001H单元取出一个字数据需要2次操作,数据是 5628H;17、CPU读写一次存储器或I/O端口的时间叫总线周期。1个总线周期需要4个系统时钟周期(T1T4)。80862的时钟频率为8MHz,则一个T周期为125ns,一个总线周期为500ns,则CPU每秒最多可以执行200万条指令。第三章1、源操作数的寻址方式:(1)(2)(6)立即寻址 (3)寄存器间接寻址 (4)(5)(8)(10)寄存器寻址(7)基址变址寻址 (9)直接寻址2、DS=1000H, BX=0200H, SI=0002H (10200H10205H)依次存有10H,2AH,3CH,46H,59H,6BH(1)MOV AX
7、, 0200H ; AX=0200(2)MOV AX, 200H 物理地址=1000H10H+0200H=10200H, AX=2A10H(3)MOV AX, BX ; AX=0200H(4)MOV AX , 3BX 物理地址=1000H10H +0200H+3H=10203H, AX=5946H(5)MOV AX , BX+SI 物理地址=1000H10H+0200H +2H=10202H , AX=463CH(6)MOV AX, 2BX+SI 物理地址=1000H10H +200H+2H+2H=10204H , AX=6B59H3、DS=1000H, ES=2000H, SS=3500H,
8、 SI=00A0H, DI=0024H, BX=0100H, BP=0200H, VAL=0030H (1)MOV AX, 100H 直接寻址方式,10100H 物理地址DS10H+100H=10000H+0100H=10100H(2)MOV AX, VAL 直接寻址方式,10030H 物理地址DS10H+VAL=10000H+0030H=10030H (3)MOV AX, BX 寄存器间接寻址,10100H 物理地址DS10H+BX=10000H+0100H=10100H (4)MOV AX, ES:BX 寄存器间接寻址,20100H 物理地址ES10H+BX=20000H+0100H=20
9、100H (5)MOV AX, SI 寄存器间接寻址,100A0H物理地址=DS10H+SI=10000H+00A0H=100A0H(6)MOV AX, BX+10H 寄存器相对寻址,10110H物理地址=DS10H+BX+10H=10000H+0100H+10H=10110H(7)MOV AX, BP 寄存器间接寻址,35200H物理地址=SS10H+BP=35000H+0200H=35200H(8)MOV AX, VALBPSI 相对基址变址寻址,352D0H物理地址=SS10H+BP+SI+VAL =35000H+0200H+00A0H+0030H=352D0H(9)MOV AX, VA
10、LBXDI 相对基址变址寻址,10154H物理地址=DS10H+BX+DI+VAL =10000H+0100H+0024H+0030H=10154H(10)MOV AX, BPDI 基址变址寻址,35224H物理地址=SS10H+BP+DI=35000H+0200H+0024H=35224H5、6、(1)MOV DL, AX 错,寄存器寻址方式中,目的操作数与源操作数长度必须一致(2)MOV 8650H, AX 错,目的操作数不可以是立即数(3)MOV DS, 0200H 错,MOV指令不允许将立即数传入段寄存器(4)MOV BX, 1200H 错, MOV指令的两个操作数不能同时为存储器(5
11、)MOV IP, 0FFH 错, IP不能作为MOV指令的目的操作数(6)MOV BX+SI+3, IP 错, IP不能作为MOV指令的源操作数(7)MOV AX, BXBP 错,BX与BP不可以同时出现在源操作数当中(8)MOV AL, ES:BP 对(9)MOV DL, SIDI 错,SI与DI是两个变址寄存器,不可以同时出现在源操作数中。(10)MOV AX, OFFSET 0A20H 错,OFFSET后面跟的应该是符号地址,再把符号地址的值作为操作数。(11)MOV AL, OFFSET TABLE 错,TABLE的偏移地址是16位,目的与源长度不一致(12)XCHG AL, 50H
12、错,交换指令可以在寄存器之间,寄存器和存储器之间进行,不可以是立即数。(13)IN BL, 05H 错, BL不能作为IN指令的目的操作数,只能用AL或AX(14)OUT AL, 0FFEH 错,端口地址0FFEHFFH, 应用DX间接寻址, 同时源操作数和目标操作数的位置颠倒了,应改为OUT DX, AL。8、10、AX=2508H,BX=0F36H,CX=0004H,DX=1864H(1)AND AH, CL AH=04H,CF=0;(0010 0101B与0000 0100B)(2)OR BL, 30H BL=36H,CF=0;(0011 0110B或0011 0000B)(3)NOT
13、AX AX=DAF7H,CF无影响;(0010 0101 0000 1000B取反后1101 1010 1111 0111B)(4)XOR CX, 0FFF0H CX=FFF4H,CF=0;(0000 0000 0000 0100B和1111 1111 1111 0000B异或后1111 1111 1111 0100B)(5)TEST DH, 0FH TEST操作并不修改结果,CF=0; (6)CMP CX, 00H CMP操作并不修改结果,CF=0;(7)SHR DX, CL DX=0186H,CF=0;(8)SAR AL, 1 AH=04H,CF=0;(9)SHL BH, CL BH=F0
14、H,CF=0;(10)SAL AX, 1 AX=4A10H,CF=0;( 0010 0101 0000 1000B 左移)(11)RCL BX, 1 若程序执行之前CF=0,BX=1E6CH,CF=0;若程序执行之前CF=1,BX=1E6DH,CF=0。(12)ROR DX, CL DX=4186H,CF=0。 12、14、 (1)LOOP NEXT (2)LOOPE NEXT (3)LOOPNE NEXTSTART: MOV AX, 01H MOV BX, 02H MOV DX, 03H MOV CX, 04HNEXT: INC AX ADD BX, AX SHR DX, 1 ( ) 程序运
15、行前 DX=00000011B (1)AX=0005H BX=0010H CX=0000H DX=0000H (2)AX=0002H BX=0004H CX=0003H DX=0001H (3)AX=0003H BX=0007H CX=0002H DX=0000H15、ARRAY DB 78H,67H,75H,69H,70H,74H,71H NEW DB 7 DUP(?) MOV CX, 0007H MOV BX, 0000H NEXT: MOV AL, ARRAYBX ADD AL, 5 DAA MOV NEWBX,AL INC BX LOOP NEXT HLT第四章 (请主动识别程序中的标
16、点符号为英文输入模式下的)2.、指令语句由4部分组成,格式: 标号:指令助记符 操作数 ;注释其中,指令助记符不可缺少。伪指令语句由4部分组成,格式: 名字 伪指令指示符 操作数 ;注释其中,伪指令指示符不可缺少。3、伪指令语句在汇编过程中完成某些特定的功能,没有它们,汇编程序将无法完成汇编过程。和指令语句的主要区别是它没有对应的机器码,不能让CPU执行。5、每条语句执行后的结果依次为:AL=1 BL=2 CL=4 AH=0FFH BH=4 CH=16、13、程序流程图如下:汇编程序如下:CODE SEGMENT ASSUME CS:CODESTART: CMP BL,60 ;与60分比较 J
17、B FAIL ;60,转FAIL CMP BL,85 ;60,与85分比较 JAE GOOD ;85,转GOOD MOV DL,P ;其它,将DLP JMP DISPLAY ;转显示程序FAIL: MOV DL,F ;DLF JMP DISPLAY ;转显示程序GOOD: MOV DL,G ;ALGDISPLAY: MOV AH ,02H ;显示存在DL中的字符 INT 21H MOV AX,4C00H INT 21HCODE ENDSEND START14、DATA SEGMENTTABLE DB 01H,80H,0F5H,32H,86H,90H DB 74H,49H,0AFH,25H,40
18、H,88HPLUS DB 0 ;存正数个数NEGT DB 0 ;存负数个数ZERO DB 0 ;存0的个数DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART: MOV AX, DATA MOV DS, AXMOV CX,12 ;数据总数 MOV BX,0 ;BX清0AGAIN: CMP TABLEBX,0 ;取一个数与0比 JGE GRET_EQ ;0,转GRET_EQ INC NEGT ;0,转P-INC INC ZERO ;=0,零个数加1 JMP NEXT ;往下执行P-INC: INC PLUS ;正数个数加1NEXT: INC BX
19、;数据地址指针加1 DEC CX ;数据计数器减1 JNZ AGAIN ;未完,继续统计CODE ENDSEND START21、为便于理解, 假设存放在BX(需要注意的是要先将BX中的数据送给AX)中的16位二进制数的实际值为9346, 转换后应使CX=9346H (压缩BCD数)。 BIN_BCD PROC NEAR MOV AX, BX CMP AX,9999 ;AX9999? JBE TRAN ;小于,转 JMP EXIT ;大于,转退出TRAN: SUB DX,DX ;DX初值清0 MOV CX,1000 ; CX 1000 DIV CX ;(DX,AX)/1000=9346(AX=
20、9, DX=346) XCHG AX,DX ; 交换,使DX=9, AX=346(下次除法被除数)MOV CL,4 ;第一个商9左移4次 SHL DX,CL ;DX=0090H MOV CL,100 ;CL 100 DIV CL ;346/100=346, AL=3, AH=46 ADD DL,AL ;将第2次的商加到DL中, 使DX=0093H MOV CL,4 ;DX左移4次 SHL DX,CL ;左移后DX=0930H XCHG AL,AH ;交换, AX=0346H SUB AH,AH ;AX=0046H,第2次余数做被除数 MOV CL,10 ;CL 10 DIV CL ;AX/10
21、=46, 结果AL=4,AH=6ADD DL,AL ;4加到DL上,使DX=0934H MOV CL,4 SHL DX,CL ;DX左移4次, DX=9340H ADD DL,AH ;最后一次余数加到DX上, DX=9346H MOV CX,DX ;最后结果:AX=9346HEXIT: RETBIN_BCD ENDP第五章1、内存分为随机存取存储器RAM和只读存储器ROM。RAM的特点:可随机写入和读出,访问速度快,但断电后内容会全部丢失,即具有易失性。存放在ROM中的内容不会因断电而丢失,它属于非易失性存储器,计算机只能对ROM读出不能进行写入,改写要用专门的编程器。3、静态RAM电路结构复
22、杂,集成度较低,功耗也大,但存取速度很快,访问时间可小于10ns。不适合做容量很大的内存,主要用作高速缓存(Cache),并用于网络服务器、路由器和交换机等高速网络设施上。动态RAM电路简单,但存取速度慢,电容上存储的信息会丢失,需要刷新。容量大,价格便宜,PC机上的内存都采用DRAM,而且做成内存条,便于扩充内存容量。还被用在其它需要大量存储的场合,如激光打印机、高清晰数字电视等。4、动态RAM存储单元由1个MOS管和1个小电容C构成。C充满电荷便保存了信息1,无电荷为0。电容C上保存的电荷会逐渐泄漏,使信息丢失。为此,要在DRAM使用过程中及时向保存1的那些存储单元补充电荷,也就是对C进行
23、预充电,这一过程称为DRAM的刷新(refresh)。读操作是读出电容C上的电荷转换成的0或1的逻辑电平,并非对电容C进行充电。15、8,A10A0,A19A11,416、芯片A19A16A15A13A12A0一个可用的芯片地址范围1XX10000全0全120000H21FFFH2XX10001全0全122000H23FFFH3XX10010全0全124000H25FFFH4XX10011全0全126000H27FFFH18、芯片A19A16A15A13A12A0一个可用的芯片地址范围1X001100全0全118000H19FFFH2X001101全0全11A000H1BFFFH3X00111
24、0全0全11C000H1DFFFH4X001111全0全11E000H1FFFFH第六章1、答:CPU和外设之间的信息交换存在以下一些问题:速度不匹配;信号电平不匹配;信号格式不匹配;时序不匹配。 I/O接口电路是专门为解决CPU与外设之间的不匹配、不能协调工作而设置的,处于总线和外设之间,一般应具有以下基本功能:设置数据缓冲以解决两者速度差异所带来的不协调问题;设置信号电平转换电路,如可采用MC1488、MC1489、MAX232、MZX233芯片来实现电平转换。设置信息转换逻辑,如模拟量必须经 A/D变换成数字量后,才能送到计算机去处理,而计算机送出的数字信号也必须经D/A变成模拟信号后,
25、才能驱动某些外设工作。 设置时序控制电路;提供地址译码电路。2、CPU与外设通信时,传送的信息主要包括数据信息、状态信息和控制信息。在接口电路中,这些信息分别进入不同的寄存器,通常将这些寄存器和它们的控制逻辑统称为I/O端口,CPU可对端口中的信息直接进行读写。在一般的接口电路中都要设置以下几种端口: 数据端口:用来存放外设送往CPU的数据以及CPU要输出到外设去的数据。数据端口主要起数据缓冲的作用。 状态端口:主要用来指示外设的当前状态。每种状态用1位表示,每个外设可以有几个状态位,它们可由CPU读取,以测试或检查外设的状态,决定程序的流程。 命令端口:也称为控制端口,它用来存放CPU向接口
26、发出的各种命令和控制字,以便控制接口或设备的动作。 I/O端口的编址方式有两种:分别称为存储器映象寻址方式和I/O指令寻址方式。 存储器映象寻址方式:把系统中的每个I/O端口都看作一个存储单元,并与存储单元一样统一编址,这样访问存储器的所有指令均可用来访问I/O端口,不用设置专门的I/O指令。 I/O指令寻址方式:对系统中的输入输出端口地址单独编址,构成一个I/O空间,它们不占用存储空间,而是用专门的IN指令和OUT指令来访问这种具有独立地址空间的端口。 8086/8088CPU采用I/O指令寻址方式,用地址总线的低16位(A15A0)来寻址I/O端口,最多可以访问21665536个输入或输出
27、端口。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口高,通过PA7PA0以及PC7PC4引脚与外部联络。B组:管理B口和C口低,通过PB7PB0以及PC3PC0引脚与外部联络。8、8255A具有3种基本的工
28、作方式,在对8255A进行初始化编程时,应向控制字寄存器写入方式选择控制字,用来规定8255A各端口的工作方式。这3种基本工作方式是: 方式0基本输入输出方式:适用于不需要用应答信号的简单输入输出场合。这种方式A口和B口可作为8位的端口,C口的高4位和低4位可作为两个4位的端口。 方式1选通输入输出方式:A口和B口作为数据口,均可工作于输入或输出方式。端口C的6根线用来产生或接受联络信号。 方式2双向总线I/O方式:只有A口可以工作于这种方式。端口A工作于方式2时,端口C的5位(PC3PC7)作A口的联络控制信号。9、控制字寄存器。方式选择控制字的D7位总为1,而置位/复位控制字的D7位总为0
29、。10、0F8H, 0FAH, 0FCH, 0FEH11、方式控制字 10001010B MOV AL, 10001010B OUT 86H, AL15、A口地址 80H,B口地址 81H, 控制字地址 83H。A口方式0输入,B口方式0输出。控制字:10010000BMOV DX,83H ;控制字寄存器 MOV AL,10010000B ;控制字 OUT DX,AL ;写入控制字TEST_IT: MOV DX,80H ;指向A口 IN AL,DX ;读入开关状态 NOT AL MOV DX,81H ;指向B口 OUT DX,AL ;B口控制LED CALL DELAY_20S ;调延时20s子程序 JMP TEST_IT ;延时20s再检测DELAY_20S: ;延时20s子程序第七章1、8253内部包含3个完全相同的计数器/定时器通道,即02计数通道
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1