《微机系统与接口》课程总结 基本内容 1.微机基础 (数制、系统、μP/MPU(FPU)、IA-16/32) 2.指令和用途— 系统硬件相关 3.汇编语言程序设计(伪指令-数据-程序流) 4.半导体存储器(概念、MPU接口电路 5.接口技术—数字/模拟接口及应用编程 6.IA-32原理概念
1.基本概念 (1)数制—应用: 整数/小数—小数点;不同进制的概念BIN/DEC/OCT/HEX;表示(DEC/BIN/BCD)左移/右移一位=*2 /2 10011B 23(D) 67Q 1234H 奇数:Bit0=1 偶数:Bit0=0 有符号数--计算处理(结果); 来源:.相对偏移量(Displacement)(地址);JG/JL比较(=JNLE/JNGE—JNG/JLE;JNL/JGE)(跳转,调用) CS:8100 JMP 0103 E9 00 80 ;IP+Disp 00~FF(-128~+127)----80H(-128)~FF(-1)~0(0)~7FH(127) 汇编语言伪指令-数据定义 –人工输入形式-物理存储(二进制数) DB –20H(100H-20H=E0H), –1(0FFH),-20(ECH),81H(-127) DW -20H, 100,2000H,100000000000111B0FFE0H,00C8H,..
1.基本概念--数制 补码的概念?字长的概念(溢出JO);符号位(JS) .宏汇编语言 MOV AX, -3 (AX)=? -4 八位100H-4=0FCH,16位10000H-4=0FFFCH MYDATA DW 200,-200,0FFF0H,1, -200H, 200H MAX=? Min=? 根据物理存储内容判别:两组结果 判断指令:JG(E)(Greater)/JL(E)(Less)数值比较 无符号数—正整数(0~FFH(255);0~65535(FFFFH) 判断指令:JA(bove)/JL(ow)—更多为JNC/JC:时间常数,绝对地址(指针大小) 溢出: 运算结果超出范围 CF/OF (AX)=A000H, ADD AX,7000H ADD AX,-7000H
1.基本概念--数制 编码信息 ASCII码: 00-7FH 字符(美国标准信息交换代码 ) 30H-39H ‘0’—’9’ 41H—’A’ ,42H—’B’….. 61H—’a’ ,62H—’b’….. 汉字:内码, ISO….
(2)8086/8088硬件结构 基本构成:执行单元EU+总线接口单元BIU(并行-流水线,预取-指令队列)用途执行指令/与存贮器或I/O端口之间进行数据传送,并能形成物理地址。8086物理地址(A19--A0); (16位实地址模式)通用寄存器及用途(IP,SP,段寄存器的功能--用于存放段起始地址+计算物理地址;有效地址EA的概念(偏移量地址);段基址S和偏移地址=逻辑地址;物理地址=S*16+EA FLAGS各位定义IF,TF,(CF,DF,ZF,OF/SF,AF) CLI/STI;CLD/STD;单步运行(中断) 重要信号:DEN,ALE,/WR,/RD,/IOR/W,AEN 信号有效性的一般表示 / #
(3)8086/8088工作过程 .RESET后:各寄存器的状态(0000H)启动地址FFFF0H;(CS:IP=FFFF:0H)ROM/EPROM/FLASH ROM .软硬件的关系:指令总线操作: (BUS---目标单元) 指令执行—时间=指令周期;基本时钟T=系统时钟(时钟周期, T周期) 操作运算(机器周期)其中总线操作由BIU完成(总线周期)----存储器读/写、I/O读/写(中断响应、等待Tw、空闲周期 总线周期: T 周期--地址,数据读写(与指令相关)
(3)8086/8088工作过程 总线:地址,数据,控制-传送相关内容 IO/M DT/R 区分存储器/IO:8086 A19—A0 220=1M-存储器 (00000~FFFFFH); I/O编址 64K*2 I/O (00000~FFFFH(PC:000~3FF A9-A0 ) OUT 40H,AL; IN AL,40H 100H以上需用DX间址: MOV DX,2F8H IN AL,DX OUT DX,AL 最小/最大模式 单/多处理器(标准总线)
(3)8086/8088工作过程 ----总线及其控制(三态) e.g. MOV AX,[SI] DS为默认段寄存器 产生/RD信号---总线读操作 MOV [BX+20],BX 总线写 ADD [SI+BX+100],AX 总线读,总线写 OUT DX,AL ;DX间址,产生/IOWR 总线I/O写操作 *.(AL)=55H时 MOV AL,[55AAH] / MOV [55AAH],AL存储器读写周期波形图
(4)协处理器与IA-32 8087FPU的作用(不考)--硬件浮点数计算—定点数 *80386(IA-32)与8086的主要差别(EAX, 虚地址保护模式,虚拟存储器) 80386:实地址模式分段结构 段寄存器 段基地址:计算物理地址 虚地址保护模式 段寄存器 段选择子:描述表地址,获得段基地址、段限和访问属性 高速缓存cache的作用 (命中算法)
2.指令系统 寻址方式(寻找操作数地址(位置)的方式);分清各种方式的含义 立即数/直接,寄存器,寄存器间址 寻址方式(寻找操作数地址(位置)的方式);分清各种方式的含义 立即数/直接,寄存器,寄存器间址 MOV指令,BYTE/WORD(NEAR)/DWORD(FAR)PTR---指定存储器访问方式字节/字/双字 数据:DEC BYTE/WORD PTR [SI]; MOV WORD/BYTE PTR [2000],20; CMP BYTE PTR[SI],100 MOV AX,BX, MOV DL,CL 可以PUSH ES,POP DS 但不可MOV ES,DS或MOV ES,1000 代码(指令地址): JMP FAR PTR[BX] JMP NEAR PTR[BX] =DWORD/WORD PTR JMP SHORT xxxx; JMP BX JMP 2000H JMP 2000:8000H --短/段内/段间 8位 16位偏移 20位空间 段超越ES:/CS:/FS:/DS: 指令前缀
堆栈及其工作方式SS:SP CALL/RET改变程序流 (CS) PUSH/POP堆栈内容和SP变化----先进后出(FILO) 栈底(定义256B时100H=初SP)—栈顶(LASTinLow)以字为单位操作 影响堆栈的指令 PUSH AX ;(SP)(SP-2);(SP+1)(AH);(SP)AL POP AX;(AL)(SP); (AH)(SP+1); (SP)(SP+2) CALL (FAR)/RET(F); (CS)IP入栈 RET 2n---断点 ADD SP,4 RET 4 INT n; (PUSHF,IF=TF=0;IP,CS入栈) IRET(带FLAGS) CALL/RET改变程序流 (CS)
基本指令集—操作码 目标,源操作数 MOV, LEA, PUSH, POP, PUSHF, POPF ADD, SUB, INC, DEC, CMP, MUL AND, OR, TEST, XOR ( SHL, ROL) JMP, JZ, JNZ, JC, JNC, LOOP CALL, RET, INT n, IRET CLD, STD, STI, CLI REP MOVSB(W) IN , OUT DB, DW, DD; ORG, OFFSET/ SEG, $, (WORD/BYTE/FAR/NEAR)PTR--伪指令:
3.汇编语言程序设计 -- 数据-定义 DATASAMPL SEGEMNT AT A800H (段的地址) ORG 1000H ;起始偏移量地址 变量:DB 'ABC' ;存放在1000H 41H,42H,43H DW '34',‘56’;1003H=DW 3334H, 3635H ;存放:34H,33H,36H,35H BUFFER1 DB -20 ;A800:1007H DW -120H –存储变量:FEE0H BUFFER2 DB 33,22, ;A800:100AH BUFFER3 DB 55H ;A800:100CH LENGTH1 EQU(=)BUFFER2-BUFFER1 =?
3.汇编语言程序设计 ORG 2000H ;存放在A800:2000H开始 NPT1 DW BUFFER1…;07,10H A800:2000H. NPT2 DW BUFFER2 ;0AH,10H, A800: 2002H NPT3 DW BUFFER3 ; A800:2004H FPT1 DD BUFFER1 ;2006H FPT2 DD BUFFER2 ;200AH NPTPT1 DW NPT1,NPT2,NPT3….; ;00,20H,02,20H,04,20H.. FPTPT2 DW FPT1,FPT2,FPT3,….; ;(2006H,A800H, 2008H,A800H 实际存储:06H,20H,00H,A8H,08H,20H,00,A8H,… 指针:指针变量(近2/远4)
3.汇编语言程序设计 MOV SI,OFFSET NPTPT1 MOV SI,[SI+2] ;NPT2(SI)=2002H (链表:结构 MOV SI,[SI].NEXT ) $:当前地址 ( 可移动) NEXT: JMP $ (EB FE); LENGTH1 EQU $-NEXT
3.汇编语言程序设计 分枝(比较--散转)/循环(条件) 流程框图 过程/子程序利用----目的?? 模块化:注释;结构 分枝(比较--散转)/循环(条件) 流程框图 条件转移Jcc short-label---程序流的控制; JZ/JE,JNZ/JNE,JS,JNS,JO,JP/JPE,JNP/JPO--- LOOP计数循环(CX次);条件循环(计数)JCXZ,LOOPE/Z, DEC /INC COUNTER; JCC 或CMP ---JCC JMP (NEAR)/(FAR) JMP xxxx/ JMP FAR PTR 过程/子程序利用----目的?? CALL BX; CALL 2000H; CALL 200:40A8H
3.汇编语言程序设计 INC/DEC BX/SI/DI—指针修改 (字节±1,字±2,双字±4) ADD SI/BX/DI,10 MOV SI(BX/DI),OFFSET; 初始指针 MOV CX,300;(COUNTER, COUNTER EQU 300) MOV AL/AX, [SI+2];MOV [BX+100],AL/AX(数据) MOV AL,DH , MOV AX,SI(寄存器交换) ADD AL,BH (ADD DX,SI) ADD [SI],AL SUB SI,6 AND AL,100, OR XOR TEST CMP AL,10, CMP DX,[SI] JZ/JE (JNZ) JC/JNC(无符号) JG-JNLE/JNG-JLE
3.汇编语言程序设计 --编程(例) 从数据段以DAT为首地址的字符串中寻找’A’字符(’A’=41H, 该字符串以‘$’结尾,‘$’=24H),并将它们的偏移地址依次存放于ADDR为首的存储区内,并以0结束。要求写出程序主要片断(不必用伪指令定义变量,可直接用指令性语句编写)。 DATA ADDR 12H,33H,55H,41H,41H,55H,42H.41H,…….’$’ 0003,0004H,0007H,0000 SI DI 忠实理解题意-要求-建模分析
3.汇编语言程序设计 --参考程序 MOV SI,0 MOV DI,OFFSET ADDR MYLOOP: MOV AL,[SI]DAT CMP AL,’A’ ;或CMP AL,41H JNZ NEXT ;非’A’字符 MOV [DI],SI;是’A’字符,保存偏移地址 INC DI;修改当前偏移地址存储表指针 INC DI ;占两个字节 INC SI;修改数据偏移指针,指向下一字符 JMP MYLOOP NEXT: CMP AL,’$’ JZ FINISH ;遇到串结束符’$’ INC SI JMP MYLOOP ;继续处理 FINISH: XOR AX,AX MOV [DI],AX ;00结束
3.汇编语言程序设计 --参考程序 MOV SI,OFFSET DAT 变化: 如果要求在规定的字串长度范围内(如不超过1000个),找到结束符’$’, 将单元FLAG清零,否则写入0FFH; 加条件循环语句 MOV SI,OFFSET DAT MOV DI,OFFSET ADDR MOV CX,1000 ;循环初值 MYLOOP: MOV AL,[SI] CMP AL,’A’ ;或CMP AL,41H JNZ NEXT ;非’A’字符 MOV [DI],SI;是’A’字符,保存偏移量地址 INC DI;修改当前偏移量地址存储表指针 INC DI ;占两个字节 JMP NEXT1 ;继续循环 NEXT: CMP AL,’$’ JZ FINISH ;遇到串结束符’$
3.汇编语言程序设计 --参考程序 变化: 如果要求在规定的字串长度范围内(如不超过1000个),找到结束符’$’, 将单元FLAG清零,否则写入0FFH; 加条件循环语句 NEXT1:INC SI ;修改数据指针,偏移指向下一数据 LOOP MYLOOP ;1000个数未到, 继续处理 MOV AL,0FFH ;未遇到’A’, 错误标志 JMP PEXIT ;出口 FINISH:XOR AL,AL ;MOV AL,0 MOV [DI],AL ;0结束,接着将00写入FLAG单元 PNEXT: MOV FLAG,AL ;程序出口,写FLAG标志
4.半导体存储器 分类:内外寸 RAM---SRAM;DRAM ;数据,堆栈,速度(SRAM-Cache) ROM---EPROM,EEPROM,NVRAM特点; 程序,固化数据,电子盘 关键:与处理器的接口—正确读写单元,概念,三态,使能, 选中单元:译码与译码器---逻辑关系,真值表 MOV [55AAH],AL A19-A16=? (DS)=8000H 物理地址: 855AAH A19-A0: 1000 0101010110101010 时/CS=0 (/CS=!A19&A18&A17&A16&A15&!A14&A13&!A12&A11&!A10&A9&!A8&!A7 容量计算:n根地址线 =2n个单元 A0—An-1 I/O相同: (DX)=3F8H IN AL,DX INC DX, OUT DX,AL
4.半导体存储器 2-4 3-8 4-16 译码 全译码和部分译码(线选) 常规时序(了解) 片选-片内两级译码 74LS138真值表
4.半导体存储器 存储器扩展(作业4-4) D0 D3 D0 D3 D4 D7 D4 D7 2K*4 2K*4 2K*4 2K*4 /CS A10 A0 A10 A0 A10 A0 A10 A0 单元数—地址线数关系 A11 4K*8
5.接口技术—数字/模拟接口 多种选择设计: 可选常规,易实现 74LS138译码器 输入指令IN AL,DX ;IN AL,80H 时序 /IORD- AB译码选中 输出指令OUT DX,AL; OUT 81H,AL 时序 /IOWR 译码选中 所有接口电路的译码、指令操作(读图)。简单互连, 多种选择设计: 可选常规,易实现 74LS138译码器
5.接口技术—数字/模拟接口 MPU (i8255) 简单I/O:开关电平变换连接 简单I/O指令控制:输入三态使能
5.接口技术—数字/模拟接口 (i8255) 简单I/O:LED/八段数码管的连接 简单I/O控制:输出使能/锁存
5.接口技术—数字/模拟接口 I/O三种方式: 程序I/O(查询)--三种端口数据/状态/控制及作用, 中断, DMA及各自特点 可编程接口芯片: 独立/CS, /OE, /WR 信号
5.接口技术—数字/模拟接口 并行I/O i8255: 作用,三种方式 方式0基本(直接)I/O; 方式1 选通I/O(A/B组); 方式2 双向I/O方式(PA口); 中断:方式1,2 方式0的使用:简单I/O,锁存; 应用 方式1中IBF/OBF信号的作用(输入/输出缓冲区满) 特殊:可编程并行接口芯片的PC口具有位控功能,允许CPU用输出指令单独对C口的某一位写入“1”或“0”,正确的方法是通过写8255的控制寄存器方式写入; 脉冲的产生: 位0-1-0
5.接口技术—数字/模拟接口 T/C 8253:定时器/计数器 可编程定时器/计数器为BIN/BCD计数器(减法) 计数值最大时应置时间常数(计数初值)为0(和LOOP CX相同)。 五种工作方式(数字n个脉冲--n可编程设置) 定时器与计数器的差别--CLK) CLK/GATE/OUT的含义(作用) 方式2使用(定时器---速率发生器---软硬件启动): 时间常数计算,通道定时时间的最大值计算; 基于单通道的长时间定时器的软件实现加法/减法),硬件级连的概念---定时中断--软件定时器--相关软件。 软件触发—初值 硬件触发– Gate
5.接口技术—数字/模拟接口 中断:(概念) 8259: 中断系统可处理多个中断源:应用功能 中断:内部中断/外部中断:不可屏蔽中断NMI/可屏蔽中断INTR 8259功能;中断向(矢)量(0000:000-03FFH, 中断服务程序的IP,CS)作用;中断屏蔽(初始化);中断响应;中断请求;中断优先级;中断嵌套;外部中断的随机性 例如:INT 08H对应中断向量存在00020H (0:20H)四个单元 响应后自动保存CS:IP, FLAGS, TF=0,IF=0 EOI信号 中断服务程序:现场保护,中断程序与其他程序的通信(共享内存) 软件定时器的中断实现
5.接口技术—数字/模拟接口 DMAC 直接存储器访问 8237 DMAC的作用(原理)I/O-存储器交换----AB,DB,IO/MEMR/W总线控制 实现直接存储器访问(DMA)时,总线使用通过控制信号AEN; 外设或MEM通过AEN区分MPU/DMAC之一控制BUS
5.接口技术—数字/模拟接口 ---_--_-__---- 串行接口 8250/8251 串行接口 8250/8251 在串行数据异步传送中的传输格式:起始位(1固定),数据位(5-8),奇偶校验*1),停止位(1-2位)。格式、波特率、传输字符速率的关系;RS232电平标准 溢出:寄存器被覆盖----发送(太快,没有来得及送出);接收(太慢,没有及时读取) 传输过程:(低位在前,起始位开始, 波形 ---_--_-__---- 双缓冲器:数据收发,收发移位寄存器 4800H, 8,N,1,==〉每个字符至少10位/4800S=0.0020ms (DX)=3F8H, OUT DX,AL 可能的最大延时
5.接口技术—数字/模拟接口 模拟量接口 A/D---D/A: 接口电路同简单I/O DAC锁存写/ ADC启动―读结果 多路转换开关MUX和采样保持器S/H的主要作用; V/F变换/ADC――双积分/逐次逼近 ADC0809是8位8CH逐次逼近型模数转换器。AD574A为12位单通道 Vref对转换精度的影响; 启动转换控制----同步转换 ADC/DAC)及其实现 启动/转换----读取转换结果 数字滤波----平均 精度: 相对满量程而言 分辨率:对信号灵敏度 模拟地-数字地: 相同基准,单点相连 第六章 习题4 :综合设计型
5.接口技术—数字/模拟接口 模拟量接口 A/D---D/A: 第六章 习题4 :综合设计型 ADC0809设计一个数据采集系统,采用中断方式,EOC接至8259A的IRQ2,每隔200μs采样一个数据。试完成: ⑴ 硬件设计,画出连线图(不包括8259A); ⑵ 软件设计,包括8255A、8253的初始化及中断服务程序。 难度>>考试(不要求初始化)
5.接口技术—数字/模拟接口 接口电路简单互连: (1)数据线:D15—D0 通常同名互连 硬件连线: 接口电路简单互连: (1)数据线:D15—D0 通常同名互连 (2)地址线:经译码电路产生片选信号,其中若干连至芯片/CS,/CE 74LS138 (3)控制信号线:/RD, /IORD 接/OE(输出允许)/WR, /IOWR 接/WE(写入允许,/LE,START,ALE等) 无独立片选芯片
5.接口技术—数字/模拟接口 硬件连线: 开关转换(上拉电阻)和LED驱动(限流电阻) 8255/273/244 I/O
5.接口技术—数字/模拟接口 接口应用程序片断编程: 根据指定端口地址,读取相关信息(模拟量或数字量,如为A/D应先启动转换,延时或判断EOC读取),按设计要求处理后保存到变量单元或输出。MOV DX,INPORT, IN AL,DX, MOV V1,AL, (处理)…..MOV DX,OUTPORT, OUT DX,AL 注意(想象程序片断运行的方式,初初始化芯片和单元外,一般为定时执行或中断执行,如需要记忆以前信息,一般存放在内存单元中,用于比较等,而不是寄存器中)
《微机系统与接口》 6.IA-32原理概念(非考试内容) 1.32位寄存器/地址/数据 EAX,EBX,A0-A31,D0-D31 2.80386三种工作模式 实地址模式 虚地址保护模式 虚拟8086(V86)模式 3.实地址模式下段寄存器的作用 段基地址 虚地址保护模式下段寄存器的作用:选择子(Selector),指向段描述符(参数:段基地址,段限,访问属性)
《微机系统与接口》 7.作业与试题分析 考题类型:三部分: (1)选择与填空(15小题30分) (2)阅读与编程(2~4题35分) (3)接口技术(1-2两题35分),以概念和方法为主,连接线路和工作编程。 重要作业内容:程序设计1-3例,存储器译码与扩展,8255应用题, AD/DA综合应用处理 注意理解性学习,而不是记忆性学习!
《微机系统与接口》 8.考前安排 (081622) 答疑: 6月21日 晚18:30-21:00 答疑 地点: 教2-301 答疑: 6月21日 晚18:30-21:00 答疑 地点: 教2-301 6月24日(9:30-21:00) 地点: 教2-301 6月25日上午 地点: 教2-301 第7章作业 最迟25日答疑时交 6月25日下午考试: 闭卷,不需用计算器 --所有控制字都不要背;概念要清楚
《微机系统与接口》 The END THANKS Wish a Sucessful Pass