微机原理基本概念复习_第1页
微机原理基本概念复习_第2页
微机原理基本概念复习_第3页
微机原理基本概念复习_第4页
微机原理基本概念复习_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、 字节,字概念,1字节=8位,2、 字长概念:传微处理器一次送二进制数据的位数(总线宽度)。3、 地址空间概念:16根地址线64K,20根地址线1M空间4、 进制间的转换:将十进制数25.5转换为二级制数5、 数值数据的表示:有符号数:补码,n位补码的范围无符号数: FFFFH=655356、 BCD码: 789的压缩BCD码789H7、 ASCII码:789的ASC码373839H8、 求补运算概念9、 8086CPU从功能上来说分成两大部分:总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit)总线接口部件由下列4部分组成: 4个段地址寄存器(CS、DS、 ES、SS) 16位的指令指针寄存器 IP(Instruction Pointer) 20位的地址加法器10 辑段概念8086 CPU 的内部结构是16位的,即所有的寄存器都是16位的,而外部寻址空间为1M,需要20位地址线。 为了能寻址1M空间。8086把1M字节空间划分成若干个逻辑段。11 逻辑地址概念2000H:5F62H,则其对应的物理地址:25F62H12堆栈指针:SP与段寄存器SS一起确定在堆栈操作时,堆栈在内存中的位置。SS和SP的初始值决定了堆栈区的大小13 状态标志的意义:即SF、ZF、PF、CF、AF和OF 14 8086引脚:MN/MX、AD15 AD0地址/数据分时复用引脚NMI(Non-Maskable Interrupt)不可屏蔽中断请求,输入、上升沿有效、INTR(Interrupt Request)可屏蔽中断请求,输入、高电平有效,有效时,表示请求设备向CPU申请可屏蔽中断,该中断请求是否响应受控于IF(中断允许标志)、可以被屏蔽掉INTARESET(复位)复位请求,输入、高电平有效,复位后CSFFFFH、IP0000H, 所以自启动程序入口在物理地址FFFF0HINTA(Interrupt Acknowledge)可屏蔽中断响应,输出、低电平有效,有效时,表示来自INTR引脚的中断请求已被CPU响应,CPU进入中断响应周期。ALE(Address Latch Enable)地址锁存允许,输出、三态、高电平有效,脚高有效时,表示复用引脚:AD15 AD0和A19/S6 A16/S3正在传送地址信息,由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用ALE引脚将地址锁存起来M/IO(Input and Output/Memory) I/O或存储器访问,输出、三态,该引脚输出高电平时,表示CPU将访问存储器,这时地址总线A19 A0提供20位存储器地址,该引脚输出低电平时,表示CPU将访问I/O端口,这时地址总线A15 A0提供16位I/O口地址15 多字节数据存放方式: 图中0002H“字”单元的内容为:0002H = 1234H0002H号“双字”单元的内容为:0002H = 78561234H 16 物理地址和逻辑地址的转换例2.1 设代码段寄存器CS的内容为1000H,指令指针寄存器IP的内容为2500H,即CS1000H,IP2500H,则访问代码段存储单元的物理地址为:17 指令周期:是指一条指令经取指、译码、读写操作数到执行完成的过程。若干总线周期组成一个指令周期18 总线周期是指CPU通过总线操作与外部(存储器或I/O端口)进行一次数据交换的过程8086的基本总线周期需要4个时钟周期,4个时钟周期编号为T1、T2、T3和T4总线周期中的时钟周期也被称作“T状态” ,时钟周期的时间长度就是时钟频率的倒数当需要延长总线周期时插入等待状态Tw,CPU进行内部操作,没有对外操作时,其引脚就处于空闲状态Ti 8086如果工作频率1MHZ,1个基本总线周期需要多长时间。19 指令代码由操作码和操作数两部分组成寻址方式:立即数寻址MOV AX,14寄存器寻址:MOV DS,AX直接寻址:MOV AX, 2000H,MOV BX, BUFFER寄存器间接寻址MOV AX, BX寄存器相对寻址MOV AX, SI+06H基址变址寻址方式MOV AX, BX+SI相对基址变址MOV AX, BX+DI+6隐含寻址 MUL BL;(AL)(BL)AX隐含了被乘数AL和乘积AX20 存储器寻址方式中的变量 WVAR DW 1234H;定义16位变量WVAR,具有初值1234H21注意点 1. 区别立即数寻址和直接寻址MOV AX,126MOV AX,1262区别寄存器寻址和寄存器间接寻址 MOV AX,BXMOV AX,BX3双操作数指令中,不能同为存储器操作数。4CS不能为目的寄存器。 最基本的传送指令(MOV) 堆栈指令(PUSH,POP) 数据交换指令(XCHG) 换码指令XLAT非法指令的主要现象: 两个操作数的类型不一致 无法确定是字节量还是字量操作 两个操作数都是存储器 MOV2000H,3000H 立即数直接送段寄存器 MOV DS, 3000H 目标操作数用立即数方式 MOV 2000H, AL 两个操作数都是段寄存器MOV DS, ES 在绝大多数双操作数指令中,目的操作数和源操作数必须具有一致的数据类型,或者同为字量,或者同为字节量,否则为非法指令两个操作数类型不一致MOV AL, 050AH;非法指令,修正:;mov ax,050ahMOV SI, DL;非法指令,修正:;mov dh,0;mov si,dx 当无法通过任一个操作数确定是操作类型时,需要利用汇编语言的操作符显式指明MOV BX+SI, 255;非法指令,修正:;mov byte ptr bx+si,255;byte ptr 说明是字节操作;mov word ptr bx+si,255;word ptr 说明是字操作 8086/8088指令系统除串操作指令外,不允许两个操作数都是存储单元(存储器操作数)MOV buf2, buf1;非法指令,修正:;假设buf2和buf1是两个字变量;mov ax,buf1;mov buf2,ax;假设buf2和buf1是两个字节变量;mov al,buf1;mov buf2,al 8086指令系统中,能直接对段寄存器操作的指令只有MOV等个别传送指令,并且不灵活MOV DS, ES;非法指令,修正:;mov ax,es;mov ds,axMOV DS, 100H;非法指令,修正:;mov ax,100h;mov ds,ax MOV CS, SI;非法指令;指令存在,但不能执行例3-13 把BLOCK1地址开始的10个字节数据传送到BLOCK2地址开始的10个字节单元处。MOV CX,10MOV SI,OFFSET BLOCK1MOV DI,OFFSET BLOCK2NEXT: MOV AL,SI MOV DI,AL INC SI INC DI DEC CX JNZ NEXT HLT 进栈指令先使堆栈指针SP减2,然后把一个字操作数存入堆栈顶部用堆栈交换AX与CX的值。pushaxpushcxpopaxpopcx交换指令XCHG( xchg al,byte ptr wvar+1;ax=5599h,wvar=6611h;“byte ptr wvar+1”强制为字节量,只取高字节与AL类型交换,否则数据类型不匹配 例3-18 内存的数据段有一张09的平方表,首地址为TABLE,如图所示,用换码指令实现求数字4的平方。MOV BX,OFFSET TABLEMOV AL,4XLAT加法指令2、减法指令3、乘法指令4、除法指令 加法指令:ADD, ADC和INC 减法指令:SUB, SBB, DEC, NEG和CMP 他们分别执行字或字节的加法和减法运算,除INC和DEC不影响CF标志外,其他按定义影响全部状态标志位例3-32 在数据段从BLOCK开始的存储单元中存放了两个8位无符号数,试比较它们的大小,将较大者传送到MAX单元。LEA BX,BLOCKMOV AL,BXINC BXCMP AL,BXJNC DONEMOV AL,BXDONE:MOV MAX,ALHLT逻辑指令AND、OR、XOR和TEST屏蔽AL寄存器的低四位。 MOV AL,0FF H 1 1 1 1 1 1 1 1 AND AL ,0F0 H 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 例3:使某数的第4、5位置1。 MOV AL,03H 0 0 0 0 0 0 1 1 OR AL,30H 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1例3-47 判断DATA单元的数据是否为0。MOV AX,DATAOR AX,AXJZ ZERO ZERO: .例4:使某数的D1、D0位取反,其它位不变。 MOV AL,11H 0 0 0 1 0 0 0 1 XOR AL,03H 0 0 0 0 0 0 1 1= 0 0 0 1 0 0 1 0 AND与TEST指令的关系,同SUB与CMP指令的关系一样例7:检测AL中的最低位是否为1,若为1则转移。 MOV AL,data 0 1 0 0 0 0 0 1 TEST AL,01H 0 0 0 0 0 0 0 1 JNZ Next 0 0 0 0 0 0 0 1 Next: MOV BL,0 TEST 通常用于检测一些条件是否满足,但又不希望改变原来操作数的情况,该指令后通常带有条件转移指令。 移位指令:移位指令的第一个操作数是指定的被移位的操作数,可以是寄存器或存储单元;后一个操作数表示移位位数: 该操作数为1,表示移动一位 该操作数为CL,CL寄存器值表示移位位数 (移位位数大于1只能CL表示)SAL SHL SAR SHR 循环移位指令类似移位指令,但要将从一端移出的位返回到另一端形成循环。分为:ROL reg/mem,1/CL;不带进位循环左移ROR reg/mem,1/CL;不带进位循环右移RCL reg/mem,1/CL;带进位循环左移RCR reg/mem,1/CL;带进位循环右移 循环移位指令按指令功能设置进位标志CF,但不影响SF、ZF、PF、AF标志,OF只当CNT=1时有效,移位后当最高有效位发生变化时(如1变0) OF=1, 否则 OF=0 。将DX.AX中32位数值左移一位shl ax,1rcl dx,1控制转移指令 JMP JZ JNZ例3.23 判断是否为字母Y寄存器AL中是字母Y(含大小写),则令AH0,否则令AH1cmp al,y;比较AL与小写字母yje next;相等,转移cmp al,Y ;不相等,;继续比较AL与大写字母Yje next;相等,转移mov ah,-1;不相等,令AH1jmp done;无条件转移指令next:mov ah,0;相等的处理:令AH0done:例3-68 在内存中有一个首地址为 ARRAY 的数据区存放了200 个 8 位 有符号数,统计其中正数、负数、0 的个 数,并分别将统计结果存入PLUS、MINUS和ZERO单元中。XOR AL, ALMOV PLUS,AL MOV MINUS,ALMOV ZERO,ALLEA SI, ARRAY MOV CX, 200CLDLLAB:LODSB OR AL,AL JS MLAB JZ ZLABINC PLUS JMP NEXTMLAB: INC MINUS JMP NEXTZLAB: INC ZERONEXT: DEC CX JNZ LLAB HLT LOOP label;循环指令IRET伪指令:DB ,DW,byte ptr例2:操作数可以是字符串,例如STR DBHELLO汇编后的情况如图:某数据段定义为 DATA SEGMENT S1 DB 0,1,2,3,4,5S2 DB 12345COUNT EQU $-S1 S3 DB COUNT DUP(2)DATA ENDS画出该数据段在存储器中的存储形式DOS系统功能调用介绍(1) 从键盘输入一个字符(功能号=1) MOV AH,1 INT 21H (1) 在显示器上显示一个字符(功能号=2) MOV AH, 2 MOV DL, INT 21H 例:在显示器上显示一个字符A MOV AH, 2 MOV DL, A ;或MOV DL, 41H INT 21H(2)显示字符串(功能号=9)MOV AH, 9 LEA DX, INT 21H注意:被显示的字符串必须以$结束。4.6.2 分支程序设计4-31 求符号字节数X的绝对值,X用补码表示DATA SEGMENTX DB -50DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,X;取XTEST AL,80H;测试符号位JZ DONE;若大于0,转doneNEG AL;若小于,求补得到|x|MOV X,AL;保存DONE:MOV AH,4CHINT 21HCODE ENDSEND START关于存储器: 扩展存储器所需存储芯片的数量计算: 若用一个容量为mKn位的存储芯片构成容量为MKN位(假设Mm,Nn,即需字位同时扩展)的存储器,则这个存储器所需要的存储芯片数为 (Mm)(Nn)。RAM芯片的容量:为22016b,问(1)该芯片地址线多少,(2)数据线多少SRAM与CPU连接:CPU数据总线不相同,连接不一样。 8086CPU的16数据总线,其高8位数据线D15-D8接存储器的奇地址体 低8位数据线D7-D0接存储器的偶地址体, 根据BHE(选择奇地址库)和A0(选择偶地址库)的不同状态组合决定对存储器做字操作还是字节操作存储器与CPU地址总线的连接: 低位地址线直接和存储芯片的地址信号连接作为片内地址译码 高位地址线主要用来产生选片信号(称为片间地址译码),以决定每个存储芯片在整个存储单元中的地址范围,避免各芯片地址空间的重叠。片选译码的几种方法: 全译码: 所有的地址线全用上,无地址重叠。 部分译码:部分高位地址没有用,存在地址重叠。(3) 全译码,每个存储单元的地址都是唯一的,不存在地址重复,但译码电路可能比较复杂、连线也较多I/O端口与存储器统一编址概念I/O端口独立编址概念 8086采用独立编址I/O端口地址译码的一般原则:把CPU用于I/O端口寻址的地址线分为高位地址线和低位地址线两部分:例6-1,某8088最小系统,I/O接口译码电路如图A0-A9选择端口 CPU和外设间的数据传送方式 程序控制方式 中断控制方式 DMA方式 程序控制方式 无条件传送方式 查询传送方式查询传送方式 CPU从接口中读取状态字 CPU检测状态字 传送数据数据端口状态端口a) 查询式输入的算法: (1)用指令检测 Ready: IN AL , 三态缓冲器(或状态寄存器)的地址 (2)若 Ready = 0,返回(1) (3)若 Ready = 1,发出 IN AL , 输入接口数据寄存器的端口地址。 查询输入:MOV BX,OFFSET STOREIN_TEST:IN AL,状态口地址TEST AL,80HJZ IN_TESTIN AL,数据口地址MOV BX,ALINC BX 查询式输出的接口电路接至D7、b) 查询式输出:MOV BX,OFFSET STOREOUT_TEST:IN AL, 100;状态端口 TEST AL, 80H JNZ OUT_TESTMOV AL,BX OUT 101,AL;数据端口INC BX中断概念:中断向量表是存放中断向量的一个特定的内存区域。 中断向量,就是中断服务子程序的入口地址。 中断向量表:中断服务程序的入口地址(首地址) 逻辑地址含有段地址CS和偏移地址IP(共32位),其中低字是偏移地址、高字是段地址 8086微处理器从物理地址00000H开始,依次安排各个中断向量,向量号也从0开始 256个中断占用1KB区域,就形成中断向量表8259:完全嵌套方式(默认工作方式):中断请求按优先级IR0IR7处理,IR0优先级最高,IR7最低。当有中断发生时,如果有更高级的中断请求到来,会发生中断嵌套。中断结束命令(1)自动中断结束模式(AEOI)自动结束方式 一进入中断就将ISR中对应的状态标志清除,因为ISR是优先仲裁的依据,所以这种方式只能用在不会出现嵌套的简单场合。(2)非自动中断结束方式(EOI) 一般结束方式: 当发出中断结束命令后,用结束指令把当前中断服务寄存器(ISR)中优先级最高的(正在处理的)IS位清除。(最常用)8259初始化:(2)ICW2(中断向量命令字)向8259A写入ICW1命令字后,应立即向8259A送ICW2。ICW2用于确定8259A每根IR线上的中断向量号;(其实确定的是IR0线上的中断向量设置中断向量号n 命令字中,T7T3为中断向量号的高5位,低3位设为0n 根据此命令, 8259A自

温馨提示

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

评论

0/150

提交评论