微机原理小结Word下载.docx

上传人:b****5 文档编号:18926924 上传时间:2023-01-02 格式:DOCX 页数:20 大小:42.43KB
下载 相关 举报
微机原理小结Word下载.docx_第1页
第1页 / 共20页
微机原理小结Word下载.docx_第2页
第2页 / 共20页
微机原理小结Word下载.docx_第3页
第3页 / 共20页
微机原理小结Word下载.docx_第4页
第4页 / 共20页
微机原理小结Word下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

微机原理小结Word下载.docx

《微机原理小结Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理小结Word下载.docx(20页珍藏版)》请在冰豆网上搜索。

微机原理小结Word下载.docx

|指令

通用传输指令

moval,bh(立即数不能做目的,两个操作数不能同时为存储器寻址所有的双操作数指令都是)

堆栈操作指令

pushax;

popbx(先进后出,不能对cs中内容操作,不能对立即数操作,不支持8位操作)

交换指令

xchgal,bl(调换内容)

累加器专用指令(只能用ax或al)

输入输出指令

inax,20h;

out20h,al(当端口号大于255的时候必须先给dx再使用)

加法指令

addax,bx;

adcax,bx(带进位位结果放在前面的操作数中);

incbx自增(不影响cf)

减法指令

subax,bx;

sbbax,bx(带借位位)

decax(自减)

negax(求补码)

cmpax,bx(只用于设标记位没有结果输出,一般用于条件转移)

例:

设x,y,z为双精度数,分别放在x,x+2,y,y+2,z+2中编程实现w<

--x+y+24-z。

movaxx;

movdx,d+2;

addax,y;

adcdx,y+2;

addax,24;

adcdx,0;

subax,z;

sbbdx,z+2;

movw,ax;

movw+2,dx;

乘法指令

mulbx(无符号乘法另一个乘数在al中结果放在ax中,如果操作数是16位的另一个乘数在ax中,结果放在dx,ax中)

imulbx(有符号乘法)

除法指令

divbx(无符号除法8位操作数被除数在ax中商在al中余数在ah中,16位除法被除数在dx,ax中,商在ax中余数在dx中)

idivcl(有符号除法)(当被除数与除数都为8位时应把被除数设为16位高8位清零或者符号位扩展,用指令cbw,若为dx扩展则用cbd)

(v-(x*y+z-540))/xx,y,z,v都为16位的有符号数,均放在相应x,y,z,v地址中,把结果商送到ax中,余数放入dx中

movax,x;

imuly;

movcx,ax;

movbx,dx;

movax,z;

cwd;

addcx,ax;

adcbx,dx;

subcx,540;

sbbbx,0;

movax,v;

subax,cx;

sbbdx,bx;

idivx;

逻辑运算指令

andax,bx(与运算)

orax,bx(或运算)xorax,bx(异或运算)

notax(非运算不设条件码)(结果都在前面的操作数中)

testax,bx(与运算但是没有结果输出,只有条件码的设定)

移位指令

saldx,1shl(当不是一位的时候必须放在cl中再使用)cf0;

sarshrrolrorrclrcr

16位的w,x,y操作数对应的地址为w,x,y(内存)

(1)zw+(z-x);

(2)z(w*x)/(y+6)余数给r;

(1)movax,z;

subax,x;

addax,w;

movz,ax;

(2)movax,x;

imulw;

addy,6;

idivy;

movr,dx;

串处理指令:

与前缀rep配合使用

(1)(cx)=0推出指令

(2)(cx)!

=0(cx)=(cx)-1

(3)执行其后的串处理指令

(4)返回

(1);

movsb含义为((di))((si));

(di)+-1(si)+-1(具体是加是减由df决定df=0则加df=1则减;

CLD使df置0STD使df置1)

movsw与上一条指令基本相同但是为字操作stosb((di))(al)(di)+-1stosw与上一条指令意义相同但是为字操作;

repe与上一个前缀大体相同,但是相等则循环

renpe,不相等则循环

cmpsb((di))-((si))(di)+-1(si)+-1

cmpsw为字操作

