版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 计算机基础知识一、微机系统的基本组成1. 微型计算机系统由硬件和软件两个部分组成。(1) 硬件 : 冯诺依曼计算机体系结构的五个组成部分:运算器,控制器,存储器,输入设备,输入 设备。其特点是以运算器为中心。 现代主流的微机是由冯诺依曼型改进的,以存储器为中心。 冯诺依曼计算机基本特点:核心思想:存储程序;基本部件:五大部件; 信息存储方式:二进制; 命令方式:操作码(功能) +地址码(地址) ,统称机器指令; 工作方式:按地址顺序自动执行指令。(2) 软件 : 系统软件:操作系统、数据库、编译软件 应用软件:文字处理、信息管理( MIS)、控制软件二、微型计算机的系统结构大部分微机系
2、统总线可分为 3 类:数据总线 DB(Data Bus) ,地址总线 AB(Address Bus) ,控 制总线 CB(Control Bus) 。 总线特点:连接或扩展非常灵活,有更大的灵活性和更好的可扩展性。三、工作过程 微机的工作过程就是程序的执行过程 ,即不断地从存储器中取出指令 , 然后执行指令的过程。 例:让计算机实现以下任务:计算 计算 7+10=?程序: mov al,7Add al,10hlt 指令的机器码: (OP) 00000111 00000100(OP) 00001010 (OP)基本概念:1. 微处理器、微型计算机、微型计算机系统2. 常用的名词术语和二进制编码(
3、 1) 位、字节、字及字长(2)数字编码(3)字符编码(4)汉字编码3. 指令、程序和指令系统习题:第二章 8086 8088 微处理器一、8086 8088 微处理器EU和总线8086 微处理器的内部结构:从功能上讲,由两个独立逻辑单元组成,即执行单元 接口单元 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按寻址方式计算出寻址单元的 1
5、6 位偏移地址 ( 又称为逻辑地址或简称为偏 移量) ,将它与左移 4 位后的段寄存器的内容同时送到地址加法器进行相加,最后形成一个20 位的实际地址 (又称为物理地址 ) ,以对应存储单元寻址。要形成某指令码的物理地址 (即实际地址) ,就将 IP 的值与代码段寄存器 CS( Code Segment) 左移 4 位后的内容相加。【例假设 CS4000H,IP 0300H,则指令的物理地址 PA4000H×10H 0300H 40300H。逻辑地址 =4000H: 0300H 。“段加偏移”的寻址机制:物理地址 =段基地址(又称段起始地址 =段地址× 10H) +偏移地址
6、 逻辑地址:其表达形式为“段地址:段内偏移地址”。二、8086/8088CPU 基本执行环境指令指针( IP )寄存器包含下一条要执行的指令在当前码段中的偏移。8086 8088 的 16 位标志寄存器 F 只用了其中的 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
7、;否则为 0。SF(Sign Flag) 符号标志: OF(Overflow Flag) 溢出标志:3 个控制标志位(程序设置( 1 ),清除( 0):DF(Direction Flag) 方向标志IF(Interrupt Enable Flag) 中断允许标志TF(Trap Flag) 跟踪 (陷阱 ) 标志存储器组织:1M字节存储器以 64K 为范围分为若干段。在寻址一个具体物理单元时,必须要由一个基地址再加上由 SP或 IP 或 BP 或 SI 或 DI 等可由 CPU处理的 16 位偏移量来形成实际的 20 位物理地址 。三、总线周期1、时钟周期:时钟脉冲信号的一个循环时间叫一个时钟周
8、期,又称为一个“T”状态,是微处理器工作的最小时间单位2、总线周期(机器时间) :完成一次对存储器或 I/O 端口的操作所需要的时间。3、指令周期:执行一条指令所需要的时间。1 个最基本的总线周期由 4 个时钟周期组成, 4 个时钟周期又称为 4 个状态 , 。四、8086/8088 引脚地址数据总线 AD15 AD0:分时复用地址 / 状态总线: A19/S6A16/S3 : 控制总线: BHE/S7:表示高 8 位数据有效, T1输出。RD:存储器或 I/O 口读信号,输出,低电平有效, T2T3有效。READY:准备就绪信号,输入,高电平有效。READY1 时,表示 CPU访问的存储器或
9、 I/O 端口已准备好传送数据,马上可以进行读写操作。TEST:测试信号,输入,低电平有效。INTR:可屏蔽中断请求信号,输入,电平触发,高电平有效。CPU每执行完一条指令 ,即检查 INTR,为“1”表示有中断清求,为“ 0”,则没有。是否响应受标志寄存器中IF 的控制NMI:不可屏蔽中断请求信号,输入,上升沿触发。RESET:复位信号,输入,高电平有效。 CPU复位后,从 FFFF0H单元开始读取指令。 电源线和地线: VCC,GND五、8086系统的最小 / 最大工作方式最小工作方式: INTA: 中断响应信号,输出,低电平有效。 ALE: 地址锁存允许信号,输出,高电平有效。 DEN:
10、数据允许信号,三态输出,低电平有效。 DT/R :数据发送 /接收控制信号,三态输出。 M/IO:存储器或 I/O 端口选择信号,三态输出。 M/IO 1,表示当前 CPU正在访问存储器;M/IO 0,表示当前 CPU正在访问 I/O 端口。 WR:写信号,三态、输出。当 WR 0低电平有效时,表示当前 CPU正在对存储器或 I/O 端口进行写操作。 HOLD:总线保持请求信号,输入,高电平有效。 HLDA:总线请求响应信号,输出,高电平有效。最大工作方式:在最大方式系统中,外加有 8288 总线控制器,一般包含 2个或多个处理器。8282: 地址锁存器, 8286: 数据收发器第三章 808
11、6 指令系统、计算机语言1. 机器语言:面向机器, 0 和 1 表示机器是否可接受并执行指令。2汇编语言:面向人,符号表示,必须翻译才能执行。汇编语言指令的格式:一般格式:操作码 操作数具体格式: 标号:操作码(空格分隔符) 目的操作数 (存放结果) ,(逗号分隔符) 源操作数; 注释一条指令可以无操作数,必须有操作码,不同的机器,操作数个数不同。3. 高级语言二、指令寻找操作数的寻址方式操作数通常保存在: (1)指令中( 2)CPU 内部寄存器中()内存单元中()端 口中;8086/8088CPU与数据有关寻址方式:1. 立即寻址 2. 寄存器寻址 3. 直接寻址 4. 寄存器间接寻址 5.
12、 变址寻址 6. 基址寻址7. 基址加变址寻址 9. 相对基址变址寻址 10. I/O 端口寻址 11. 数据串寻址例:设 DS1200H,BX05A6H,SS5000H,BP40A0H,SI2000H,DI 3000H,位移量 DISP1618H,试判断下列指令的寻址方式,并求出在各种寻址方式下,这些寄存器与位移量所 产生的有效地址 EA和实际地址(物理地址) PA。说明指令执行的结果。 MOV AX, 0618H这是一条直接寻址方式的指令。EA 0618HPA 12000H+0618H12618H该指令执行的结果是将数据段的实际地址为12618H 和 12619H两单元中的内容取出送 AX
13、。 MOV AX, BX这是一条以数据段基址寄存器BX间接寻址的指令。EA 05A6HPA 12000H+05A6H125A6H 该指令执行的结果是将数据段的 125A6H和 125A7H两单元的字内容取出送 AX。 MOV AX, BP这是一条以堆栈段基址寄存器BP间接寻址的指令。 由于寻址时用上了 BP寄存器, 则操作数所默认的段寄存器就是 SS。EA 40A0HPA 50000H+40A0H540A0H该指令执行的结果是将堆栈段的540A0H和 540A1H两单元的字内容取出送 AX。 MOV AX,DI 这是一条变址寻址的指令。EA 3000HPA 12000H+3000H15000H
14、 该指令执行的结果是将数据段的 15000H和 15001H 两单元的字内容取出送 AX。 MOV AX, BX+DI 这是一条基址加变址寻址的指令。EA 05A6H+3000H35A6HPA 12000H+35A6H155A6H 该指令执行的结果是将数据段的 155A6H和 155A7H两单元的字内容取出送 AX。 MOV AX, BP+SI+DISP这是一条带位移量的基址加变址寻址的指令, 又叫相对基址加变址寻址的指令, 且操作数的 默认段为 SS。EA 40A0H+2000H+1618H 76B8HPA 50000H+76B8H576B8H该指令执行的结果是将堆栈段的 576B8H和 5
15、76B9H两单元的字内容取出送 AX。 三、指令的寻址 =>CS:IP (不用表示,固定的)转移寻址:用于控制转移类指令。实质:控制转移类指令通过改变 IP 和 CS值,从新位置开始执行指令。转移寻址分成 2 种类型:段内转移和段间转移。条件转移指令只允许实现段内转移, 而且是段内短转移, 由指令中直接给出 8 位地址位移量 无条件转移和调用指令又可分为段内短转移、 段内直接转移、 段内间接转移、 段间直接转移 和段间间接转移等 5 种不同的寻址方式。段间转移 =远转移。四、指令分类8086/8088 的指令按功能可分为 6 类:数据传送、算术运算、逻辑运算、串操作、程序控制和 CPU控
16、制。1. 数据传送类指令数据传送类指令可完成寄存器与寄存器之间、 寄存器与存储器之间、 寄存器与 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 位数据或
17、16 位数据传送到由 mem/reg1 所指 定的存储单元或寄存器中,但不允许从存储器传送到存储器。 MOV mem/reg,data 将 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不能做目的操作数不能直接从存储器到存储器
18、之间数据传送2 条伪指令:WORD PTR表示字数据类型BYTE PTR表示字节数据类型(2)PUSH和 POPPUSH s :将源操作数( 16 位)压入堆栈POP d :将堆栈中当前栈顶两相邻单元的数据字弹出到d压栈指令 PUSH AX:将 AX(16 位)中的数据压入栈, AX是源操作数,栈顶是目的操作数, 由( SS:SP)指向。出栈指令 POP AX:将栈顶信息弹出到 AX 中,AX是目的操作数, 栈顶是源操作数, 由(SS:SP) 指向。设当前 CS1000H,IP0020H,SS1600H,SP 004CH,则该指令执行时,将当前栈顶两 相邻单元 1604CH与 1604DH中的
19、数据字弹出并传送到 CX中,同时修改堆栈指针, SP+2SP, 使之指向新栈顶 1604EH。堆栈是内存中开辟的一个段,存放需要保护的信息(数据、地址) 。堆栈操作时应遵循的 5 点原则:堆栈的存取操作每次必须是一个字(即 2 个字节)。执行压栈指令时, 总是从高位地址向低位地址存放数据, 而不象内存中的其他段, 总是从低地址向高地址存放;执行出栈指令时,从堆栈中弹出数据则正好相反。 堆栈段在内存中的物理地址由 SS和 SP 或 SS和 BP决定,其中, SS是堆栈段寄存器,它是 栈区的最低地址,称为堆栈的段地址; SP 是进栈或出栈指令隐含的堆栈地址指针,它的起 始值是堆栈应达到的最大偏移量
20、,即指向栈顶地址。堆栈段的范围是SS×16 至 SS×16+SP的起始值。每执行一次压栈指令,则SP-2 ,推入堆栈的数据放在栈顶;而每执行一次弹出指令时, 则 SP+2。BP寄存器用于对堆栈中的数据块进行随机存取,例如, MOVA X,BPSI指令执行后,将把偏移量为 BP+SI 的存储单元的内容装入 AX。堆栈指令中的操作数只能是寄存器或存储器操作数,而不能是立即数。对 CS 段寄存器可以使用压栈指令 PUSH CX,但却不能使用 POP CS这种无效指令。(3)XCHG d, s 该指令功能是将源操作数与目标操作数(字节或字 ) 相互对应交换位置。 交换可以在通用寄存
21、器与累加器之间、 通用寄存器之间、 通用寄存器与存储器之间进行。 但不能在两个存储单元 之间交换,段寄存器与 IP 也不能作为一个源或目的操作数。(4)XLAT 这是一条用于实现字节翻译功能的指令,又称为代码转换指令。具体地说,它可以将 AL 寄 存器中设定的一个字节数值变换为内存一段连续表格中的另一个相应的代码, 以实现编码制 的转换。2)目标地址传送指令专用于传送地址码的指令, 可传送存储器的逻辑地址 (即存储器操作数的段地址或偏移地址) 至指定寄存器中,共包含 3条指令: LEA、 LDS和 LES。(1)LEA d , s取有效地址指令。 功能:把用于指定源操作数 (它必须是存储器操作
22、数 )的 16位偏移地址 ( 即 有效地址 )传送到一个指定的 16 位通用寄存器中。(2)LDS d , s取某变量的 32位地址指针指令。功能:从由指令的源s所指定的存储单元开始,由 4 个连续存储单元中取出某变量的地址指针(共 4 个字节 ) ,将其前两个字节 ( 即变量的偏移地址 )传送到由指令的目标 d所指定的某 16位通用寄存器 ,后两字节(即变量的段地址 )传送到 DS 段寄存器中。(3) LES d , s这条指令与 LDS d,s 指令的操作基本相同 , 其区别仅在于将把由源所指定的某变量的地址指 针中后 2个字节 (段地址 )传送到 ES段寄存器,而不是 DS段寄存器。3)
23、 标志位传送指令 用于传送标志位,共有 4 条。(1) LAHF指令功能:将标志寄存器 F的低字节 (共包含 5 个状态标志位 )传送到 AH寄存器中, 双操作数,固定寻址,所以被隐藏。(2) SAHF 指令功能:将 AH寄存器内容传送到标志寄存器F 的低字节。(3) PUSHF指令功能:将 16 位标志寄存器 F 内容入栈保护。其操作过程与前述的PUSH指令类似。(4) POPF 指令功能:将当前栈顶和次栈顶中的数据字弹出送回到标志寄存器 F 中。4) I/O 数据传送指令(1) IN 累加器,端口号端口号可以用 8 位立即数直接给出;也可以将端口号事先安排在DX寄存器中,间接寻址 16位长
24、端口号 (可寻址的端口号为 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 数据传送的机构,直接寻址范围为0 2
25、55,寻址大于255的端口地址时 ,必须用间接寻址的 I/O 指令。例如,在 IBM PC/XT微机系统中 ,既用了 0 255范围的端口地址,也用了 255 65535 范围的端口地址。2. 算术运算指令1) 加法指令(1) ADD d , s ;dd+s 指令功能:将源操作数与目标操作数相加,结果保留在目标中。并根据结果置标志位。 源操作数可以是 8/16 位通用寄存器、 存储器操作数或立即数; 目标操作数不允许是立即数, 其他同源操作数。且不允许两者同时为存储器操作数。(2) ADC d,s;dd+s+CF带进位加法 ( ADC)指令的操作过程与 ADD指令基本相同, 惟一的不同是进位标
26、志位 CF的原 状态也将一起参与加法运算,待运算结束,CF 将重新根据结果置成新的状态。ADC指令一般用于 16 位以上的多字节数字相加的软件中。(3) INC d ;d d+1 指令功能:将目标操作数当作无符号数,完成加 1 操作后,结果仍保留在目标中。 目标操作数可以是 8/16 位通用寄存器或存储器操作数,但不允许是立即数。2) 减法指令(1) SUB d ,s;d d-s 指令功能:将目标操作数减去源操作数,其结果送回目标,并根据运算结果置标志位。(2) SBB d ,s;d d-s-CF本指令与 SUB指令的功能、 执行过程基本相同, 唯一不同的是完成减法运算时还要再减去进 位标志
27、CF的原状态。运算结束时, CF将被置成新状态。(3) DEC d ; d d-1减 1 指令功能:将目标操作数的内容减1 后送回目标。目标操作数可以是 8/16 位通用寄存器和存储器操作数,但不允许是立即数。(4) NEG d ; d d+1 NEG是求补码的指令,简称求补指令。指令功能:将目标操作数取负后送回目标。(5) CMP d ,s; d-s, 只置标志位 指令功能:将目标操作数与源操作数相减但不送回结果,只根据运算结果置标志位。 不允许两个操作数同时为存储器操作数,也不允许做段寄存器比较。3) 乘法指令MUL乘法指令用来实现两个二进制操作数的相乘运算,包括两条指令:无符号数乘法指令
28、 和有符号数乘法指令 IMUL。(1) MUL sMULs 是无符号乘法指令 ,被乘数(目的操作数)隐含在累加器AL/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) C
29、BW 和 CWD5) 十进制调整指令(1) DAADAA是加法的十进制调整指令,它必须跟在ADD或 ADC指令之后使用。功能:将存于 AL(目的操作数)寄存器中的 2位 BCD码加法运算的结果调整为 2位压缩型十 进制数,仍保留在 AL 中。AL 寄存器中的运算结果在出现非法码 (1010B 1111B)或本位向高位 (指 BCD码)有进位 (由 AF=1或 CF=1表示低位向高位或高位向更高位有进位 )时,由 DAA自动进行加 6调整。 AF标 志寄存器可知进位。(2) DAS 减法的十进制调整指令,减 6 调整(3) AAA 加法的 ASCII 码调整指令(4) AAS 减法的 ASCII
30、 码调整指令(5) AAM 乘法的 ASCII 码调整指令(6) AAD 除法的 ASCII 码调整指令。3. 逻辑运算和移位循环类指令:分为 3 种类型:逻辑运算;移位;循环1)逻辑运算指令(1)AND d ,s;d ds,按位“与”操作,有一个是 0,结果是 0。(2)OR d ,s ; d d s,按位“或”操作,有一个是 1,结果是 1。(3)XOR d ,s;dd s ,按位“异或”操作,不同,相同0。(4)NOT d ;d d ,按位取反操作。(5)TEST d , s; ds,按位“与”操作,不送回结果,测试指令,影响标志位。2)移位指令与循环移位指令移位指令分为算术移位和逻辑移
31、位。 循环移位分为不带进位位(小循环)与带进位位循环移位(大循环)4. 串操作类指令(1)指令使用规则 : :串操作类指令是惟一地在存储器内的源与目标之间进行操作的指令, 即源操作数与目标操作数都可以是存储器操作数。(2)源操作数地址: DS(段寄存器) 、IS (源变址寄存器)(3)目标操作数地址: ES(段寄存器)、 DI (目标变址寄存器)(4)串长度存放在 CS 寄存器中(5)采用隐含寻址方式。(6)地址变化方向方向标志位DF, DF=0,用指令 CLD实现,地址指针增 1或 2;DF=1,用指令 STD实现,地址指针减 1或 2。(7)串指令功能:执行指令规定操作,然后SI 和 DI
32、 自动修改 +-1 (字符串)或 +-2 (字)。(8)重复指令功能: 添加重复前缀 REP等,指令实现自动循环,自动修改循环计数计功能, 并判断 0(9)循环计数计使用 CX5 种基本的串操作指令:1)MOVS目标串,源串2)CMPS目标串,源串3)SCAS目标串4)LODS源串5)STOS目标串5. 程序(转移)控制指令1)无条件转移指令(1)JMP 目标标号 根据目标地址的位置与寻址方式的不同,JMP指令有 4 种基本格式。 段内直接转移 操作数:目标地址的偏移量,偏移量是 8位(短转移)或 16 位(近转移)的带符号数。 目标标号偏移地址 =(IP)+ 指令中位移量有条件转移只能用短转
33、移。段内短转移:位移量 1 个字节段内近转移:位移量 2 个字节 段内间接转移操作数:目标地址的偏移地址,寄存器间接寻址目标标号偏移地址 =操作数 -(IP)目标段 =源段 =CSSHORT段内短转移NIAR段内近转移 段间直接转移新的段地址: CS,新的偏移地址: IP ,操作数:目标地址的逻辑地址。 目标地址的段地址和偏移地址存放于存储器的 4 个连续地址中低字位: IP,高字位: CS,操作数是双字的存储器地址用DWORD PT表R示。(2)CALL 过程名无条件调用过程指令。 “过程”即“子程序”。 子程序名即子程序入口地址, 子程序段第一 条指令的地址,用符号表示。CALL指令将迫使
34、 CPU暂停执行调用程序(或称为主程序)后续的下一条指令( 即断点,用堆栈保存 ), 转去执行指定的过程;待过程执行完毕 , 再用返回指令 RET将程序返回到断点处继续执行。RET:识别程序终点。CALL指令 4 种不同的寻址方式和 4 种基本格式: CALL N_PROCN_PROC是一个近过程名,采用段内直接寻址方式。 CALL BX段内间接寻址的调用过程指令 CALL F_PROC F_PROC是一个远过程名,它可以采用段间直接和段间间接两种寻址方式来实现调用过程。 RET 弹出值:从过程返回 (RET) 指令应安排在过程的出口,即过程的最后一条指令处。2)条件转移指令条件转移指令共有
35、18条,标志寄存器的标志位( 9 个,用 6个状态)作为转移的条件。 所有的条件转移指令都是短转移,目标地址( 8 位)的字节距离在 -128 +127范围以内。 一个标志位的状态或几个标志的状态组合作为测试的条件。另外的一种替换形式,功能等效。3)循环控制指令: CX中存放着循环次数,短转移(1)LOOP 目标标号(2)LOOPE/LOOPZ目 标标号(3)LOOPNE/LOOPN目Z 标标号(4)JCXZ 目标标号6. 中断指令,中断指令只有 3 条。(1)INT 中断类型, 8086/8088 系统中允许有 256 种中断类型 (0 255)(2)INTO(3)IRET7. 处理器控制类
36、指令,处理器控制指令只完成对CPU的简单控制功能。1)对标志位操作指令(1) CLC 、 STC、 CMC指令用来对进位标志 CF清“ 0”、置 “1”和取反操作。2)同步控制指令:多处理器系统(1) ESC 外部操作码,源操作数(2) WAIT(3)LOCK3)其他控制指令(1) HLT 暂停指令,当 CPU发生复位或来自外部的中断时, CPU脱离暂停状态。(2) NOP 空操作指令,占用 3 个时钟周期的时间( IP+1 ),常用来作延时。五、 8086 编程基础汇编语言是用指令的助记符、符号地址、标号等书写程序的语言 , 简称符号语言。1. 汇编语言格式(1)指令分类汇编语言有 3 种基
37、本语句:指令语句、伪指令语句、宏指令语句。指令语句是一种执行性语句 , 它在汇编时 , 汇编程序将为之产生一一对应的机器目标代码。 伪指令语句是一种说明性语句,它在汇编时只为汇编程序提供进行汇编所需要的有关信息, 如定义符号,分配存储单元,初始化存储器等,而本身并不代表生成目标代码。不执行,翻 译时用。宏指令语句是以某个宏名字定义的一段指令序列。宏指令可以有多段,子程序有一段。(2)语句格式1)指令语句格式 标号: 前缀 指令助记符 操作数表 ; 注释 2)伪指令语句的格式名字伪指令参数表 ; 注释(3)汇编语言的语法 段定义伪指令指示汇编程序应如何按段来组织程序和使用存储器。汇编程序 3 种
38、设计结构:顺序结构、分支结构、循环结构。2. 汇编语言编程运行环境第五章 存储器 一、存储器的结构1. 基本概念 位 (bit) :信息量单位,每一个 0 或 1 就叫做 1 位信息。 字节 (byte) :存储量单位, 8 位二进制代码作为一个字节。 字 (word) : 2 个字节组成一个字,标识 16 位数据的长度。 字长:计算机一次处理数据的位数 (存储器, 寄存器)。字长是随计算机发展变化的 ( 8086 型字长 =16 位)。 地址:每个单元的编号,各存储单元的地址与该地址中存放的内容完全不同。物理地址( 20 位, 220=1024K=1M) =段地址 *10H+偏移地址逻辑地址
39、( 16 位, 216=64K)=段地址( 16 位):偏移地址( 16 位) 存储单元:每个单元存储 8 位二进制信息,即字长为 8 位。 字地址:低地址单元的地址作为低地址,偶数。段:分段方法:段起始地址(段基址) ,段长简化问题。 存储器管理方式1)存储器信息分类管理:程序信息,数据信息,保护(堆栈)信息。2)存储器空间分段使用:将内存空间分成若干个逻辑段使用,每个逻辑段存放一种信息, 每个段称逻辑段,当前正在使用的逻辑段称作当前段。逻辑信息按照存放信息的类别分为:代码(程序)段,堆栈段,数据段,附加段。 逻辑段:逻辑段长度 =后起始地址 -前起始地址,一类信息可以使用 1 个至多个逻辑
40、段。 地址指针:程序指针: CS:IP ,堆栈指针: SS:SP,数据指针: DS或 ES:EA(有效地址) 段地址来源于 4 个段寄存器,偏移地址来源于 IP、SP、EA(由 BP、SI 、DI 计算)。 段地址默认时,偏移地址称作逻辑地址。存储器堆栈技术1. 堆栈的定义:在存储器设置专用区(堆栈段) ,临时存放需要保护的信息。2. 堆栈原则: 按字堆栈, 后进先出; 从底(高地址) 向顶(低地址) 堆放堆栈指针 SS:SP(栈顶)。3)堆栈设置: SS赋值:定段位置; SP 赋值:定段长度。 SP-2 (内部自动, SP值不变)。 物理地址 =段地址( SS) *10H+偏移地址( SP)
41、4)堆栈使用自动或用指令使用堆栈。 SP-2,进栈; SP+2,出栈;自动实现,程序里不写。二、计算机存储系统概述1 计算机的存储系统1)主存和辅存2)存储系统2. 内存(半导体存储器)的概述1)主存功能:存放当前运行的程序和数据,供CPU直接访问;存放多机共享的数据,兼顾实现多机通信。2)主存连接:主存 < >系统总线 < >CPU系统总线: AB:地址来自 CPU的 AR寄存器; CB:包括 IO/M、WE/RD、Ready 等引脚; DB:数 据通过 CPU的 DR寄存器中转。3)主存分类RAM:易失性存储器,如 U盘; ROM:非易失性存储器;MOS RAM分静
42、态( Static )和动态( Dynamic) RAM两种。双极性 RAM的特点:存取速度快。静态 MOS RAM的 特点:价格便宜,功耗低。内存:MOS4)内存(半导体存储器)组成和结构地址译码方式:单译码方式、双译码方式、计算机的内存1. 静态 RAM简称 SRAM,基本存储电路: RS触发器。Intel 6116 :双列直插式, 24引脚,存储容量 2K*8 位2. 动态 RAM简称 DRAMIntel 2116:16K*1 位,由于受封装引线的限制,只有 7 条地址输入线, 1 条数据线;采用地 址线分时复用的技术;控制信号: CAS列, RAS行;工作方式: 写操作: 电容充电;
43、读操作: 破坏性读出, 重写刷新; 定时刷新: 保持电容电平。 特点:定时刷新、分时复用。3. EPROM芯片Intel 2716 容量为 2K× 8 位,采用 NMOS工艺和双列直插式封装三、存储器的扩充和与 CPU连接1、存储器的扩充 位数的扩充:用固定容量、位数一定的芯片扩充成固定容量、位数较多的存储器。如:需要 2KX8位的存储器: 2KX1需 8 片;需要 2KX8 位的存储器: 2KX4需 2 片;需要 2KX16位的存储器: 2KX1需 16 片;需要 2KX16位的存储器: 2KX4需 4 片。字扩展(地址扩展) :用一定容量、位数固定的存储芯片扩充成较大容量位数固定
44、的存储 器。如:需要 64KX8位的存储器: 16KX8需 4 片;需要 64KX8位的存储器: 2KX8需 32 片。 字、位扩展:用固定容量、固定位数的芯片扩展成较大容量、较大位数的存储器。如:用 16KX4 的存储芯片扩展成 64KX8的存储器:位扩展:需 2 片;字扩展:需 4 片;共需芯片: 2X4=8 片。2、存储器芯片片选信号 CS的处理芯片介绍: Intel 74LS138 和 6116 3-8 译码器 74LS138 存储芯片 Intel6116 ( 2KX8)片选信号的处理方法 全译码法:片内寻址未用的全部高位地址线都参加译码,译码输出作为片选信号。 部分译码:用片内寻址外
45、的高位地址的一部分译码产生片选信号。 线选法: 高位地址线不经过译码, 直接 (或经反相器) 分别接各存储器芯片的片选端来区 别各芯片的地址。例:用 Intel 6116芯片组成 8KB RAM,设 CPU为 8086(设地址线为 20根),译码器采用 74LS138, 问题:1 、需要几片 6116 ?2 、地址线和数据线各为多少根?3 、每一片的地址范围是多少?如何确定?是否有重叠区?4 、如何连线?(包括地址线、数据线和状态线)全译码分析: 6116 为 2KX8芯片,需组成 8KX8的存储器,只需进行字扩展,需4片。要求地址范围是 00000H01FFFH,4片的地址范围分别为:第一片
46、: 00000H 007FFH; 第二片: 00800H 00FFFH;第三片: 01000H 017FFH;第四片: 01800H 01FFFH 分析结果:A0A10作为芯片片内寻址;A11A13作为 74LS 的 A、B、C端;A14A19组合产生 G1、 G2A、 G2B线性译码部分译码 第六章 计算机接口技术一、计算机的接口1. 接口的基本结构2. 接口的电路信号 接口对外设连接的信号要求1)数据信号(1)数字量 : 通常为 8位二进制数或 ASCII 代码。(2)模拟量 : 计算机检测、数据采集或控制的大量的现场信息等(3)开关量:一些“ 0”或“ 1”两个状态的量2)状态信号状态信
47、息是反映外设当前所处工作状态的信息,以作为CPU与外设间可靠交换数据的条件。3)控制信号:用于控制外设的启动或停止。二、数据传输方式1. 无条件的程序传送方式 定义:用程序定时用IN 或 OUT指令进行信息的输入或输出。条件:外设随时都处于数据(设备)准备好状态,无须检测器状态。2. 程序查询传送方式1)查询输入(1)接口电路2)程序流程3)程序编码POLL: IN AL,STATUS_PORT ; 读状态端口的信息TEST AL,80 ; 设“准备就绪” (READY)信息在 D7 位JE POLL ;未“准备就绪”,则循环再查IN AL,DATA_PORT ;已“准备就绪” (READY=
48、1), 则读入数据说明:POLL:标号; IN:操作码; AL:累加器; STATUS_POR:T符号地址; TEST:检测; JE POLL : 条件转移,结果是 0 则返回;2)查询输出(1)接口电路(2)程序流程(3)查询部分的程序为:POLL:IN AL , STATUS_POR;T从状态端口输入状态信息TEST AL, 80H;检查 BUSY位JNE POLL; BUSY则循环等待MOV AL, STORE;否则,从缓冲区取数据OUT DATA_POR,TAL;从数据端口输出其中, STATUS_POR是T 状态端口的符号地址; DATA_POR是T 数据端口的符号地址; STORE
49、是存放数据单元的地址偏移量。3. 中断传送方式所谓中断是外设或其他中断源中止CPU当前正在执行的程序 , 而转向为该外设服务 (如完成它与 CPU之间传送一个数据)的程序 , 一旦服务结束,又返回原程序继续工作。中断传送方式的好处是:大大提高了CPU的工作效率。4、DMA传送方式( Direct Memory Access )方式第七章 可编程接口芯片技术一、可编程并行接口芯片 8255A8255A是 Intel 公司生产的可编程并行 I/O 接口芯片,有 3个 8位并行 I/O 口,共24 位,其各端口工作方式由软件编程设定。8255A是应用最广泛的可编程并行接口芯片,使用方便,通用性强。1
50、.8255A 的内部结构及引脚功能8255A是 40 个引脚双列直播插式芯片, 有三个可存取数据的端口, 分别是 A口、B口、C口, 可以通过编程来设置其工作方式;有一个控制端口,可以通控制端口设置 8255A 数据端口 的工作方式。2. 8255A 的工作方式A 口可工作于方式 0 、方式 1、方式 2B 口可工作于方式 0 、方式 1C口只能工作于方式 01) 方式 0基本输入输出在方式 0 下,每一个端口都作为基本的输入或输出口,端口C 口的高 4 位和低 4 位以及端口 A口、端口 B 都可独立地设置为输入口或输出口。2) 方式 1单向选通输入输出三个数据端口分为 A、B两组,分别称为
51、 A 组控制和 B组控制。端口 A 和端口 B 仍作为 数据的输入或输出口,端口 C作为联络控制信号,被分成两部分,一部分作为端口 A 和端 口 B 的联络信号,另一部分仍可作为基本的输入输出口。3) 方式 2双向选通输入输出端口 A的方式 2 可使 8255A与外设进行双向通信,既能发送数据,又能接收数据。可 采用查询方式和中断方式进行传输。的编程1) .8255A 的控制字(1 )方式选择控制字(2) 端口 C 置位 / 复位控制字【例】设 8255A的 A口和 B口工作在方式 0,A口作为输入端口,接有 8个开关; B口为输 出端口,接有 8 个发光二极管。系统硬件电路如图所示,不断扫描
52、开关 Ki ,当开关 K0闭合 时,点亮 LED0、LED2、LED4、LED6,其它 LED暗;当开关 K1 闭合时,点亮 LED1、LED3、 LED5、 LED7,其它 LED暗;当开关 K0和 K1同时闭合时退出。设 8255A 端口 A、端口 B、端 口 C 及控制端口的地址分别为 200H203H。试编写程序。解:首先确定工作方式控制字。根据题意,A 口为输入端口, B 口输出端口,均工作在方式0 下,端口 C没使用,设没有用到的控制字中对应位设置为0,所以 8255A 的控制字为:CODE SEGMENTASSUME CS:CODESTART:MOV AL,90H ; 8255
53、初始化MOV DX,203HAGAIN:MOV DX,200HIN AL,DXTEST AL,03H ; 检测 K0 K1JZ EXITTEST AL,01H ;检测 K0JZ DISP_0TEST AL,02HJZ DISP_1JMP AGAINDIAP_0: MOV AL,55HMOV DX,201HOUT DX,ALJMP AGAINDIAP_1: MOV AL,0AAHMOV DX,201HOUT DX,ALJMP AGAIN;检测 K1;偶位上 LED亮,奇位上;奇位上 LED亮,偶位上LED暗LED暗EXIT: MOV AH,4CHINT 21HCODE ENDSEND START
54、小结:支持哪几种传送方式?答:支持无条件的程序传送方式、程序查询传送方式、中断传送方式 3 种传送方式。2. 支持多少条单元、地址、地址线?答: 4 条单元, 2 条地址, 2 条地址线。个单元地址值如何确定?答:通过 2条地址 A0、A1 确定。4. 假设 A、B、C都工作在方式 0,8255 接一个外设,能否实现查询传递,原因是什么,怎么 实现?答:方式 0: 基本的输入输出工作方式方式 0 有以下特点:任何一个端口都可用作输入或输出。由 A口、B口、C口高 4位与 C口低 4位 4组组合成不同的输入 /输出组态。方式 0 只能用无条件传送或按查询方式传送。所以,能实现,将 A口与 B口作
55、为数据端口,将 C口的 4 位规定为控制信号输出口,另外 4 位规定为状态输入口,用 C口配合 A口与 B 口工作。二、可编程定时器 / 计数器 82538253 是 Intel 公司生产的通用可编程定时 / 计数器,定时时间与计数次数由用户事 先设定。8253 的读/ 写操作对系统时钟没有特殊的要求,可应用于由任何一种微处理器组成 的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单 脉冲发生器等。的内部结构及引脚功能2) 8253 的引脚功能8253 采用双列直插式封装,有 24 个引脚。3) 8253 的工作方式8253 的每个计数器都有 6 种工作方式:方式 0方式 5。 这 6 种工作方式的不同点是:输出波形不同启动计数器的触发方式不同计数过程中 GATE信号对计数过程的影响不同4) 8253 的初始化(1) 8253 方式控制字(2)8253 初始化编程8253 初始化编程步骤是:先写控制字到 8253 的控制端口。再写计数器初值到相应的计数器端口。例:在 8086 系统中,设 825
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初三物理面试题及答案
- 高考数学“三角函数”最值与范围问题专题突破-从“套公式”到“建模型”拿全这12分
- 护理查房:患者活动与康复指导
- 护理学课件学习论坛比较
- 护理操作规程演示与讲解
- 护理文件书写的伦理考量
- 多发伤患者的泌尿系统并发症护理
- 护理课件制作内容组织
- 2026年正规软文推广平台权威:豆包合规检测99.8%通过率字节系生态GEO优化的专业之选-正规软文推广平台GEO能力测评与选型指南
- 建设用地审批、征收、供应、储备部分审计操作
- 林业3S技术课件
- 熔化焊接与热切割作业-焊接与热切割作业基础知识
- 虚拟现实VR全景制作合同协议
- Project 2024培训教程资料
- 媒介经营与管理完整课件
- 两法两条例主题班会
- 剪刀车周检表、升降平台小车检表
- 20S515 钢筋混凝土及砖砌排水检查井
- 高血压药物如何选择
- 装饰工程重难点分析及应对措施
- 少年查必良伤人事件
评论
0/150
提交评论