六、八、九章习题答案_第1页
六、八、九章习题答案_第2页
六、八、九章习题答案_第3页
六、八、九章习题答案_第4页
六、八、九章习题答案_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1、Chapter6习题解答某计算机系统有8个I/O接口芯片,每个接口芯片占用8个端口地址。若起始地址为9000H, 8个接口芯片的地址连续分布,用74LS138作为译码器,试画出端口译码电路图,并说明每个芯片的端口地址范围。接口编力A15A6A5A4A3A2A0地址空间1000000001119000H9007H20010001119008H900FH30100001119010H9017H40110001119018H901FH51000001119020H9027H61010001119028H902FH71100001119030H9037H81110001119038H903FHCPU与

2、I/O设备之间的数据传送有哪几种方式每种工作方式的特点是什么各适用于什么场合无条件控制(同步控制):特点:方式简单,CPU随时可无条件读/写数据,无法保证数据总是有效,适用面窄。适用于外设数据变化缓慢,操作时间固定,可以被认为始终处于就绪 状态。条件控制(查询控制):特点:CPUi动,外设被动,执行I/O操作时CPU总要先查询外 设状态;若传输条件不满足时,CPUI?待直到条件满足。解决了CPU外设间的同步问题,可靠性高,但CPUIJ用率低,低优先级外设可能无法及时得到响应。适用于CPU不太忙,传送速度不高的场合。中断方式: 特点: CPU 在执行现行程序时为处理一些紧急发出的情况,暂时停止当

3、前程序,转而对该紧急事件进行处理,并在处理完后返回正常程序。CPUIJ用率高,外设具有申请CPU中断的主动权,可以实现实时故障处理,实时响应外设的处理,但中断服务需要保护 断点(占用存储空间,降低速度)。适用于CPU的任务较忙,传送速度要求不高的场合,尤 其适用实时控制中紧急事件的处理。DMm制: 特点:数据不通过 CPU而由DMACt接完成存储单元或 I/O端口之间的数据传送。 接口电路复杂, 硬件开销大, 大批量数据传送速度极快。 适用于存储器与存储器之间,存储器与外设之间的大批量数据传送的场合。通道方式:特点:以程序方式进行I/O管理,可直接访问主存储器,不需CPUT预,可通过通道程序实

4、现除数据传输外的其他操作。常用的中断优先级的管理方式有哪几种分别有哪些优缺点软件查询:方法简单,实现起来较容易,效率低。硬件排序:占用硬件资源,效率较高。中断控制芯片:成本较高,效率很高。在微机与外设的几种输入/输出方式中,便于 CPU理随机事件和提高工作效率的I/O方式是哪一种数据传输速率最快的是哪一种便于CPUM理随机事件和提高工作效率的是中断方式,数据传输速率最快的是 DMA制方式。Chapter8 习题解答指出下列指令操作数的寻址方式。1) MOVE R1, R2 寄存器直接寻址2) SUBS R0 , R0, #2 立即寻址寄存器间接寻址基址变址寻址LR 多寄存器直接寻址3) SWP

5、 R1 , R1, R24) STR R1 , R0 , #-4!5) LDMFD SP! , R1R46) ANDS R0 , R0, R1, LSL R2 寄存器移位寻址7) STMIA R1!, R2R5 , R8 多寄存器直接寻址8) BL AGAIN 相对寻址8. 3 ARM指令中的第二操作数有哪几种表示形式举例说明。第二源操作数有三类表示形式,分别是:1) 立即数方式(#imm) #imm 是一个无符号的 32 位数值变量,例如 0x1042)寄存器方式(Rm) Rm是存储第二源操作数的寄存器,例如 R3表示R3寄存器3)寄存器移位方式(Shifter_operand )例如R3,

6、 ASR#2表示R3地址右移2后寄存器中的值判断下列指令的正误,并说明理由。1) ADD R1 , R2, #4! 错误, #4 是立即数寻址, 不是寄存器寻址,所以不能使用来对寄存器值更新。2) LDMFD R13! , R2, R4 正确3) LDRR1, R3! 错误,这是零偏移形式,无需使用“! ”4) MVN R5, #0x2F100正确5) SBC R15, R6, LSR R4 错误,没有指明对那个地址进行移位(LSR)6) MUL R2, R2, R5 正确7) MSR CPSR,#0x001 正确8) LDRBPC,R3 正确8 5 对下列各指令组写出运算指令执行的条件。1)