scasb(al)-((di))

scasw为字操作

转移指令

1.无条件转移jmp;

对于无符号数比较:

小于(jb.jc.jnae)

大于等于(jnb.jnc.jae)

小于等于(jbe.jna)大于(jnbe.Ja);

有符号数比较:

小于(jlc.jnge);

大于等于(jnl.jge)

小于等于(jle.jng)

大于(jnle.jg);

|伪操作:

定义数组arraydb567;

stringdb‘abc’(字符加撇);

arraydb5

dup

(1):

5个1;

arraydb5dup(?

):

开辟5个空间不一定存什么。

z1=x1+y1;

z2=x2+y2;

z3=x3+y3;

z4=x4-y4;

z5=x5-y5;

z6=x6+y6;

z7=x7-y7;

z8=x8-y8;

z9=x9+y9;

z10=x10+y10;

答案:

xdw10dup(?

);

ydw10dup(?

zdw10dup(?

ddw327h;

movdxd;

movbxo;

movcx10;

start:

movaxx[bx];

SHRdx;

jcnext;

subaxy[bx];

jmpended;

nextaddaxy[bx];

ended:

movz[bx]ax;

addbx2;

loopstart;

stringdb‘’100位,是否有0-9数字,有cl第5位置1,没有置0;

答:

movbx0;

movdx100;

cmpstring[bx],39h;

jgnext;

cmpstring[bx]30h;

jlnext;

orcl20h;

jmpexit;

next:

addbx1;

decdx;

jnzstart;

andcl0DFH;

exit:

movax4C00H;

int21h;

……;

定义一个字数组,统计正负数的个数;

答:

stringdw100dup(?

movcx100;

movax,0;

movdx,0;

cmpstring[bx],0;

jgnext1;

jlnext2;

next1:

incax;

next2:

incdx;

addbx2;

定义一个字符串,在屏幕上逆序输出;

stringdb10‘abcdefghi’;

movbx9;

movdlstring[bx];

movah2;

decbx;

定义一个缓冲区,接受从键盘敲的数;

stringdb10dup(?

leabxarray;

movah1;

incbx;

把一个字数组中最小偶数取出放入ax;

movaxFFFFH;

textarray[bx]01H;

jnz:

next1;

cmpaxarray[bx];

jg:

next2;

movaxarray[bx];

数组定义及求累加和:

datasegment;

arraydw10,20,30……;

dataends;

codesegment;

assumecs:

code,

ds:

data;

movaxdata;

movdsax;

movcx,10;

movax,0;

movx,0;

begin:

addaxarray[bx];

oopbegin;

movax4c00h;

int21;

codeends;

endstart

第四章

内存

ROM只读存储器

ROM只能读,厂家刻;

PROM可一次写;

EPROM可多次写,紫外线擦;

E2PROM可多次写,电擦;

闪烁存储器容量大,读写速度快,电擦;

ROMBTOS存个外设的驱动程序,用闪烁存储器

RAM随即存储器

SRAM静态存储器

DRAM动态存储器

内存的行列结构:

假如要组成1Kb的内存,要用1024条译码线,用32×

32的矩阵排列只要32条行选择线和32条列选择线

DRAM刷新:

当RAS为低电平时,让列无效,传来数据写到行地址去,当CAS为低电平时,传来数据被写到列地址去,然后再进行行列寻址(分时传送)

8086一兆内存分区结构

【基本内存区,640K,地址为00000H-9FFFFH(DOS操作系统,DOS运行需要的系统数据,驱动程序,中断向量表)】

【高端内存区,384K,地址为A0000H-FFFFFH(系统ROM,外部设备适配卡缓冲区)】

【扩充内存区,后来扩充的内存区】}

SRAM(高速缓存)命中率高原因:

程序具有局部性原理

空间局部性:

程序是顺序执行的,将DRAM中的程序分块备份到SRAM中;

时间局部性:

程序循环决定的,循环执行以达到命中.

存储层次四个问题

(1)把一块调入高一层时,可放哪些位置(映像规则)

(2)所要访问的块在高一层通道时,如何找该块(查找算法)

(3)发生块失效时,替换那一块(替换算法)

(4)写访问时,进行哪些操作(更新策略)

映像规则:

全相联映像,直接映像,组相联映像

替换算法(全相联和组相联存在替换算法)

随机法(产生一个随机数,是哪替换哪)

先进先出法(先映像过来的先替换)最近最少使用(现在常用)

更新策略(对于写操作,命中后写入cache中,并未写入主存,当cache满后要替换,如恰替换掉写入的块中,则数据丢失,所以提出更新策略)

通写式(同时写入cache和主存,优点:

内容一致,不丢失,不会发生错误;

缺点:

速度慢)

缓冲通写式(同时写入cache和SRAM,cpu有空时将数据送入主存,解决了通写式缺点)

回写式(cache中的写入块要被替换前,先将其写回主存中的模块)

第五章:

为什么要用接口电路

1.对于一个具体设备,它的信息可能时数字的,可能是模拟的,而数字信号必须经过A\D接口转化为数字信号才能送到总线.

2.cpu是并行设备,而有些外设是串行设备,cpu和外设必须通过接口才能传递信息。

3.外设的速度比cpu低的多,接口起到缓冲作用。

数据传送方式:

程序方式:

1.无条件传送:

计算机确认外设已经准备就绪,就不必查询状态而直接进行传输。

2.条件传送方式:

cpu查询状态字,当查询到外设处于空闲状态,进行传输。

中断方式,DMA方式。

系统如何知道接口部件已经准备好数据等待cpu提取或准备接受cpu送来的数据?

在查询方式下是通过程序来检测接口中状态寄存器中的“准备好”位以确定当前是否可以进行数据传输;

在中断方式下当借口已经有数据或者准备好接收时会向cpu发送一个中断请求信号,如果cpu响应则开始运行中断处理程序实现传输;

在DMA模式下接口要传输数据时向DMA发送请求信号,DMA控制器再往cpu发送一个总线请求信号得到响应后开始传输

第六章

大多数可编程串口可以检测的错误:

奇偶校验错误,覆盖错误,信息帧格式错误;

8

251A由7部分组成

接收缓冲器、接收控制电路、发送缓冲器、发送控制电路、数据总线缓冲器、读写控制逻辑电路、调制解调控制电路;

与cpu之间的引脚:

CS,C/D,WR,RD,TxRDY,RxRDY,RESET,D0~D7,CLK,TxE;

与外设之间引脚:

RxD,TxD,DSR,DTR,CTS,RTS,SYNDET,RxC,TxC;

C/D,WR,RD配合使用(利用A1与C/D相连)

8251A有两个连续端口,奇地址对应控制寄存器,状态寄存器,同步字符寄存器偶地址对应数据寄存器(输入输出缓冲器)

TxRDY发送器准备好信号告诉cpu已经准备好发送一个字符(当CTS引脚为低电平,TxEN位为1发送缓冲器为空即TxE为1时为高电平);

TxE为高电平时发送器中并行到串行转换器空实际上指示了一个动作的完成,在同步方式下,不允许字符有空隙,所以当cpu来不及给8251A传数据时TxE为1;

RxRDY接收器准备好信号,等待cpu接收一个数据;

SYNDET:

只用于同步方式当作为输出时表示内同步已经完成,作为输入的时用于外部设备发送同步信息;

DTR数据终端准备好信号,由8251A送给外设,cpu可以通过指令设定,通知外部设备cpu已经就绪;

RTS由8251A给外设通知他cpu已经准备好发送;

DSR由外设给8251A表示外设已经准备好(会在状态位的第7位反应出来);

CTS由外设给8251A是低电平时8251A才能发送数据(不用时接地)

初始化约定:

第一次写奇地址写入模式字,如果同步写入同步字符,再写写入控制字,之后只要不复位就写入控制子。

模式字格式:

异步模式

s1|s2|EP|PEN|L2|L1|B2|B1

s1s2表示停止位数目:

00无意义,01一个停止位10一个半停止位11两个停止位;

EP;

0奇校验,1偶校验;

PEN0无校验1有校验;

L2L1:

数据位的数目00五位01六位10七位11八位;

B2B1:

00同步01波特率因子101因子为1610因子为64

同步模式

SCS|ESD|EP|PEN|L2|L1|0|0

SCS:

0两个同步字符,1一个同步字符;

ESD0内同步1外同步;

EP:

0奇校验1偶校验;

PEN0无校验位1有校验位;

数据位的数目00五位01六位10七位11八位

控制字

EH|IR|RTS|ER|SBRK|RxE|DTR|TxEN

EH:

搜索同步字符;

IR进行内部复位;

RTS:

使RTS为低电平;

ER使状态寄存器3个出错位复位;

SBRK使TxE为低电平从而间断发送;

RxE接收允许;

DTR:

使DTR输出低电平TxEN发送允许

状态寄存器

DSR|SYNDET|FE|OE|PE|TxE|RxRDY|TxRDY

DSR表示DSR引脚为低电平

SYNDET与同引脚电平相同;

FE指出帧格式错误;

OE指出超越错误;

PE指出奇偶性错误;

TxE:

与同引脚电平相同;

RxRDY与同引脚电平相同;

TxRDY:

为1时指出输出缓冲区为空此位不受CTS引脚和TxEN位影响;

8255A有三个八位数据端口A,B,C;

控制信号与传输动作的对应关系:

CS,A1,A0,RD,WR

传输说明

00001数据从端口A送数据总线;

00101数据从端口B送数据总线;

01001数据从端口C送数据总线;

00010数据从数据总线送端口A;

00110数据从数据总线送端口B;

01010数据从数据总线送端口C;

01110如D7为1,由数据总线往控制寄存器写入控制字;

为0,由数据总线输入的数据作为对C端口的置1/0命令;

×

D7-D0进入高阻状态;

01101非法信号组合;

11D7-D0进入高阻状态.

方式选择控制字

有三种基本工作方式:

方式0输入输出方式,方式1选通的输入输出方式,方式2双向传输方式)

C端口按位置1/置0控制字

方式选择控制字:

D7|D6|D5|D4|D3|D2|D1|D0

D7控制字标识位,为1是方式选择控制字,0是C端口置1/0控制字,这里为1;

D6,D5A组方式选择,00方式0,01方式1,0×

方式2;

D4为1端口A输入.为0端口A输出;

D3为1端口PC7-PC4输入,为0输出;

D2B组方式选择,0为方式0,1为方式1;

D1为1端口B输入,为0输出;

D0为1PC3-PC0输入,0输出

端口C按位置1/0控制字:

D7|D6|D5|D4|D3|D2|D1|D1

D7控制字标识位,为1是方式选择控制字,0是C端口置1/0控制字,这里为0;

D6,D5,D4无关;

D3-D1为一个二进制数,是几就把C端口的第几位置成和D0一样

D0为1将D3-D0所表示的端口1置1,0置0

8255A的工作方式

(1)方式0,特点:

任何一个均可作为输入、出端口,之间没有规定必然的联系;

(2)方式1,特点(也是与方式0的区别):

端口A,B中有一个工作于方式一,C中就有三位配合方式1工作的信号,另一个端口和C的其他位可工作于方式0用来输入或输出;

AB都工作于方式1时,C中有6位配合,剩余两位可用来输入输出.

输入时各引脚信号(有图):

STB选通信号输入端,外设送给8255A的,有效时,8255A接受外设送来的一个8位数据;

IBF缓冲器满信号8255A给cpu查询的状态信号,由STB使其置位,表示已有一个新数据在输入缓冲器中;

INTR,8255A给cpu的中断请求信号,STB和IBF均为高电平时被置为高电平,由RD下降沿使其变为低电平;

INTE,中断允许信号;

A组工作于方式1输入的控制字10111/0×

B组工作于方式1输入的控制字1×

1/011×

A和B工作于方式1输入的控制字10111/011×

;

输出时端口引脚信号:

OBF输出缓冲器满信号,8255A送给外设,通知外设取走数据,WR上升沿置成低电平,ACK有效信号使其恢复高电平.

ACK,外设送给8255A的响应信号,说明数据已经送到外设;

INTR当ACK信号发出后,8255A便向cpu发出新的中断请求信号,以便cpu再次输出数据.

A组工作于方式1输出的控制字10101/0×

B组工作于方式1输出的控制字1×

10×

(3)方式2,特点:

双向传输,只有端口A能工作在方式2,端口C要有5位配合;

INTRa中断请求信号,无论输入输出,当一个过程完成要进入下一过程8255A都通过这一引脚向cpu发中断请求信号;

STBa将外设送到8255A的数据送入输入锁存器;

IBFa8255送往cpu的信号,表示已有一个新的数据送到输入缓冲器等待cpu取走;

OBFa输出缓冲器满信号满信号,表示cpu已经将数据写入8255端口A,通知外设将其取走;

ACKa使8255输出缓冲器开启,,送出数据;

INTE1中断允许信号,为1,允许8255A由INTR给cpu发中断请求信号,通知cpu往端口A输出数据,为0屏蔽中断请求(由PC6控制);

INTE2中断允许信号,为1,端口A的输入处于中断允许状态(由PC4控制);

方式2的控制信号11×

D2(B组方式,1方式1,0方式0)

D1(端口B,1输入,0输出)

D0(PC2-PC0,1输入,0输出)

第七章:

中断控制器8259A:

工作过程:

外设请求(IRi)→IRR(中断请求寄存器)→IMR(中断屏蔽寄存器)→优先权裁决器(将ISR中最高的与之相比)→INT→执行完该指令且IF=1→响应INTA.~cup响应中断时发给8259两个负脉冲(第一个时完成三个动作,使IRR的锁存功能失效;

使当前中断服务器ISR中的相应位置1;

使IRR中的相应位清0.第二个时,将中断类型寄存器中的内容ICW2送到数据总线的D7-D0,cup将此作为中断类型码;

如果ICW4中的中断自动结束位为1,那么在第二个负脉冲结束时8259会将第一个负脉冲到来时在ISR的相应位清0.

引脚SP/PN双向的,作为输入时如为1则为主片,为0则为从片.

作为输出时如果采用缓冲方式则为输出(联结到总线驱动器上)

非缓冲方式则为输入.

8259A有七个八位寄存器(四个容纳初始化命令字ICW1-ICW4,三个用来容纳操作命令字OCW1-OCW3)和处理部件(中断请求寄存器IRR,中断优先级判决器PR,当前中断服务寄存器ISR).

8259A初始化命令字和操作命令字

ICW1(芯片控制初始化命令字,偶)D7|D6|D5|1|D3|D2|D1|D0

D7-D5随便,

D4为1表示写入ICW1为0写入OCW2/3,

D3(LTIM)设定中断请求信号形式,为1是电平触发方式为0是边沿,

D2(ADI)16/32位系统中随便,

D1(SNGL)表示是否与其他8259A处于级联状态,为1是单片为0是级联,

D0(IC4)指出后面是否要设置ICW4为1需写ICW4为0不用.

ICW2(设置中断类型码的初始化命令字,奇)D7|D6|D5|D4|D3|D2|D1|D0

D7-D3中断类型码高位(0-255)

D2-D0对应IR0-IR7.

ICW3(标志主/从片的初始化命令字,奇)作为主片时,

D7-D0对应IR7-IR0,哪位接从片哪位为1,不接为0,那些与外部设备直接相连的引脚还是为0.

作为从片时D7|D6|D5|D4|D3|D2|D1|D0

D7-D3不用,

D2-D0与从片的输出端INT连在主片的那条中断请求输入引脚有关,比如连在IR5,则D2-D0为101.

ICW4(方式控制初始化命令字,奇)D7|D6|D5|D4|D3|D2|D1|D0

D7-D5总为0作为标识码,

D4(SFNM)为1是特殊全嵌套,在采用特殊全嵌套方式的系统中一般使用了多片8259A,

D3(BUF)为1,则为缓冲方式,在缓冲方式下8259A通过总线驱动器和数据总

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1