清华大学自动化系罗予频计原作业答案三_第1页
清华大学自动化系罗予频计原作业答案三_第2页
清华大学自动化系罗予频计原作业答案三_第3页
清华大学自动化系罗予频计原作业答案三_第4页
清华大学自动化系罗予频计原作业答案三_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、57. 现有两片4110RAM组成存储器系统如下图所示。每片4110的存储容量为1K8bit,地址译码器用74LS138。试回答: (1) 第一片和和第二片4110的地址范围各是什么? (2) 若要扩展1KB存储容量,4110须要几片?请将新增加的4110芯片画在图上并连接相应的信号线。新增RAM的地址范围是什么? (3) 说明上述电路中(包括新增部分)存储器有无地址重迭现象?若有请指出重迭的范围并提出消除地址重迭的措施。 解:G11 = A19 = 0G2A1 = A18 = 0G2B1 = A17 = A16 = A15 =0A14和A10没有用到,可均设为0(1)第一片 A13A12A1

2、1 =010 地址范围(Y2):1000H-13FFH 第二片 A13A12A11 =100 地址范围(Y4):2000H -23FFH(2)新一片4110的片选若接Y3,A13A12A11 =011 地址范围是:1800H-1BFFH 片选若接Y6, A13A12A11 =110 地址范围是:3000H-33FFH片选若接Y0,A13A12A11 =000地址范围是:0000H-03FFH 片选若接Y1, A13A12A11 =001 地址范围是:0800H-0BFFH片选若接Y5,A13A12A11 =101地址范围是:2800H-2BFFH 片选若接Y7, A13A12A11 =111

3、地址范围是:3800H-3BFFH(3)由于地址信号A14和A10未参加地址译码,故每个译码输出端重叠4个地址范围。除(1)列出的基本地址(A14A10=00)外,还各有三个地址范围如下:A14A10=01A14A10=10A14A10=11Y2 1400H-17FFH5000H53FFH5400H57FFHY3 1C00H1FFFH 5800H5BFFH5C00H5FFFHY4 2400H27FFH6000H63FFH6400H67FFHY6 3400H37FFH7000H73FFH7400H77FFH 消除地址重叠的方法是让地址信号A14和A10也参加地址译码,例如: A14、A10和A1

4、7、A16、A15一起纳入负与门(5输入端)译码;或A14、A10和A18一起纳入负与门(3输入端)译码。58. 试分析下图中存储器芯片6116的存储容量及在系统中的地址范围。解:6116的地址容量是2K(11根地址线)B。 其地址范围有相互重叠的两个区域:A0000HA07FFH或A0800HA0FFFH。63. PC/XT中接口地址译码电路如图所示: (1) 列表说明各译码输出端有效时对应地址信号90的取值,并用十六进制写出地址范围。 (2) 说明译码器输入信号AEN的名称及在此处的作用。 (3) 说明信号和在此处的作用。 解:1)译码电路中,A9A8A7A6A5A4A3A2A1A0=10

5、,1111,0XXXB。因此Y0Y7对应的地址范围分别是:2F0H2F1H.2F7H2)AEN信号在此使译码电路在DMA时不工作,仅在CPU执行指令时工作。3)IOR、IOW在此使译码电路在执行存储器读写时不工作,仅在执行I/O指令时工作。64. 8086/8088响应中断后要获得中断类型号。举例说明不同的中断类型产生中断类型号的方法有哪几种? 解:不同的中断类型产生中断类型号的方法有三种:1) CPU在执行指令过程中自动产生中断类型号,例如执行除法指令过程中,若发生除以零中断,则自动产生类型号为0的中断,即INT 0。又如发生NMI时,自动产生类型号为2的中断,即INT 2。2) CPU在执

6、行指令过程中从指令机器码中获得中断类型号。写在源程序中的所有INT n指令都属于这种情况。3) 由外部可屏蔽中断源引发的硬中断由中断管理电路8259A在中断响应时提供中断类型号,如系统时钟中断、键盘中断、硬软磁盘中断等。36 .两个4位压缩的BCD数,存放在存储器中的地址为ALPHA和BETA,编写程序求两个数的和,结果存入ALPHA单元。 解:DATA SEGMENT ALPHA DB 34H, 12H ;压缩的BCD数1字节表示2位,4位应占1个字。用DW的可读性更好,但后面只能用字节加。BETA DB 52H, 46HDATA ENDSSTACK SEGMENT STACK DB 100

7、 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACKSTART: MOV AX, DATA MOV DS, AX MOV SI, 0 MOV CX, 2CLCLOOPER: MOV AL, ALPHA SIADC AL, BETA SIDAAMOV ALPHA SI, ALINC SIDEC CX ;也可以和下面可以合起来改成LOOP LOOPERJNZ LOOPERCODE ENDSEND START39. 比较AX,BX,CX中带符号补码数的大小,将其最大者放在AX中,试编写此程序。 解:DATA SEGMENT D

