1、微型计算机原理及应用知识点总结第一章 计算机基础知识一、微机系统的基本组成1.微型计算机系统由硬件和软件两个部分组成。(1)硬件:冯诺依曼计算机体系结构的五个组成部分:运算器,控制器,存储器,输入设备,输入设备。其特点是以运算器为中心。现代主流的微机是由冯诺依曼型改进的,以存储器为中心。冯诺依曼计算机基本特点:核心思想:存储程序;基本部件:五大部件;信息存储方式:二进制;命令方式:操作码(功能)+地址码(地址),统称机器指令;工作方式:按地址顺序自动执行指令。(2)软件:系统软件:操作系统、数据库、编译软件 应用软件:文字处理、信息管理(MIS)、控制软件二、微型计算机的系统结构大部分微机系统
2、总线可分为3类:数据总线DB(Data Bus),地址总线AB(Address Bus),控制总线CB(Control Bus)。总线特点:连接或扩展非常灵活,有更大的灵活性和更好的可扩展性。三、工作过程微机的工作过程就是程序的执行过程,即不断地从存储器中取出指令,然后执行指令的过程。 例:让计算机实现以下任务:计算计算7+10=?程序:mov al,7Add al,10hlt指令的机器码:10110000(OP)0000011100000100(OP)0000101011110100(OP)基本概念:1. 微处理器、微型计算机、微型计算机系统2. 常用的名词术语和二进制编码(1) 位、字节、
3、字及字长(2)数字编码(3) 字符编码(4) 汉字编码3. 指令、程序和指令系统习题:1.1,1.2,1.3,1.4,1.5第二章 80868088微处理器一、80868088微处理器8086微处理器的内部结构:从功能上讲,由两个独立逻辑单元组成,即执行单元EU和总线接口单元BIU。执行单元EU包括:4个通用寄存器(AX,BX,CX,DX,每个都是16位,又可拆位,拆成2个8位)、4个16位指针与变址寄存器(BP,SP,SI,DI)、16位标志寄存器FLAG(6个状态标志和3个控制标志)、16位算术逻辑单元(ALU)、数据暂存寄存器;EU功能:从BIU取指令并执行指令;计算偏移量。总线接口单元
4、BIU包括:4个16位段寄存器(CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)和ES(附加段寄存器))、16位指令指针寄存器IP(程序计数器)、20位地址加法器和总线控制电路、6字节(8088位4字节)的指令缓冲队列;BIU功能:形成20位物理地址;从存储器中取指令和数据并暂存到指令队列寄存器中。3、执行部件EU和总线接口部件BIU的总体功能:提高了CPU的执行速度;降低对存储器的存取速度的要求。4、地址加法器和段寄存器由IP提供或由EU按寻址方式计算出寻址单元的16位偏移地址(又称为逻辑地址或简称为偏移量),将它与左移4位后的段寄存器的内容同时送到地址加法器进行相加,最后形
5、成一个20位的实际地址(又称为物理地址),以对应存储单元寻址。要形成某指令码的物理地址(即实际地址),就将IP的值与代码段寄存器CS(Code Segment)左移4位后的内容相加。【例假设CS4000H,IP0300H,则指令的物理地址PA4000H10H0300H40300H。逻辑地址=4000H: 0300H。“段加偏移”的寻址机制:物理地址=段基地址(又称段起始地址=段地址10H)+偏移地址逻辑地址:其表达形式为“段地址:段内偏移地址”。二、8086/8088CPU基本执行环境指令指针(IP)寄存器包含下一条要执行的指令在当前码段中的偏移。 80868088的16位标志寄存器F只用了其
6、中的9位作标志位,即6个状态标志位,3个控制标志位。6个状态标志位:CF(Carry Flag)进位标志:进位或借位时,则CF为1;否则为0。PF(Parity Flag)奇偶性标志:含有偶数个“1”时,则PF为1;否则为0。AF(Auxiliary Carry Flag)辅助进位标志:ZF(Zero Flag)零标志:运算结果为零,ZF为1;否则为0。SF(Sign Flag)符号标志:OF(Overflow Flag)溢出标志:3个控制标志位(程序设置(1),清除(0):DF(Direction Flag)方向标志IF(Interrupt Enable Flag)中断允许标志TF(Trap
7、 Flag)跟踪(陷阱)标志存储器组织:1M字节存储器以64K为范围分为若干段。在寻址一个具体物理单元时,必须要由一个基地址再加上由SP或IP或BP或SI或DI等可由CPU处理的16位偏移量来形成实际的20位物理地址。三、总线周期1、时钟周期:时钟脉冲信号的一个循环时间叫一个时钟周期,又称为一个“T”状态,是微处理器工作的最小时间单位 2、总线周期(机器时间):完成一次对存储器或I/O端口的操作所需要的时间。3、指令周期:执行一条指令所需要的时间。1个最基本的总线周期由4个时钟周期组成,4个时钟周期又称为4个状态,。四、8086/8088引脚地址数据总线AD15AD0:分时复用地址/状态总线:
8、A19/S6A16/S3:控制总线:BHE/S7:表示高8位数据有效,T1输出。RD:存储器或I/O口读信号,输出,低电平有效,T2T3有效。READY:准备就绪信号,输入,高电平有效。READY1时,表示CPU访问的存储器或I/O端口已准备好传送数据,马上可以进行读写操作。TEST:测试信号,输入,低电平有效。INTR:可屏蔽中断请求信号,输入,电平触发,高电平有效。 CPU每执行完一条指令,即检查INTR,为“1”表示有中断清求,为“0”,则没有。是否响应受标志寄存器中IF的控制 NMI:不可屏蔽中断请求信号,输入,上升沿触发。RESET:复位信号,输入,高电平有效。CPU复位后,从FFF
9、F0H单元开始读取指令。电源线和地线: VCC,GND 五、8086系统的最小/最大工作方式最小工作方式: INTA:中断响应信号,输出,低电平有效。 ALE:地址锁存允许信号,输出,高电平有效。 DEN:数据允许信号,三态输出,低电平有效。 DT/R:数据发送/接收控制信号,三态输出。 M/IO:存储器或I/O端口选择信号,三态输出。M/IO1,表示当前CPU正在访问存储器;M/IO0,表示当前CPU正在访问I/O端口。 WR:写信号,三态、输出。当WR0低电平有效时,表示当前CPU正在对存储器或I/O端口进行写操作。 HOLD:总线保持请求信号,输入,高电平有效。 HLDA:总线请求响应信
10、号,输出,高电平有效。最大工作方式:在最大方式系统中,外加有8288总线控制器,一般包含2个或多个处理器。8282:地址锁存器,8286:数据收发器第三章 8086指令系统一、计算机语言1.机器语言:面向机器,0和1表示机器是否可接受并执行指令。2汇编语言:面向人,符号表示,必须翻译才能执行。汇编语言指令的格式:一般格式:操作码 操作数具体格式:标号:操作码(空格分隔符)目的操作数(存放结果),(逗号分隔符)源操作数;注释一条指令可以无操作数,必须有操作码,不同的机器,操作数个数不同。3.高级语言二、指令寻找操作数的寻址方式操作数通常保存在:(1)指令中(2)CPU内部寄存器中()内存单元中(
11、)端口中;8086/8088CPU与数据有关寻址方式:1. 立即寻址 2.寄存器寻址 3.直接寻址 4.寄存器间接寻址5.变址寻址6.基址寻址7.基址加变址寻址9.相对基址变址寻址10. I/O端口寻址11. 数据串寻址例:设DS1200H,BX05A6H,SS5000H,BP40A0H,SI2000H,DI3000H,位移量DISP1618H,试判断下列指令的寻址方式,并求出在各种寻址方式下,这些寄存器与位移量所产生的有效地址EA和实际地址(物理地址)PA。说明指令执行的结果。 MOV AX,0618H这是一条直接寻址方式的指令。EA0618HPA12000H+0618H12618H该指令执
12、行的结果是将数据段的实际地址为12618H和12619H两单元中的内容取出送AX。 MOV AX,BX这是一条以数据段基址寄存器BX间接寻址的指令。EA05A6HPA12000H+05A6H125A6H该指令执行的结果是将数据段的125A6H和125A7H两单元的字内容取出送AX。 MOV AX,BP这是一条以堆栈段基址寄存器BP间接寻址的指令。由于寻址时用上了BP寄存器,则操作数所默认的段寄存器就是SS。EA40A0HPA50000H+40A0H540A0H该指令执行的结果是将堆栈段的540A0H和540A1H两单元的字内容取出送AX。 MOV AX,DI这是一条变址寻址的指令。EA3000
13、HPA12000H+3000H15000H该指令执行的结果是将数据段的15000H和15001H两单元的字内容取出送AX。 MOV AX,BX+DI这是一条基址加变址寻址的指令。EA05A6H+3000H35A6HPA12000H+35A6H155A6H该指令执行的结果是将数据段的155A6H和155A7H两单元的字内容取出送AX。 MOV AX,BP+SI+DISP这是一条带位移量的基址加变址寻址的指令,又叫相对基址加变址寻址的指令,且操作数的默认段为SS。EA40A0H+2000H+1618H76B8HPA50000H+76B8H576B8H该指令执行的结果是将堆栈段的576B8H和576
14、B9H两单元的字内容取出送AX。三、指令的寻址=CS:IP(不用表示,固定的)转移寻址:用于控制转移类指令。实质:控制转移类指令通过改变IP和CS值,从新位置开始执行指令。转移寻址分成2种类型:段内转移和段间转移。条件转移指令只允许实现段内转移,而且是段内短转移,由指令中直接给出8位地址位移量无条件转移和调用指令又可分为段内短转移、段内直接转移、段内间接转移、段间直接转移和段间间接转移等5种不同的寻址方式。段间转移=远转移。四、指令分类8086/8088的指令按功能可分为6类:数据传送、算术运算、逻辑运算、串操作、程序控制和CPU控制。1.数据传送类指令数据传送类指令可完成寄存器与寄存器之间、
15、寄存器与存储器之间、寄存器与I/O端口之间的字节或字传送,共同特点是不影响标志寄存器的内容,分成4种类型。(1通用数据传送指令(1)MOV d,s;ds,即将由源s指定的源操作数送到目标d源操作数(s)可以是8/16位寄存器、存储器的某个字节/字或者是8/16位立即数;目标操作数(d)不允许为立即数;两者不能同时为存储器操作数。基本传送指令MOV d,s的类型有以下7种。 MOV mem/reg1,mem/reg2由mem/reg2所指定的存储单元或寄存器中的8位数据或16位数据传送到由mem/reg1所指定的存储单元或寄存器中,但不允许从存储器传送到存储器。 MOV mem/reg,data
16、 将8位或16位立即数data传送到由mem/reg所指定的存储单元或寄存器中。 MOV reg,data 将8位或16位立即数data传送到由reg所指定的寄存器中。 MOV ac,mem 将存储单元中的8位或16位数据传送到累加器ac中。 MOV mem,ac 将累加器AL(8位)或AX(16位)中的数据传送到由mem所指定的存储单元中。使用MOV指令时要注意的问题:CS不能做目的操作数不能直接从存储器到存储器之间数据传送2条伪指令:WORD PTR表示字数据类型BYTE PTR表示字节数据类型(2)PUSH和POPPUSH s:将源操作数(16位)压入堆栈POP d:将堆栈中当前栈顶两相
17、邻单元的数据字弹出到d 压栈指令PUSH AX:将AX(16位)中的数据压入栈,AX是源操作数,栈顶是目的操作数,由(SS:SP)指向。出栈指令POP AX:将栈顶信息弹出到AX中,AX是目的操作数,栈顶是源操作数,由(SS:SP)指向。设当前CS1000H,IP0020H,SS1600H,SP004CH,则该指令执行时,将当前栈顶两相邻单元1604CH与1604DH中的数据字弹出并传送到CX中,同时修改堆栈指针,SP+2SP,使之指向新栈顶1604EH。堆栈是内存中开辟的一个段,存放需要保护的信息(数据、地址)。堆栈操作时应遵循的5点原则:堆栈的存取操作每次必须是一个字(即2个字节)。执行压
18、栈指令时,总是从高位地址向低位地址存放数据,而不象内存中的其他段,总是从低地址向高地址存放;执行出栈指令时,从堆栈中弹出数据则正好相反。堆栈段在内存中的物理地址由SS和SP或SS和BP决定,其中,SS是堆栈段寄存器,它是栈区的最低地址,称为堆栈的段地址;SP是进栈或出栈指令隐含的堆栈地址指针,它的起始值是堆栈应达到的最大偏移量,即指向栈顶地址。堆栈段的范围是SS16至SS16+SP的起始值。每执行一次压栈指令,则SP-2,推入堆栈的数据放在栈顶;而每执行一次弹出指令时,则SP+2。BP寄存器用于对堆栈中的数据块进行随机存取,例如,MOV AX,BPSI指令执行后,将把偏移量为BP+SI的存储单
19、元的内容装入AX。堆栈指令中的操作数只能是寄存器或存储器操作数,而不能是立即数。对CS段寄存器可以使用压栈指令PUSH CX,但却不能使用POP CS这种无效指令。(3)XCHG d,s该指令功能是将源操作数与目标操作数(字节或字)相互对应交换位置。交换可以在通用寄存器与累加器之间、通用寄存器之间、通用寄存器与存储器之间进行。但不能在两个存储单元之间交换,段寄存器与IP也不能作为一个源或目的操作数。(4)XLAT这是一条用于实现字节翻译功能的指令,又称为代码转换指令。具体地说,它可以将AL寄存器中设定的一个字节数值变换为内存一段连续表格中的另一个相应的代码,以实现编码制的转换。2)目标地址传送
20、指令专用于传送地址码的指令,可传送存储器的逻辑地址(即存储器操作数的段地址或偏移地址)至指定寄存器中,共包含3条指令:LEA、LDS和LES。(1) LEA d,s取有效地址指令。功能:把用于指定源操作数(它必须是存储器操作数)的16位偏移地址(即有效地址)传送到一个指定的16位通用寄存器中。(2) LDS d,s取某变量的32位地址指针指令。功能:从由指令的源s所指定的存储单元开始,由4个连续存储单元中取出某变量的地址指针(共4个字节),将其前两个字节(即变量的偏移地址)传送到由指令的目标d所指定的某16位通用寄存器,后两字节(即变量的段地址)传送到DS段寄存器中。 (3) LES d,s这
21、条指令与LDS d,s指令的操作基本相同,其区别仅在于将把由源所指定的某变量的地址指针中后2个字节(段地址)传送到ES段寄存器,而不是DS段寄存器。3)标志位传送指令用于传送标志位,共有4条。(1) LAHF指令功能:将标志寄存器F的低字节(共包含5个状态标志位)传送到AH寄存器中,双操作数,固定寻址,所以被隐藏。(2)SAHF指令功能:将AH寄存器内容传送到标志寄存器F的低字节。(3)PUSHF指令功能:将16位标志寄存器F内容入栈保护。其操作过程与前述的PUSH指令类似。(4)POPF指令功能:将当前栈顶和次栈顶中的数据字弹出送回到标志寄存器F中。4)I/O数据传送指令(1)IN累加器,端
22、口号端口号可以用8位立即数直接给出;也可以将端口号事先安排在DX寄存器中,间接寻址16位长端口号(可寻址的端口号为065535)。IN指令是将指定端口中的内容输入到累加器AL/AX中。(2)OUT 端口号,累加器与IN指令相同,端口号可以由8位立即数给出,也可由DX寄存器间接给出。OUT指令是将累加器AL/AX中的内容输出到指定的端口。 OUT PORT,AL ;端口PORTAL,即将AL中的字节内容输出到由PORT直接指定的端口。PORT:符号地址,表示端口直接地址。 OUT DX,AX ;端口(DX)AX,即将AX中的字内容输出到由DX所指定的端口。I/O指令只能用累加器作为执行I/O数据
23、传送的机构,直接寻址范围为0255,寻址大于255的端口地址时,必须用间接寻址的I/O指令。例如,在IBM PC/XT微机系统中,既用了0255范围的端口地址,也用了25565535范围的端口地址。2.算术运算指令1)加法指令(1) ADD d,s ;dd+s 指令功能:将源操作数与目标操作数相加,结果保留在目标中。并根据结果置标志位。源操作数可以是8/16位通用寄存器、存储器操作数或立即数;目标操作数不允许是立即数,其他同源操作数。且不允许两者同时为存储器操作数。(2)ADC d,s;dd+s+CF 带进位加法(ADC)指令的操作过程与ADD指令基本相同,惟一的不同是进位标志位CF的原状态也
24、将一起参与加法运算,待运算结束,CF将重新根据结果置成新的状态。ADC指令一般用于16位以上的多字节数字相加的软件中。(3)INC d;dd+1指令功能:将目标操作数当作无符号数,完成加1操作后,结果仍保留在目标中。 目标操作数可以是8/16位通用寄存器或存储器操作数,但不允许是立即数。2)减法指令(1)SUB d,s;dd-s指令功能:将目标操作数减去源操作数,其结果送回目标,并根据运算结果置标志位。(2)SBB d,s;dd-s-CF本指令与SUB指令的功能、执行过程基本相同,唯一不同的是完成减法运算时还要再减去进位标志CF的原状态。运算结束时,CF将被置成新状态。(3)DEC d; dd
25、-1减1指令功能:将目标操作数的内容减1后送回目标。目标操作数可以是8/16位通用寄存器和存储器操作数,但不允许是立即数。(4)NEG d; dd+1NEG是求补码的指令,简称求补指令。指令功能:将目标操作数取负后送回目标。(5)CMP d,s;d-s,只置标志位指令功能:将目标操作数与源操作数相减但不送回结果,只根据运算结果置标志位。不允许两个操作数同时为存储器操作数,也不允许做段寄存器比较。3)乘法指令乘法指令用来实现两个二进制操作数的相乘运算,包括两条指令:无符号数乘法指令MUL和有符号数乘法指令IMUL。(1) MUL sMUL s是无符号乘法指令,被乘数(目的操作数)隐含在累加器AL
26、/AX中;由s指定的源操作数作乘数,相乘所得双倍位长的积,分别存放到DX与AX中。(2)IMUL s有符号乘法指令4)除法指令除数、商:8位,被除数可以是16位,目的操作数被隐含。(1) DIV sDIV s 被除数隐含在累加器AX(字节除)或DX、AX(字除)中。指令中由s给出的源操作数作除数。字节除法,商存于AL,余数存于AH。字除法,商存于AX,余数存于DX。(2) IDIV s该指令完成将两个带符号的二进制数相除的功能。(3) CBW和CWD5)十进制调整指令(1) DAADAA是加法的十进制调整指令,它必须跟在ADD或ADC指令之后使用。功能:将存于AL(目的操作数)寄存器中的2位B
27、CD码加法运算的结果调整为2位压缩型十进制数,仍保留在AL中。AL寄存器中的运算结果在出现非法码(1010B1111B)或本位向高位(指BCD码)有进位(由AF=1或CF=1表示低位向高位或高位向更高位有进位)时,由DAA自动进行加6调整。AF标志寄存器可知进位。(2) DAS减法的十进制调整指令,减6调整(3) AAA加法的ASCII码调整指令(4) AAS减法的ASCII码调整指令(5) AAM乘法的ASCII码调整指令(6)AAD除法的ASCII码调整指令。3.逻辑运算和移位循环类指令:分为3种类型:逻辑运算;移位;循环1)逻辑运算指令(1)AND d,s;dds,按位“与”操作,有一个
28、是0,结果是0。(2) OR d,s;dds,按位“或”操作,有一个是1,结果是1。(3) XOR d,s;dd s,按位“异或”操作,不同,相同0。(4) NOT d;d d ,按位取反操作。 (5) TEST d,s;ds,按位“与”操作,不送回结果,测试指令,影响标志位。2)移位指令与循环移位指令移位指令分为算术移位和逻辑移位。循环移位分为不带进位位(小循环)与带进位位循环移位(大循环)4.串操作类指令(1)指令使用规则::串操作类指令是惟一地在存储器内的源与目标之间进行操作的指令,即源操作数与目标操作数都可以是存储器操作数。(2)源操作数地址:DS(段寄存器)、IS(源变址寄存器)(3
29、)目标操作数地址:ES(段寄存器)、DI(目标变址寄存器)(4)串长度存放在CS寄存器中(5)采用隐含寻址方式。(6)地址变化方向方向标志位DF,DF=0,用指令CLD实现,地址指针增1或2;DF=1,用指令STD实现,地址指针减1或2。(7)串指令功能:执行指令规定操作,然后SI和DI自动修改+-1(字符串)或+-2(字)。(8)重复指令功能:添加重复前缀REP等,指令实现自动循环,自动修改循环计数计功能,并判断0(9)循环计数计使用CX5种基本的串操作指令:1) MOVS目标串,源串2)CMPS目标串,源串3)SCAS目标串4) LODS源串5) STOS目标串5.程序(转移)控制指令1)
30、无条件转移指令(1)JMP 目标标号根据目标地址的位置与寻址方式的不同,JMP指令有4种基本格式。 段内直接转移操作数:目标地址的偏移量,偏移量是8位(短转移)或16位(近转移)的带符号数。目标标号偏移地址=(IP)+指令中位移量有条件转移只能用短转移。段内短转移:位移量1个字节段内近转移:位移量2个字节段内间接转移操作数:目标地址的偏移地址,寄存器间接寻址目标标号偏移地址=操作数-(IP)目标段=源段=CSSHORT段内短转移NIAR段内近转移段间直接转移新的段地址:CS,新的偏移地址:IP,操作数:目标地址的逻辑地址。目标地址的段地址和偏移地址存放于存储器的4个连续地址中低字位:IP,高字位:CS,操作数是双字的存储器地址用DWORD PTR表示。(2) CALL 过程名无条件调用过程指令。“过程”即“子程序”。子程序名即子程序入口地址,子程序段第一条指令的地址,用符号表示。CALL指令将迫使CPU暂停执行调用程序(或称为主程序)后续的下一条指令(即断点,用堆栈保存),转去执行指定的过程;待过程执行完毕,再用返回指令RET将程序返回到断点处继续执行。RET:识别程序终点。CAL
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1