微机原理基本概念复习.docx

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

微机原理基本概念复习.docx

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

微机原理基本概念复习.docx

微机原理基本概念复习

微机原理基本概念复习

1、字节,字概念,1字节=8位,

2、字长概念:

传微处理器一次送二进制数据的位数(总线宽度)。

3、地址空间概念:

16根地址线—64K,

20根地址线—1M空间

4、进制间的转换:

将十进制数25.5转换为二级制数

5、数值数据的表示:

有符号数:

补码,n位补码的范围

无符号数:

FFFFH=65535

6、BCD码:

789的压缩BCD码789H

7、ASCII码:

789的ASC码373839H

8、求补运算概念

9、8086CPU从功能上来说分成两大部分:

总线接口单元BIU(BusInterfaceUnit)和执行单元EU(ExecutionUnit)

总线接口部件由下列4部分组成:

①4个段地址寄存器(CS、DS、ES、SS)②16位的指令指针寄存器IP(InstructionPointer)③20位的地址加法器

10辑段概念——

8086CPU的内部结构是16位的,即所有的寄存器都是16位的,而外部寻址空间为1M,需要20位地址线。

为了能寻址1M空间。

8086把1M字节空间划分成若干个逻辑段。

11逻辑地址概念——2000H:

5F62H,则其对应的物理地址:

25F62H

12堆栈指针:

SP与段寄存器SS一起确定在堆栈操作时,堆栈在内存中的位置。

SS和SP的初始值决定了堆栈区的大小

13状态标志的意义:

即SF、ZF、PF、CF、AF和OF

148086引脚:

MN/MX、

AD15~AD0地址/数据分时复用引脚

NMI(Non-MaskableInterrupt)不可屏蔽中断请求,输入、上升沿有效、

INTR(InterruptRequest)可屏蔽中断请求,输入、高电平有效,有效时,表示请求设备向CPU申请可屏蔽中断,该中断请求是否响应受控于IF(中断允许标志)、可以被屏蔽掉

INTA——

RESET(复位)复位请求,输入、高电平有效,复位后CS=FFFFH、IP=0000H,所以自启动程序入口在物理地址FFFF0H

INTA(InterruptAcknowledge)可屏蔽中断响应,输出、低电平有效,有效时,表示来自INTR引脚的中断请求已被CPU响应,CPU进入中断响应周期。

ALE(AddressLatchEnable)地址锁存允许,输出、三态、高电平有效,脚高有效时,表示复用引脚:

AD15~AD0和A19/S6~A16/S3正在传送地址信息,由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用ALE引脚将地址锁存起来

M/IO(InputandOutput/Memory)I/O或存储器访问,输出、三态,该引脚输出高电平时,表示CPU将访问存储器,这时地址总线A19~A0提供20位存储器地址,该引脚输出低电平时,表示CPU将访问I/O端口,这时地址总线A15~A0提供16位I/O口地址

15多字节数据存放方式:

图中0002H“字”单元的内容为:

[0002H]=1234H

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

[0002H]=78561234H

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

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

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

存储单元的物理地址为:

17指令周期:

是指一条指令经取指、译码、读写操作数

基址变址寻址方式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

;movds,ax

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

MOVAL,[BX]

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

jenext;相等,转移

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

ORA

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

当前位置:首页 > 解决方案 > 学习计划

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

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