8、ATA1 DW 4142HDATA2 DW 8107HDATA3 DW 0A123HMAX DW ?DATA ENDSSTACK SEGMENT STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACKSTART: MOV AX, DATA MOV DS, AXMOV AX, DATA1MOV BX, DATA2MOV CX, DATA3法 一:MOV MAX, AXCMP BX, MAXJG GREAT1NEXT: CMP CX, MAX JG GREAT2 JLE GOONGREAT1: MOV

9、MAX, BX JMP NEXTGREAT2: MOV MAX, CXGOON: MOV AX, MAX法 二:更好,不仅少占用资源,而且快 CMP AX,BX JGE NEXT1 XCHG AX,BXNEXT1: CMP AX, CX JGE NEXT2 XCHG AX,CXNEXT2: MOV MAX, AXCODE ENDSEND START40. 编写程序,将BLOCK中的100个字节数据的位置颠倒过来(即第1个字节和第100个字节的内容互换,第2个字节和第99个字节的内容互换,)。 解: MOV CX, 50 ;循环次数 LEA SI, BLOCKMOV AX, SIADD AX,

10、99MOV DI, AXTOP: MOV AL, SI ;也可以取一个到AL后和内存XCHG MOV BL, DI MOV DI, AL MOV SI, BLINC SIDEC DILOOP TOP 41. 编写程序,求AX寄存器中有多少个“1”,并将其个数存入CL寄存器中。 解: XOR BL, BLMOV CX, 16COUNT: SHL AX, 1 JNC GOONNEXT: INC BLGOON: LOOP COUNT ;事实上,某次移位后AX0就可以退出了MOV CL,BL 48. 编写程序,把三个连续存放的单字节带符号整数,按递增次序重新存放在原来的三个存储单元中。 解:最直接的做

11、法:DATA SEGMENT DATA1 DB 12H DATA2 DB 56HDATA3 DB ?DATA ENDSSTACK SEGMENT STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACKSTART: MOV AX, DATA MOV DS, AXMOV AL, DATA1MOV BL, DATA2MOV CL, DATA3CMP AL,BL JGE NEXT1 ;带符号数用JG,若用JA就错了 XCHG AL,BLNEXT1: CMP AL, CL JGE NEXT2 XCHG AL,

12、CLNEXT2: CMP BL, CLJGE NEXT3XCHG BL, CL; 至此AL BL CLNEXT3: MOV DATA1, CL; 按递增顺序存储MOV DATA2, BLMOV DATA3, ALCODE ENDSEND START附其他解法如下:DATA SEGMENT DATDB5,-7,100DATA ENDSSTACK1 SEGMENT STACK DB 100H DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START: MOVAX,DATAMOVDS,AXLEASI,DATMOVCX,2L

13、1:MOVAL,SICMPAL,SI+1JNGL2XCHGAL,SI+1MOVSI,ALL2:INCSILOOPL1MOVAH,4CHINT21HCODE ENDS END START;此程序做完,只能保证最大的一个排在最后面,但若原来的第二、第三个发生过交换,则第一个和第三个还没比较过。所以应该再作一次新的第一、第二个之间的比较。程序修改如下。START: MOVAX,DATAMOVDS,AXLEASI,DATMOVCX,2L1:MOVAL,SICMPAL,SI+1JNGL2XCHGAL,SI+1MOVSI,ALL2:INCSILOOPL1MOVAL,DTA :比较新的一、二元素CMPAL,

14、DTA1JNGDONEXCHGAL, DTA1MOVDTA,ALDONE:MOVAH,4CHINT21H;此程序可以改成一个二重循环如下。这样还可以适应更多个数的排序:DATA SEGMENT DT1DB07FH, 56H, 80HDATA ENDSSTACKSEGMENT STACKDB100 DUP(?)STACKENDSCODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVCH,2 LP1:MOVCL,CHLEASI,DT1 LP2:MOVAL,SIINCSICMPAL,SIJNGNEXT1 XCHGA

15、L,SIMOVSI-1,ALNEXT1:DECCL ;内循环控制JNZLP2DECCH ;外循环控制JNZLP1DONE:MOVAH,4CHINT21HCODE ENDSENDSTART67. 设PC/XT存储器低地址区一段内容如下: 地址(H):0: 20,21,22,23,24,25,26,27,28,29,2A,2B 内容(H): 3C,00,86,0E,45,00,86,0E,57,00,86,0E (1) 在CS=2000H,IP=0010H,SS=1000H,SP=0100H,FLAGS=0240H时,执行INT8H指令后: 程序转向何处执行?(用物理地址回答)_ SP=_;栈顶六

16、单元的内容分别是:( : )=_; ( : )=_; ( : )=_;( : )=_; ( : )=_; ( : )=_;(2) 若用户要使用系统的IRQ2,其中断服务程序入口地址为2000:0100H,如何安装中断矢量(包括保护原矢量)。解:(1) 因为执行指令INT 8 ,中断矢量的地址为4X8=32D=20H,中断矢量的内容(即中断服务程序入口地址)为0E86H:003CH=E89CH。 SP=100H 6=0FAH; 栈顶六单元的内容分别是:(1000H:FAH)=12H ; (1000H:FBH)=00H;(1000H:FCH)=00H ;(1000H:FDH)=20H ;(1000H:FEH)=40H ;(1000H:FFH)=02H ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论