微机原理,8086
- 格式:doc
- 大小:33.00 KB
- 文档页数:3
8086的工作原理8086微处理器是一种基于x86指令集架构的微处理器。
它采用了复杂指令集计算机(CISC)架构,具有16位数据总线、20位地址总线和8位数据总线。
其工作原理可以概括如下:1. 取指令(Instruction Fetch):8086从内部或外部的存储器中获取指令。
首先,它将程序计数器(PC)指向下一条要执行的指令的地址。
然后,根据PC中存储的地址,将指令从存储器中读取到指令寄存器(IR)中。
2. 指令译码(Instruction Decode):8086将从指令寄存器中取得的指令进行解码,确定指令类型以及需要的操作数。
3. 操作数获取(Operand Fetch):根据指令译码的结果确定需要的操作数,并从内部或外部存储器中获取这些操作数。
8086可以以不同的寻址方式访问存储器。
4. 执行指令(Execute):根据指令的操作码和所获得的操作数,在算术逻辑单元(ALU)中执行相应的操作。
这可能包括运算、转移、逻辑操作等。
5. 存储结果(Result Storage):计算后的结果可以存储在寄存器中,也可以写入内部或外部存储器。
除了以上的基本步骤外,8086还包括一些附加的功能。
例如,它具有分段机制,可以将内存分割为多个段,并使用段寄存器和偏移量来访问内存。
它还具有中断和异常处理机制,可以响应外部设备的中断请求并进行相关的处理。
此外,8086还包括了一些特殊寄存器,如标志寄存器(FLAGS)用于存储和判断运算结果的条件。
总的来说,8086微处理器的工作原理涉及指令的获取、解码、操作数的获取、指令的执行以及结果的存储等多个步骤,通过这些步骤完成了对指令的执行和数据的处理。
proteus 8086 微机原理
Proteus是一款常用的电子设计自动化(EDA)软件,可用于模拟和验证电路设计。
8086微机原理是指Intel 8086微处理器的基本原理和工作原理。
在Proteus中,您可以使用电路模拟功能来模拟8086微处理器的工作原理。
您可以通过添加组件、连接线路、设置输入输出等操作,构建一个完整的8086微处理器电路,并通过仿真来验证其功能。
Proteus还提供了丰富的工具和功能,如波形显示、逻辑分析仪、示波器等,可以帮助您更好地理解和分析8086微处理器的工作原理。
如果您需要更详细的关于Proteus和8086微机原理的信息,请告诉我您具体想要了解的内容,我会尽力回答。
第二章8086体系结构与80x86CPU1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。
指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。
总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。
2.8086CPU预取指令队列有什么好处?8086CPU内部的并行操作体现在哪里?答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。
从速度上看,该指令队列是在CPU 内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。
8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。
3.8086CPU中有哪些寄存器?各有什么用途?答:指令执行部件(EU)设有8个16位通用寄存器AX、BX、CX、DX、SP、BP、SI、DI,主要用途是保存数据和地址(包括内存地址和I/O端口地址)。
其中AX、BX、CX、DX主要用于保存数据,BX可用于保存地址,DX还用于保存I/O端口地址;BP、SI、DI主要用于保存地址;SP用于保存堆栈指针。
标志寄存器FR用于存放运算结果特征和控制CPU操作。
BIU中的段寄存器包括CS、DS、ES、SS,主要用途是保存段地址,其中CS代码段寄存器中存放程序代码段起始地址的高16位,DS数据段寄存器中存放数据段起始地址的高16位,SS堆栈段寄存器中存放堆栈段起始地址的高16位,ES扩展段寄存器中存放扩展数据段起始地址的高16位。
8086/8088指令系统记忆表
我现将指令系统中各种助记符的英文全名写出来,各种助记符的记忆就会变得很简单o(∩_∩)o...
一、数据传送指令
1.通用数据传送指令
MOV(Move)传送
PUSH(Push onto the stack)进栈
POP(Pop from the stack)出栈
XCHG(Exchange)交换
2.累加器专用传送指令
IN(Input) 输入
OUT(Output) 输出
XLAT(Translate) 换码
3.有效地址送寄存器指令
LEA(Load effective address) 有效地址送寄存器
LDS(Load DS with Pointer) 指针送寄存器和DS
LES(Load ES with Pointer) 指针送寄存器和ES
4.标志寄存器传送指令
LAHF(Load AH with flags) 标志送AH
SAHF(store AH into flags) AH送标志寄存器
PUSHF(push the flags) 标志进栈
POPF(pop the flags) 标志出栈
二、算术指令
1.加法指令
ADD(add) 加法
ADC(add with carry) 带进位加法
INC(increment) 加1
2.减法指令
SUB(subtract) 减法
SBB(subtract with borrow) 带借位减法
DEC(Decrement) 减1
NEG(Negate) 求补
CMP(Compare) 比较
3.乘法指令
MUL(Unsigned Multiple) 无符号数乘法
IMUL(Signed Multiple) 带符号数乘法
4.除法指令
DIV(Unsigned divide) 无符号数除法
IDIV(Signed divide) 带符号数除法
CBW(Convert byte to word) 字节转换为字
CWD(Contert word to double word) 字转换为双字
三、逻辑指令
1.逻辑运算指令
AND(and) 逻辑与
OR(or) 逻辑或
NOT(not) 逻辑非
XOR(exclusive or) 异或
TEST(test) 测试
2.移位指令
SHL(shift logical left) 逻辑左移
SAL(shift arithmetic left) 算术左移
SHR(shift logical right) 逻辑右移
SAR(shift arithmetic right) 算术右移
ROL(Rotate left) 循环左移
ROR(Rotate right) 循环右移
RCL(Rotate left through carry) 带进位循环左移
RCR(Rotate right through carry) 带进位循环右移
四、串处理指令
1.与REP相配合工作的MOVS,STOS和LODS指令
REP(string primitive) 重复串操作直到(CX)=0为上
2.串传送指令
MOVS (move string) 串传送指令
3.
STOS 存入串指令
CLD(Clear direction flag) 该指令使DF=0,在执行串操作指令时可使地址自动增量;
STD(Set direction flag) 该指令使DF=1,在执行串操作指令时可使地址自动减量.
五、控制转移指令
1.无条件转移指令
JMP(jmp) 跳转指令
2.条件转移指令
(1)根据单个条件标志的设置情况转移
JZ(或JE)(Jump if zero,or equal) 结果为零(或相等)则转移
JS(Jump if sign) 结果为负则转移
JNS(Jump if not sign) 结果为正则转移
JO(Jump if overflow) 溢出则转移
JNO(Jump if not overflow) 不溢出则转移
JNP(或JPO)(Jump if not parity,or parity odd)
奇偶位为0则转移
JP(或JPE)(Jump if parity,or parity even) 奇偶位为1则转移
JB(或JNAE,JC)(Jump if below,or not above or equal,or carry)低于,或者不高于或等于,或进位位为1则转移
JNB(或JAE,JNC)(Jump if not below,or above or equal,or not carry)不低于,或者高于或者等于,或进位位为0则转移
(2)比较两个无符号数,并根据比较的结果转移
JB(或JNAE,JC)
JNB(或JAE,JNC)
JBE(或JNA)(Jump if below or equal,or not above)低于或等于,或不高于则转移
JNBE(或JA)(Jump if not below or equal,or above)不低于或等于,或者高于则转移
(3)比较两个带符号数,并根据比较的结果转移
JL(或LNGE)(Jump if less,or not greater or equal)小于,或者不大于或者等于则转移JNL(或JGE)(Jump if not less,or greater or equal)不小于,或者大于或者等于则转移JLE(或JNG)(Jump if less or equal,or not greater)小于或等于,或者不大于则转移
JNLE(或JG)(Jump if not less or equal,or greater)不小于或等于,或者大于则转移
(4)测试CX的值为0则转移指令
JCXZ(Jump if CX register is zero) CX寄存器
3.循环指令
LOOP(loop) 循环指令
4.子程序
CALL(call) 调用指令
RET(return) 返回指令
5.中断
INT(interrupt)指令
IRET(interrupt return) 从中断返回指令
INTO(interrupt if overflow) 若溢出则中断
六、处理机控制指令
1.标志处理指令
CLC(Clear carry) 进位位置0指令CF<-0
CMC(Complement carry) 进位位求反指令CF<-CF
STC(Set carry) 进位位置1指令CF<-1
CLD(Clear direction) 方向标志置0指令DF<-0
STD(Set direction) 方向标志置1指令DF<-1
CLI(Clear interrupt) 中断标志置0指令IF<-0
STI(Set interrupt) 中断标志置1指令IF<-0
2.其他处理机控制指令
NOP(No Opreation) 无操作
HLT(Halt) 停机
W AIT(Wait) 等待
ESC(Escape) 换码
LOCK(Lock) 封锁。