1 / 28

微机原理与应用 习题课

微机原理与应用 习题课. 2009.11. 5. 运算器. 输出设备. 输入设备. 存储器. 控制器. 计算机组成结构. 第一章 概述 计算机的组成 - 冯 · 诺依曼结构. 微处理器 :进行算数 运算和逻辑运算。. 微型计算机硬件系统组成. 存储器 :存储程序、 数据、符号等. I/O 接口 :使外设 与微机相连。. 思考:. 计算机 由哪几部分组成? 微处理器、微型计算机和微型计算机系统三者之间有什么不同?. 暂存数据和结果. 分析和 执行指令. 控制单元. 工作寄存器组. 算术和 逻辑运算. I/O 控制逻辑.

alexis-chen
Download Presentation

微机原理与应用 习题课

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 微机原理与应用习题课 • 2009.11. 5

  2. 运算器 输出设备 输入设备 存储器 控制器 计算机组成结构 第一章 概述计算机的组成-冯·诺依曼结构

  3. 微处理器:进行算数 运算和逻辑运算。 • 微型计算机硬件系统组成 存储器:存储程序、 数据、符号等 I/O接口:使外设 与微机相连。

  4. 思考: 计算机由哪几部分组成? 微处理器、微型计算机和微型计算机系统三者之间有什么不同?

  5. 暂存数据和结果 分析和 执行指令 控制单元 工作寄存器组 算术和 逻辑运算 I/O控制逻辑 ALU CPU结构

  6. CPU功能: 可以进行算数与逻辑运算 可以保存少量数据 能对指令进行译码并执行指令 能与存储器、外设交换信息 提供系统所需的定时和控制 可响应其它部件发来的中断请求

  7. 思考: CPU在内部结构上由哪几部分组成?CPU应具备什么功能? 累加器和其他通用寄存器相比有何不同?

  8. 第二章 8086/8088处理器

  9. 2.2.1 Intel 8086微处理器结构:8086的内部结构 Intel 8086微处理器结构(重点) • 8086的内部结构-成两部分: • 总线接口部件BIU: • 总线接口单元BIU,负责控制存贮器读写。 • 执行部件EU: • 执行单元EU从指令队列中取出指令并执行。 • 特点: • BIU与EU两个单元相互独立,分别完成各自操作,还可以并行执行,实现指令预取(指令读取和执行的流水线操作)取指令和执行指令分开进行,提高了速度。

  10. 8086的指令执行过程

  11. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF 2.2.1 Intel 8086微处理器结构:执行部件EU • 16位标志寄存器 • 标志(Flag)用于反映指令执行结果 • 16位字利用了9位 • 标志分两类: • 状态标志(6位):反映刚刚完成的操作结果情况。 • 控制标志(3位):在某些指令操作中起控制作用。 程序设计需要利用标志的状态!

  12. 思考: • 8086的总线接口部件有那几部分组成? • 8086的执行部件有什么功能?由那几部分组成? • 8086/8088内部有哪些通用寄存器?

  13. 2.2.1 Intel 8086微处理器结构:存储器的分段管理 • 8086CPU有20条地址线 • 最大可寻址空间为220=1MB • 物理地址范围从00000H~FFFFFH • 8086CPU将1MB空间分成许多逻辑段(Segment) • 每个段最大限制为64KB • 段地址的低4位为0000B • 这样,一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址

  14. 2.2.1 Intel 8086微处理器结构:存储器的分段管理 • 8086CPU存储系统中,对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000H ~ FFFFFH • 分段后在用户编程时,采用逻辑地址,形式为 段基地址:段内偏移地址 分隔符 物理地址 14700H 逻辑地址 1460H:100H

  15. 2.2.1 Intel 8086微处理器结构:存储器的逻辑地址 • 一个物理地址可以有多个逻辑地址 • 将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址 • 物理地址 = 16d×段地址+偏移地址 例5:逻辑地址1460:0100H 物理地址 14700H

  16. 思考: • 8086CPU最大可寻址空间为多少? • 存储器的物理地址是唯一的,用逻辑地址表示一个物理地址,逻辑地址是唯一的吗? • 存储器的逻辑地址由哪几部分组成?存储器的物理地址是怎样形成的? • 一个段最大寻址空间为多少?

  17. 2.2.1 Intel 8086微处理器结构:如何分配各个逻辑段 存储器分段小节: • 程序的指令序列必须安排在代码段 • 程序使用的堆栈一定在堆栈段 • 程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段 • 数据的存放比较灵活,实际上可以存放在任何一种逻辑段中

  18. 思考: • 代码段地址由CPU的哪两个寄存器确定? • 堆栈段地址由CPU的哪两个寄存器确定?

  19. 第3章 8086指令系统 • 了解微处理器基本结构、8088/8086的功能结构 • 掌握8088/8086的寄存器结构、存储器结构和寻址方式 • 熟悉汇编语言的语句格式,掌握8088/8086基本指令: 数据传送:MOV/XCHG/XLAT、PUSH/POP、LEA 加减运算:ADD/SUB、ADC/SBB、CMP、INC/DEC AAA/DAA、AAS/DAS 位 操 作:AND/OR/XOR/NOT/TEST、SHL/SHR/SAR、 ROL/ROR/RCL/RCR 串 操 作:MOVSB、CMPSB、SCASB 控制转移:JMP、JZ/JNZ、JC/JNC、JA/JNA、JB/JNB、JG/JL、 LOOP、 CALL/RET、INT n

  20. 例1、请指出下列指令源操作数是什么寻址方式?例1、请指出下列指令源操作数是什么寻址方式? (l) MOV CL ,20H (2) MOV [BP][DI],CX (3) LEA BX ,20H[BX][SI] 2、解释下列指令的含义: (1) MOV BX, BUFFER LEA BX, BUFFER ;MOV BX, OFFSET BUFFER (2) LEA AX, [2344H] LDS DI, [2344H] 假设:DS=1000H,(12344H)=082CH, (12346H)=6F78H 执行上面两条指令后,AX=2344H DS=6F78H DI=082CH

  21. 例3、下面这些指令哪些是正确的?哪些是错误的?如是错误的,请说明原因。例3、下面这些指令哪些是正确的?哪些是错误的?如是错误的,请说明原因。 1) MOV DS,AX (  ) 2) MOV [BX],[1000] (  ) 3) PUSH CS (  ) 4) POP CS (  ) 5) MOV 1000H,AX (  ) 6) MOV AX,BL (  ) 7) OUT 20H,AL (  )

  22. 例4: 89+75=164 MOV AL,89H MOV BL,75H ADD AL,BL ;(AL)=0FEH,AF=0,CF=0 DAA ;(AL)=64H,AF=1,CF=1 例5:假定DH=10111001B,CF=1,试确定下列各条指令单独执行后DH的值。 (1)SHL DH,1 ;DH=01110010,CF=1 (2)SAR DH,1 ;DH=11011100,CF=1 (3)ROL DH,1 ;DH=01110011,CF=1

  23. 第4章 汇编语言程序设计 • 熟悉常见程序设计问题 • 多精度运算 • 查表(查代码、特定值等) • ASCII和BCD代码转换;数据范围判断(0~9、A~Z、a~z) • 字母大小写转换 • 字符串传送、比较等操作 • 求最小最大值 • 数据求和 • 统计字符个数

  24. 伪指令 • OFFSET • SEG/ORG • DB/DW/DD • PTR • SEGMENT/ENDS/END/ASSUME • FAR/NEAR 例: BUF DB 12H,56H,78H N EQU $-BUF;N=0003H MOV BX,OFFSET BUF;(BX)=0000H MOV AL,BUF+1;(AL)=56H MOV DX,WORD PTR [BX];(DX)=5612H

  25. 例1:将DAT1开始的10个字节传送到DAT2开始单元。 MOV SI,OFFSET DAT1 ;SI指向源串地址 MOV DI,OFFSET DAT2 ;DI指向源串地址 MOV CX,10 ;置计数器 CLD ;清方向标志 REP MOVSB ;将源地址的10个字传送到目的地址单元 例2:假设将1000H:2000H开始的10个数据传送到1000H:2005H开始单元,编程。 MOV SI,2000H MOV DI,2005H ADD SI,10-1 ADD DI,10-1 MOV CX,10 STD REP MOVSB

  26. 例3.从地址为BLOCK开始单元,存放100个字节的字符串,找出第一个字符 $ (ASCII码24H),将$的第一个地址存入BX中,否则将BX清零. LEA DI, BLOCK ;送目标串首地址 MOV CX, 100 CLD ;清方向标志 MOV AL, ‘$’ REPNZ SCANB ;AL - [DI] JZ FOUND ;找到$,转 MOV BX,0 JMP STOP FOUND: DEC DI ;退回到$所在地址 MOV BX,DI ;$所在地址送BX STOP: HLT

  27. 例4: 求和Y=A1 + A2 + …. + A100 Ai是字变量。 设CX: 计数器,循环次数 BX: 数据指针DX, AX: 存和 XOR AX, AX ;清AX MOV BX, OFFSET TABLE MOV CX, 100 CLC LP: ADD AX, [BX] ;求和 JNC DON INC DX CLC DON: INC BX INC BX ; 指向下一个数 LOOP LP ;未加完,继续 MOV YAL,AX ;存和 MOV YAH,DX

More Related