微机原理基本概念复习Word格式文档下载.docx

上传人:b****6 文档编号:18868380 上传时间:2023-01-01 格式:DOCX 页数:22 大小:618.68KB
下载 相关 举报
微机原理基本概念复习Word格式文档下载.docx_第1页
第1页 / 共22页
微机原理基本概念复习Word格式文档下载.docx_第2页
第2页 / 共22页
微机原理基本概念复习Word格式文档下载.docx_第3页
第3页 / 共22页
微机原理基本概念复习Word格式文档下载.docx_第4页
第4页 / 共22页
微机原理基本概念复习Word格式文档下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

微机原理基本概念复习Word格式文档下载.docx

《微机原理基本概念复习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理基本概念复习Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。

微机原理基本概念复习Word格式文档下载.docx

0002H号“双字”单元的内容为:

[0002H]=78561234H

16物理地址和逻辑地址的转换

例2.1设代码段寄存器CS的内容为1000H,指令指针寄存器IP

的内容为2500H,即CS=1000H,IP=2500H,则访问代码段

存储单元的物理地址为:

17指令周期:

是指一条指令经取指、译码、读写操作数到执行完成的过程。

若干总线周期组成一个指令周期

18总线周期

是指CPU通过总线操作与外部(存储器或I/O端口)进行一次数据交换的过程

8086的基本总线周期需要4个时钟周期,4个时钟周期编号为T1、T2、T3和T4

总线周期中的时钟周期也被称作“T状态”,时钟周期的时间长度就是时钟频率的倒数

当需要延长总线周期时插入等待状态Tw,CPU进行内部操作,没有对外操作时,其引脚就处于空闲状态Ti

8086如果工作频率1MHZ,1个基本总线周期需要多长时间。

19指令代码由操作码和操作数两部分组成

寻址方式:

立即数寻址MOVAX,14

寄存器寻址:

MOVDS,AX

直接寻址:

MOVAX,[2000H],MOVBX,BUFFER

寄存器间接寻址MOVAX,[BX]

寄存器相对寻址MOVAX,[SI+06H]

基址变址寻址方式MOVAX,[BX+SI]

相对基址变址MOVAX,[BX+DI+6]

隐含寻址

MULBL;

(AL)×

(BL)→AX隐含了被乘数AL和乘积AX

20存储器寻址方式中的变量

WVARDW1234H

定义16位变量WVAR,具有初值1234H

21注意点

1.区别立即数寻址和直接寻址

MOVAX,126

MOVAX,[126]

2.区别寄存器寻址和寄存器间接寻址

MOVAX,BX

MOVAX,[BX]

3.双操作数指令中,不能同为存储器操作数。

4.CS不能为目的寄存器。

♦最基本的传送指令(MOV)

♦堆栈指令(PUSH,POP)

♦数据交换指令(XCHG)

♦换码指令XLAT

非法指令的主要现象:

两个操作数的类型不一致

无法确定是字节量还是字量操作

两个操作数都是存储器MOV[2000H],[3000H]

立即数直接送段寄存器MOVDS,3000H

目标操作数用立即数方式MOV2000H,AL

两个操作数都是段寄存器MOVDS,ES

在绝大多数双操作数指令中,目的操作数和源操作数必须具有一致的数据类型,或者同为字量,或者同为字节量,否则为非法指令

两个操作数类型不一致

MOVAL,050AH;

非法指令,修正:

movax,050ah

MOVSI,DL;

movdh,0

movsi,dx

Ø

当无法通过任一个操作数确定是操作类型时,需要利用汇编语言的操作符显式指明

MOV[BX+SI],255;

movbyteptr[bx+si],255

byteptr说明是字节操作

movwordptr[bx+si],255

wordptr说明是字操作

8086/8088指令系统除串操作指令外,不允许两个操作数都是存储单元(存储器操作数)

MOVbuf2,buf1;

假设buf2和buf1是两个字变量

movax,buf1

movbuf2,ax

假设buf2和buf1是两个字节变量

moval,buf1