7、 CMPR0, R1ADDHI R1, R1, #1 HI :如果R0中的无符号数R1中的无符号数则执行 ADD指令。2) CMP R1, R2SUBMI R2, R2, #0x08 MI:表示如果R1寄存器中的值小于 R2寄存器中的值, 则 执行SUB指令。指出MOV旨令与LDR加载指令的区别及用途。ARhM RISC结构,数据从内存到CPU间的移动只能通过L/S指令来完成, 也就是LDR/STR旨令。比如想把数据从内存中某处读取到寄存器中,只能使用 ldr比如:LDR R0, 0x就是把0x这个地址中的值存放到R0中。而MOVT能这中¥用,MOW能在寄 存器之间移动数据,或者把立

8、即数移动到寄存器中,这个是和 x86这种CISC架 构的芯片区别最大的地方。x86中没有LDR这种指令,因为x86的MOV旨令可以 将数据从内存中移动到寄存器中。写一段代码判断 R1的值是否大于0x30 ,是则将R1减去0x30.CMP R1,0x30SUBGT R1 , R1,0x30ARM处理器中支持哪几种堆栈 画出每种堆栈操作的示意图。ARMt持的四种堆栈类型:1 .满递增(FA):堆栈向上增长,堆栈指针指向内含有效数据项的最高地址。存储器地址0xA00000040xA00000080xA000000C0xA00000100xA00000142 .空递增(EA):堆栈向上增长,堆栈指针指

9、向堆栈上的第一个空位置。存储器地址0xA00000040xA00000080xA000000C0xA00000100xA0000014指针3 .满递减(FD :堆栈向下增长,堆栈指针指向内含有效数据项的最低地址。存储器地址0XA00000040XA00000080XA000000C0XA00000104.0XA0000014空递减(EDD :堆栈向下增长,堆栈指针向堆栈下的第一个空位置。存储器地址0XA00000040XA00000080XA000000C0XA00000100XA0000014Chapter9习题解答编写一个程序段,当寄存器 r3中数据大于r2中的数据时,将r2中的数据加10

10、存入寄存器r3;否则将r2中的数据加100存入寄存器r3 ,并把这个程序段定义成一个代码段。AREA ADDITION, CODE READONLYENTRYLoopCMP R3 , R2BHI GREATERADD R3 , R2 , #100B STOPGREATERADD R3 , R2 , #10STOPEND试编写一个循环程序,实现从0 开始 10 个偶数的累加。AREA FoudCOD,E READONLYENTRYMOVR0, #0;存放累加和MOVR1, #0MOV R2,#9累加次数LoopADDR1,R1,#2ADDR0,R0,R1SUBR2,R1,#1;调整累加次数BNE

11、LoopStopEND阅读程序,说明如下程序完成的功能。llsearchCMP R0, #0LDRNEB R2, R0CMPNE R1, R2LDRNE R0, R0, #4BNE llsearchMOV PC, LR若R0w 0,则将R0指向的字节数据读入 R2;若R0W 0且R1W R2,则将R0+4指向的双字数据存入 R0中;循环,直至R0=R2退出子程序。阅读程序,说明如下程序完成的功能。strcmpLDRB R2, R0, #1LDRB R3, R1, #1CMP R2, #0CMPNE R3, #0BEQ returnCMP R2, R3BEQ strcmpreturnSUB R0

12、, R2, R3MOV PC, LRR0指向数据串S1 (的前一个字节单元),R1指向数据串S2 (的前一个字节单元);依次比较字符串S1、 S2 中的字符,直至任一字符串结束;将S1,S2第一个不同字符(或最后一个字符)的差存入R0并返回;阅读程序,说明如下程序完成的功能。CMP R0, #maxindexLDRLO PC, PC, R0, LSL #2B IndexOutOfRangeDCD Handler0DCD Handler1DCD Handler2DCD Handler3 实现子程序散转:若R0在有效范围内(小于 #maxindex)则跳转到HanderO3所指的子程序之一。阅读程

13、序,说明如下程序完成的功能。loopLDMIA R12!, (R0-R11)STMIA R13!, (R0-R11)CMP R12, R14BLO loop将 R12 开始向大地址方向所指的 12 个数据压入向上生成的堆栈( R13 开始向大地址方向所指的 12 个单元)中;比较R12和R14的值,若R12小于R14则循环,否则退出程序;分别编写一个主程序和子程序,实现主程序对子程序的调用。要求子程序完成两个数的加法运算功能;主程序完成对变量的初始化赋值后调用子程序,实现两个数的加法运算。按照如下两种方式来完成程序设计。(1)主程序采用C语言程序,子程序采用汇编语言程序设计;(2)主程序采用汇编语言程序,子程序采用C语言程序设计。(1)extern int myadd(int a , int b)int main() i nt a=1,b

温馨提示

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

评论

0/150

提交评论