微机原理(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.8086处理器组成:总线接口单元(BIU),执行单元(EU)
总线接口部件的组成:
(1)4段寄存器(CS,DS,ES,SS)
(2)16位指令指针寄存器IP。
(3)20位的地址加法器。
(4)六字节的指令队列缓冲器。
功能:
(1)从内存取指令送到指令队列。
(2)CPU执行指令时,到指定的位置取操作数,并将其送至要求的位置单元中。
执行部件组成:
(1)4个通用寄存器都是16位或作两个8位来使用。(AX、BX、CX、DX)
(2)4个专用寄存器(SP BP DI SI)
(3)算术逻辑单元ALU
完成8位或者16位二进制算术和逻辑运算,计算偏移量。
(4)数据暂存寄存器
协助ALU完成运算,暂存参加运算的数据。
(5)执行部件的控制电路
从总线接口的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制ALU数据流向。
(6)标志寄存器16位寄存器,其中有7位未用。
功能:
(1)从指令队列中取出指令。
(2)对指令进行译码,发出相应的控制信号。
(3)接收由总线接口送来的数据或发送数据至总线接口。
(4)进行算术运算。
2.8086CPU的奇偶存储体结构P34
8086从奇地址访问:2个总线周期
从偶地址访问:1个总线周期
3.8086 1MB(220)的存储空间最多可分为216个段,每段最小容量24字节;最多可分为24个段,每段最大容量216字节(64KB)
4.8086重要引脚的功能:不全,见P29
MN/MX:最小/最大模式选择。
MN//MX=1,表示CPU工作在最小模式系统;
MN//MX=0,表示CPU工作在最大模式系统。。
M/IO:存储器,I/O端口选择。
M//IO=1,表示CPU正在访问存储器;
M//IO=0,表示CPU正在访问IO端口。
A0:低8位数据选择
BHE:高8位数据选择
/RD:读信号,三态输出,低电平有效。
/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。
/WR:写信号,三态输出,低电平有效。
/WR=0,表示当前CPU正在对存储器或I/O端口进行写操作。
DT//R:数据发送/接收控制信号
DT//R=1,发送数据----写操作;
DT//R=0,接收数据----读操作。
5.微机的主要性能指标:字长,主频,运算速度,主存容量
6.字长是微处理器一次可以直接处理的二进制数码的位数,它通常取决于微处理器内部通
用寄存器的位数和数据总线的宽度。
8086:16位CPU。8088:准16位CPU。80386,80486,Pentium32位CPU
7奇偶校验:
在通信中将最高位(D7位)用作奇偶校验位。
偶校验:包括校验位在内的8位二进制数码中1的个数为偶数。
奇校验:包括校验位在内的8位二进制数码中1的个数为奇数。
例:字母A的ASCII码为1000001,偶校验码为01000001,奇校验码为11000001。
8.寄存器分组及主要功能P24
8086CPU中有哪些寄存器?各有什么用途?
包含4组16位寄存器,分别是通用寄存器、指针和变址寄存器、段寄存器、指令指针和标志寄存器
通用寄存器:4个16位数据寄存器以存放普通数据和地址,也有特殊用途如
AX(AL)用于输入输出指令,乘除法指令;
BX在间接寻址中用作基址寄存器,用来存放偏移地址;
CX在串操作和循环指令中用作计数器,用于控制循环程序的执行次数
DX用于乘除法指令和I/O端口操作等。
指针和变址寄存器:BP,SP,SI,DI在间接寻址中用于存放基址和偏移地址。
段寄存器:DS,CS,SS,ES,存放数据段,代码段,堆栈段,附加段的段地址
指令指针寄存器IP:用来存放将要执行的下一条指令在现行代码段中的偏移地址。
标志寄存器FLAGS:用来存放运算结果的特征。
9.存储器容量存储容量=存储器单元数×每单元二进制位数
存储范围计算:
例1(存储器接口分析):已知一个存储器子系统如下图所示,试指出其中RAM和EPROM的存储容量以及各自的地址范围。
RAM的存储容量为2KB,地址范围为F9000H~F97FFH或
F9800H~F9FFFH。
EPROM的存储容量为4KB,地址范围为FD000H~FDFFFH。
10.汇编语言编程
例1:当X﹥0时,Y=1;当X=0时,Y=0;当X﹤0时,Y=﹣1。试编写程序完成这一功能。
DATA SEGMENT ;段定义语句P119 data段名 segment+ends
X DB ?;伪指令DB定义字节变量,DW字变量,DD双字变量
Y DB ?伪指令格式:名字伪指令符操作数;注释
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA ;段分配语句P120,4个段寄存器分别与哪个段有关,
各段段名用段定义segment和ends定义过的段名
START:MOV AX,DATA ;立即数不能直接传送给段寄存器P62
MOV DS,AX
MOV AL,X
CMP AL,0 ;P75比较
JGE NEXT1 ;P102 JGE/JNL:带符号数大于等于/不小于转移
MOV AL,0FFH ;小于0 16进制数字以A-F开头前面必加0区别 JMP EXIT
NEXT1:JE NEXT2 ;等于0 P101 JZ/JE :结果为零/相等转移
MOV AL,1 ;大于0
JMP EXIT
NEXT2:MOV AL,0
EXIT: MOV Y,AL
MOV AH,4CH ;返回操作系统 P127这种方式程序不要写成proc形式只
需给出assume语句,接下来直接给出要执行的指令语句
start,代码段结束前就可以返回操作系统
INT 21H
CODE ENDS
END START ;end:程序结束语句
例2:编制计算下面函数的程序(X、Y均为带符号字节数):当X≥0、Y≥0时,Z=1;当X、Y均为负数时,Z=-1;当X、Y异号时,Z=0。
DATA SEGMENT
X DB -8
Y DB 90
Z DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
CMP X,0
JL L1 ;P102 JL/JNGE:小于/不大于等于,X小于0,转L1
CMP Y,0
JL L2 ;Y小于0,转L2
MOV Z,1 ;X、Y均大于或等于0
JMP EXIT
L1:CMP Y,0
JGE L2 ;Y大于等于0,转L2
MOV Z,-1 ;X、Y均为负数
JMP EXIT
L2:MOV Z,0 ;X、Y异号
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START