movbuf2,al

8086指令系统中,能直接对段寄存器操作的指令只有MOV等个别传送指令,并且不灵活

MOVDS,ES;

movax,es

movds,ax

MOVDS,100H;

movax,100h

MOVCS,[SI];

非法指令

指令存在,但不能执行

例3-13把BLOCK1地址开始的10个字节数据传送到BLOCK2地址开始的10个字节单元处。

MOVCX,10

MOVSI,OFFSETBLOCK1

MOVDI,OFFSETBLOCK2

NEXT:

MOVAL,[SI]

MOV[DI],AL

INCSI

INCDI

DECCX

JNZNEXT

HLT

进栈指令先使堆栈指针SP减2,然后把一个字操作数存入堆栈顶部

用堆栈交换AX与CX的值。

pushax

pushcx

popax

popcx

交换指令XCHG(

xchgal,byteptrwvar+1

ax=5599h,wvar=6611h

“byteptrwvar+1”强制为字节量,只取高字节与AL类型交换,否则数据类型不匹配

例3-18内存的数据段有一张0~9的平方表,首地址为TABLE,如图所示,用换码指令实现求数字4的平方。

MOVBX,OFFSETTABLE

MOVAL,4

XLAT

加法指令

2、减法指令

3、乘法指令

4、除法指令

加法指令:

ADD,ADC和INC

减法指令:

SUB,SBB,DEC,NEG和CMP

他们分别执行字或字节的加法和减法运算,除INC和DEC不影响CF标志外,其他按定义影响全部状态标志位

[例3-32]在数据段从BLOCK开始的存储单元中存放了两个8位无符号数,试比较它们的大小,将较大者传送到MAX单元。

LEABX,BLOCK

MOVAL,[BX]

INCBX

CMPAL,[BX]

JNCDONE

DONE:

MOVMAX,AL

HLT

逻辑指令AND、OR、XOR和TEST

屏蔽AL寄存器的低四位。

MOVAL,0FFH11111111

ANDAL,0F0H∧11110000

11110000

例3:

使某数的第4、5位置1。

MOVAL,03H00000011

ORAL,30H∨00110000

00110011

[例3-47]判断DATA单元的数据是否为0。

MOVAX,DATA

ORAX,AX

JZZERO

……

ZERO:

…….

 

例4:

使某数的D1、D0位取反,其它位不变。

MOVAL,11H00010001

XORAL,03H⊕00000011

=00010010

AND与TEST指令的关系,

同SUB与CMP指令的关系一样

例7:

检测AL中的最低位是否为1,若为1则转移。

MOVAL,data01000001

TESTAL,01H∧00000001

JNZNext00000001

Next:

MOVBL,0

TEST通常用于检测一些条件是否满足,但又不希望改变原来操作数的情况,该指令后通常带有条件转移指令。

移位指令:

移位指令的第一个操作数是指定的被移位的操作数,可以是寄存器或存储单元;

后一个操作数表示移位位数:

该操作数为1,表示移动一位

该操作数为CL,CL寄存器值表示移位位数(移位位数大于1只能CL表示)

SALSHLSARSHR

循环移位指令类似移位指令,但要将从一端移出的位返回到另一端形成循环。

分为:

ROLreg/mem,1/CL;

不带进位循环左移

RORreg/mem,1/CL;

不带进位循环右移

RCLreg/mem,1/CL;

带进位循环左移

RCRreg/mem,1/CL;

带进位循环右移

循环移位指令按指令功能设置进位标志CF,但不影响SF、ZF、PF、AF标志,OF只当CNT=1时有效,移位后当最高有效位发生变化时(如1变0)OF=1,否则OF=0。

将DX.AX中32位数值左移一位

shlax,1

rcldx,1

控制转移指令

JMPJZJNZ

例3.23判断是否为字母Y

寄存器AL中是字母Y(含大小写),则令AH=0,否则令AH=-1

cmpal,’y’;

比较AL与小写字母y

jenext;

相等,转移

cmpal,’Y’;

不相等,

继续比较AL与大写字母Y

movah,-1;

不相等,令AH=-1

jmpdone;

无条件转移指令

next:

movah,0;

相等的处理:

令AH=0

done:

……

[例3-68]在内存中有一个首地址为ARRAY的数据区存放了200个8位有符号数,统计其中正数、负数、0的个数,并分别将统计结果存入PLUS、MINUS和ZERO单元中。

XORAL,AL

MOVPLUS,AL

MOVMINUS,AL

MOVZERO,AL

LEASI,ARRAY

MOVCX,200

CLD

LLAB:

LODSB

ORAL,AL

JSMLAB

JZZLAB

INCPLUS

JMPNEXT

MLAB:

INCMINUS

ZLAB:

INCZERO

DECCX

JNZLLAB

HLT

LOOPlabel;

循环指令

IRET

伪指令:

DB,DW,byteptr

例2:

操作数可以是字符串,例如

STRDB‘HELLO’

汇编后的情况如图:

某数据段定义为

DATASEGMENT

S1DB0,1,2,3,4,5

S2DB‘12345’

COUNTEQU$-S1

S3DBCOUNTDUP

(2)

DATAENDS

画出该数据段在存储器中的存储形式

DOS系统功能调用介绍

(1)从键盘输入一个字符(功能号=1)

MOVAH,1

INT21H

<

AL中有键入的字符>

(1)在显示器上显示一个字符(功能号=2)

MOVAH,2

MOVDL,<

要显示的字符>

例:

在显示器上显示一个字符‘A’

MOVDL,’A’;

或MOVDL,41H

(2)显示字符串(功能号=9)

MOVAH,9

LEADX,<

字符串>

注意:

被显示的字符串必须以’$’结束。

4.6.2分支程序设计

4-31求符号字节数X的绝对值,X用补码表示

DATASEGMENT

XDB-50

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,X;

取X

TESTAL,80H;

测试符号位

JZDONE;

若大于0,转done

NEGAL;

若小于0,求补得到|x|

MOVX,AL;

保存

DONE:

MOVAH,4CH

CODEENDS

ENDSTART

关于存储器:

扩展存储器所需存储芯片的数量计算:

若用一个容量为mK×

n位的存储芯片构成容量为MK×

N位(假设M>m,N>n,即需字位同时扩展)的存储器,则这个存储器所需要的存储芯片数为(M/m)×

(N/n)。

RAM芯片的容量:

为220×

16b,问

(1)该芯片地址线多少,

(2)数据线多少

SRAM与CPU连接:

CPU数据总线不相同,连接不一样。

8086CPU的16数据总线,其高8位数据线D15-D8接存储器的奇地址体

低8位数据线D7-D0接存储器的偶地址体,

根据BHE(选择奇地址库)和A0(选择偶地址库)的不同状态组合决定对存储器做字操作还是字节操作

存储器与CPU地址总线的连接:

低位地址线直接和存储芯片的地址信号连接作为片内地址译码

高位地址线主要用来产生选片信号(称为片间地址译码),以决定每个存储芯片在整个存储单元中的地址范围,避免各芯片地址空间的重叠。

片选译码的几种方法:

①全译码:

所有的地址线全用上,无地址重叠。

②部分译码:

部分高位地址没有用,存在地址重叠。

(3)全译码

,每个存储单元的地址都是唯一的,不存在地址重复,但译码电路可能比较复杂、连线也较多

I/O端口与存储器统一编址概念

I/O端口独立编址概念

8086采用独立编址

I/O端口地址译码的一般原则:

把CPU用于I/O端口寻址的地址线分为高位地址线和低位地址线两部分:

例6-1,某8088最小系统,I/O接口译码电路如图

A0-A9选择端口

CPU和外设间的数据传送方式

³

程序控制方式

中断控制方式

DMA方式

程序控制方式

无条件传送方式

查询传送方式

查询传送方式

CPU从接口中读取状态字

CPU检测状态字

传送数据

数据端口

状态端口

a)查询式输入的算法:

(1)用指令检测Ready:

INAL,三态缓冲器(或状态寄存器)的地址

(2)若Ready=0,返回

(1)

(3)若Ready=1,发出

INAL,输入接口数据寄存器的端口地址。

查询输入:

MOVBX,OFFSETSTORE

IN_TEST:

INAL,状态口地址

TESTAL,80H

JZIN_TEST

INAL,数据口地址

MOV[BX],AL

INCBX

查询式输出的接口电路

接至D7

b)查询式输出:

OUT_TEST:

INAL,100;

TESTAL,80H

JNZOUT_TEST

MOVAL,[BX]

OUT101,AL;

中断概念:

中断向量表是存放中断向量的一个特定的内存区域。

中断向量,就是中断服务子程序的入口地址。

中断向量表:

中断服务程序的入口地址(首地址)

逻辑地址含有段地址CS和偏移地址IP(共32位),其中低字是偏移地址、高字是段地址

8086微处理器从物理地址00000H开始,依次安排各个中断向量,向量号也从0开始

256个中断占用1KB区域,就形成中断向量表

8259:

完全嵌套方式(默认工作方式):

中断请求按优先级IR0~IR7处理,IR0优先级最高,IR7最低。

当有中断发生时,如果有更高级的中断请求到来,会发生中断嵌套。

中断结束命令

(1)自动中断结束模式(AEOI)

自动结束方式

一进入中断就将ISR中对应的状态标志清除,因为ISR是优先仲裁的依据,所以这种方式只能用在不会出现嵌套的简单场合。

(2)非自动中断结束方式(EOI)

②一般结束方式:

当发出中断结束命令后,用结束指令把当前中断服务寄存器(ISR)中优先级最高的(正在处理的)IS位清除。

(最常用)

8259初始化:

(2)ICW2(中断向量命令字)

向8259A写入ICW1命令字后,应立即向8259A送ICW2。

ICW2用于确定8259A每根IR线上的中断向量号;

(其实确定的是IR0线上的中断向量

设置中断向量号

⏹命令字中,T7~T3为中断向量号的高5位,低3位设为0

⏹根据此命令,8259A自动确定低3位:

IR0为000、IR1为001、……、IR7为111

1)OCW1(中断屏蔽命令字)

屏蔽命令字

内容写入中断屏蔽寄存器IMR

Di=Mi对应IRi,为1禁止IRi中断;

为0允许IRi中断。

各位互相独立。

8255:

例:

若要求8255A#1的各个端口处在如下的工作方式:

端口A方式0输入,端口B方式1输出,端口C(上半部)PC7~PC4输出,端口C(下半部)PC3~PC0输入

解:

方式控制字=10010101B或95H,

初始化程序:

CWREQU0FBH;

8255A#1控制字寄存器端口地址

MOVAL,10010101B

OUTCWR,AL

例8-2使端口C的PC7置1的控制字为00001111B,PC3置0控制字00000110。

8255控制口地址00EEH:

相应的汇编程序为:

MOVAL,0FH

MOVDX,00EEH

OUTDX,AL

MOVAL,06H

注意使端口C按位置位或复位的控制字也是写入至控制字寄存器。

例题8-3

8255工作于方式0,以查询的方式输出,与打印机连接如图所示

⏹程序:

PP:

MOVAL,81H;

控制字A口输出,c高4位输出,低4位输入,方式0

OUT0D6H,AL

MOVAL,0DH;

00001101B

OUT0D6H,AL;

PC6=1,发出STB高电平

MOVCX,100

LEADI,DATAPTR;

DI指向首地址

LPST:

INAL,0D4H;

读C口

ANDAL,04H;

查busy信号

JNZLPST;

如忙,等待

MOVAL,[DI];

不忙,取出一个字节数据

OUT0D0H,AL;

A口输出并锁存字符

MOVAL,0CH;

00001100B

STB=0

INCAL;

AL=00001101

STB=1

INCDI

LOOPLPST

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

当前位置:首页 > 法律文书 > 调解书

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

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