微计算机组成的五个部分:运算器,控制器,存储器,输入设备,输入设备。
微计算机的工作原理:
第一步:由输入设备将事先编好的程序和原始数据输入到存储器指定的单元存放起来。并在存储器中或出存放中间
结果和最终结果的单元。
第二步:启动计算机从第一条指令开始执行程序。
第三步:将最终结果直接由运算器或存储器经输出设备输出。 第四步:停机。
8086微处理器的内部结构:从功能上讲,由两个独立逻辑单元组成,即执行单元EU和总线接口单元BIU。
1、 执行单元EU包括:4个通用寄存器(AX,BX,CX,DX,每个都是16位,又可拆位2个8位) 4个从专用寄存器(BP,SP,SI,DI)
标志寄存器FLAG(6个状态标志和3个控制标志) 算术逻辑单元ALU
EU功能:从BIU取指令并执行指令;计算偏移量。
2、 总线接口单元BIU包括:4个16位段寄存器(CS,DS,ES,SS)
16位指令指针寄存器IP
20位地址加法器
6字节(8088位4字节)的指令队列
BIU功能:形成20位物理地址;从存储器中取指令和数据并暂存到指令队列寄存器中。
3、执行部件EU和总线接口部件BIU的总体功能:提高了CUP的执行速度;降低对存储器的存取速度的要求。
8086/8088CPU内部寄存器:
设置段寄存器原因:8086/8088系统中,需要用20位物理地址访问1MB的存储空间,但是8086/8088CPU的每个地
址寄存器都只是16位,因而采用分段存储结构,每个逻辑段的最长度为64KB。
8086MN/MX 引脚作用:选择工作模式。MN/MX=’1’为最小模式;MN/MX=’0’为最大模式。
段内偏移地址又称为有效地址EA。
存储单元地址(以字节为单元)分为逻辑地址和物理地址。
逻辑地址=段基址(16):偏移地址(16)=CS:IP
DS×10H+SI/DI/BX
物理地址PA=段基址×10H+偏移地址EA= SS×10H+SP/BP
CS×10H+IP
I/O端口地址:I/O空间不分段。
8086用16条AB,I/O空间为64KB。
8088用10条AB,I/O端口为1024个字节端口。 8086/8088采用独立编制方式,采用IN,OUT指令。
8086/8088指令寻址方式:
1、隐含寻址
2、立即寻址:MOV BL,50H ;将8位立即数50H传送到寄存器BL中。
MOV AX,2000H ;将16位立即数2000H传送到累加器AX中。
3、寄存器寻址:MOV BX,CX ;将CX寄存器中的内容复制到BX中。
MOV DS,AX ;将AX中的内容复制到DS段寄存器中。
4、存储器寻址:
直接寻址:MOV AX,DS:[2000H] 或MOV AX,[2000H];将存储器中逻辑地址DS:2000H字节单元的内
(求出的物理地址所对应的单元内容)传送到AX。
寄存器间接寻址:MOV AX,[BX]或[BP]或[SI]或[DI];[ ]内存放的是AX所需数据的有效地址。所以是先求物
理地址,再将它所对应的单元内容传送到AX。
寄存器相对寻址 :MOV AX,[BX+5]或MOV AX,5[BX];先求物理地址,再将它所对应的单元内容传送到AX。
MOV AX,DATA[BX]或MOV AX,[BX+DATA];
基址变址寻址:MOV AX,[BX/BP][SI/DI]或MOV AX,[BX/BP+SI/DI];同上
相对基址变址寻址:MOV AX,1234H [BX+SI]或MOV AX,[BX+SI+1234H];同上 MOV AX,DATE [BX+SI]或MOV AX,[BX+SI+DATE];同上
8086/8088指令系统:
3.3.1 数据传送类指令:
1、通用传送指令
(1)一般传送指令——MOV
(2)数据交换指令——XCHG
指令格式:XCHG DST, SRC;
XCHG REG/M,REG XCHG REG, REG/M
例:实现存储单元MEM1和MEM2之间内容交换的几种方案。
MOV AX, MEM1 XCHG AX, MEM2 MOV MEM1,AX
(3)入栈、出栈指令——PUSH、POP
① PUSH(入栈)指令:将需要暂存的信息压入堆栈。
指令格式:PUSH src; 例句:PUSH AX
PUSH CS
PUSH DATE[SI]
② POP(出栈)指令:将信息从堆栈中弹出恢复到原处。
指令格式:POP DST 例句:POP BX
POP ES
POP MEM[DI]
PUSH CS指令是合法的,但POP CS是非法的。 ③ 堆栈操作的特点:先进后出或者后进先出 ④ 堆栈操作过程,改堆栈指针SP。
入栈,SP减2,使SP始终指向栈顶。例句:PUSH AX;SP←SP-2,SP←AL,SP+1←AH 出栈,SP加2,使SP始终指向栈顶。例句:POP BX;SP←SP+2,SP←BL,SP+1←BH
(4)查表转换指令——XLAT
指令格式:XLAT SRC-TAB
XLAT TAB; 表格在DS段
XLAT; 表名无实际意义,可缺省 XLAT ES:TAB;表格在ES段
2、输入、输出指令——IN、OUT (1)指令——IN
指令格式:IN 累加器,端口地址
IN AC,PORT;
例句:IN AL,20H;从20H端口输入一个字节至AL
IN AX,20H;从20H和21H端口输入一个字至AX IN AL,DX IN AX,DX
(2)输出指令——OUT
指令格式:OUT 端口地址,累加器
OUT PORT,AC
例句:OUT 20H,AL;将AL中一字节输出到端口
OUT 20H,AX;将AX中一个字输出到端口
3、目的地址传送指令——LEA
LEA——将16位有效地址装入通用寄存器。
指令格式:LEA Reg,Mem16; Reg通用寄存器,Mem存储器操作数
例句: LEA SP,[0500H]; SP←0500H
LEA BX,[BX+SI+06H];BX←BX+SI+06H LEA BX,AREA; AREA是变量名
3.3.2 算术运算类指令
8位二进制:有符号-128~+127;无符号0~255
16位二进制:有符号-32768~+32767;无符号0~65535 有进位:CF=1。有溢出:OF=1
1、加法指令
(1)不带进位加法指令——ADD
指令格式:ADD Acc,data
ADD mem/reg1,data
ADD mem/reg ,mem/reg2 举例: MOV CL,0E5H;CL=0E5H
ADD CL,0A4H;CL=0E5H+0A4H=89H
(2)带进位加指令——ADC
指令格式:ADC mem/reg,data
ADC mem/reg1,mem/reg2
例句: ADC AL,78H ; AL←AL+78H+CF
ADC AX,CX ; AX←AX+CX+CF
ADC BX,WORD PTR[DI] ;BX←BX+[DI+1][DI]+CF
(3)加1指令——INC
程序段如下:
MOV CX,4; 设置循环次数为4 MOV SI,0; 将SI的初值设置为0 CLC; 将进位标志CF清零
LOP:MOV AL,BUF2[SI]; 取BUF2存储区0号单元内容到AL
ADC BUF1[SI],AL ; 带进位加
INC SI; SI←SI+1 修改操作数地址 DEC CX; CX←CX-1 修改循环次数
JNZ LOP; 若(CX)≠0,则转LOP,程序将再执行一次
HLT
2、减法指令
(1)不带借位减法指令——SUB (该指令影响标志位)
指令格式: SUB DST,SRC;
SUB MEM/REG, DATA SUB MEM/REG1, REG2
指令功能: DST ←DST—SRC
(2)带借位减法指令——SBB (本指令主要用于多字节数减法运算)
指令格式: SBB DST,SRC
SBB MEM/REG1,MEM/REG2
指令功能: DST ←DST—SRC—CF
例句: SBB AX,CX; AX←AX-CX-CF
SBB WORD PTR [SI],2050H; [SI+1][SI] ← [SI+1][SI]-2050H-CF SBB [SI],DX; [SI] ←[SI]-DX-CF
(3)减1指令——DEC (该指令对进位位CF无影响)
指令格式: DEC DST
DEC MEM/REG
指令功能: DST ←DST—1
例句: DEC BYTE PTR [DI+2]
(4)求补指令——NEG (本指令的操作是用“0”减去目的操作数,结果送回目的操作数)
指令格式: NEG DST
NEG MEM/REG
指令功能: DST ← 0—DST
(5)比较指令——CMP(完成两个操作数的相减,可用来比较两数是否相等。常用于分支程序设计及循环程序设
计中。)
指令格式:CMP DST,SRC
指令功能:DST—SRC 两个操作数相减,但不回送结果,只置标志位
例句 CMP AL,0AH
CMP CX,SI
CMP DI,WORD PTR [BX][SI]; 3、 乘法指令
被乘数隐含在AL或者AX中。
8位*8位:16位乘积在AX中,AH为高8位,AL为低8位。 16位*16位:32位乘积中,低16位在AX中,高16位在DX中。 (1)无符号数乘法指令——MUL
指令格式:MUL SRC
MUL MEM/REG
例句: MUL CX; DX:AX←AX*CX
MUL WORD PTR [SI] ; AX内容与SI所指字单元内容相乘
程序段如下:MOV AX,4802H
MOV BX,503AH MUL BX
MOV [0510H],AX MOV [0512H],DX
4、除法指令
被除数隐含在AX(字节除)或者DX:AX(字相除)中。 被除数的字长必须两倍于除数。 字节除:AC/SRC(8位),8位商在AL,余数在AH。 字相除:DX:AX/SRC(16位),16位商在AX,余数在DX
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库微机原理——期末总复习资料在线全文阅读。
相关推荐: