微机原理与接口技术复习资料(3,4)章_第1页
微机原理与接口技术复习资料(3,4)章_第2页
微机原理与接口技术复习资料(3,4)章_第3页
微机原理与接口技术复习资料(3,4)章_第4页
微机原理与接口技术复习资料(3,4)章_第5页
已阅读5页,还剩178页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术

第三章8086的寻址方式和指令系统

§3-18086的寻址方式

概述

•计算机的指令包括:

操作码+操作数

11

操作的性质操作的对象

1存放

寄存器、存储器、I/O端口地址、立即数(由寻址方式决定)

•寻址方式:指令中说明操作数所在地址的方法。

•指令分类:单操作数、双操作数、无操作数。

(双操作数指令形式:操作码目的操作数,源操作数)

♦各种寻址方式指令执行速度不同:

•操作数在寄存器中指令执行速度快:在CPU内部立即执行;

•操作数在指令队列中(立即数寻址)指令执行速度较快;

•操作数在存储器中指令执行速度较慢:通过总线与CPU交换数据。

♦CPU进行读/写存储器的操作:

1把一个偏移量送到BIU,计算出20位物理地址;

2执行总线周期存取操作数。

寻址方式举例:

一、立即寻址方式(ImmediateAddressing)

•含义:操作数是立即数(即8位或16位常数),直接包含在指令中。

•特点:翻译成机器码时,立即数是指令的一部分,紧跟在操作码之后存放在

代码段内。在取出指令的同时也就取出了操作数,立即有操作数可用,所以

称之为立即寻址。

16位数:高字节一代码段的高地址单元,低字节一低地址单元;

•作用:常用于给寄存器赋初值。

例MOVCX,2A50H

解:将立即数2A50H送到CX寄存器中。

(又例:MOVCL,20H)

注意:

①立即数可以送到寄存器、一个存储单元(8位入两个连续的存储单元(16位)中去;

②立即数只能作源操作数,不能作目的操作数;

③以A-F打头的数字出现在指令中时,前面必须加数字Oo以免与其它符号相混淆(如:

0AF22Hb

二、寄存器寻址方式(RegisterAddressing)

•含义:操作数包含在寄存器中,寄存器的名称由指令指定。

•特点:16位操作数:寄存器可以AX、BX、CX、DX、SkDUSP和BP等。

8位操作数:寄存器AH、AL、BH、BL、CH、CL、DH和DL。

•作用:寄存器之间传递数据。

例:MOVDX,AX

解:(AX)送到DX寄存器中。(AX内容不变)

(又例:MOVBL,AL)

•注意:源操作数的长度必须与目的操作数一致。

(注:以下寻址方式下,指令的操作数在存储器中,要先求物理地址才能获得操作数。)

三、直接寻址方式(DirectAddressing)

•含义:存储单元的有效地址EA(即:操作数的偏移地址)直接由指令给出。

•特点:有效地址存放在代码段中(指令的操作码之后),而该地址单元中的数

据总是存放在存储器中。

操作数的物理地址=16*DS+EA

•作用:实现对存储单元的读/写操作。

例MOVAX,[2000H]

解:设DS=3000H;(32000H)=1234H

由指令得:EA=2000H(16位逻辑地址)

物理地址=16x3000H+2000H=32000H(20位,20根地址线)

贝ij:AX=1234H

指令执行过程如图所示。

(注:如用AL替代AX,贝ijAL=34H)

•注意:

>DS:默认的段寄存器;

>指令中有效地址的表示:[立即数],以便与立即数相区别;

>关于段超越前缀:有效地址前用“:"(称为修改属性运算符)修改运算属

性。

可对代码段(CSX堆栈段(SS)或附加段(ES)寄存器直接寻址。

例:MOVAX,ES:[3000H];

(物理地址=16xES+3000H)

•关于符号地址:用来代替数值地址,即给存储单元起个名字。

AX,[AREA1]

解:如右图所示,

DS=3000H时,

AX=1234H

代以抬

例:AREA1EQU2000H;伪指令定义数据跖

MOVAX,AREA1

解:AX=2000H

四、寄存器间接寻址方式(RegisterIndirectAddressing)

•含义:操作数的有效地址放在寄存器中。

•特点:使用寄存器:基址寄存器BX、基址指针寄存器BP,变址寄存器SUDIo

操作数的物理地址=16xDS+BX/SI/DI或=16xSS+BP

•作用:有效地址可以存放在寄存器中。

例MOVBX,[SI]

解:设:DS=1000H,SI=2000H,(12000H)=318BH

则:物理地址=16xDS+Sl=10000H+2000H=12000H

指令执行后,BX=318BH,指令执行过程如图所示。

•注意:

>寄存器名称外必须加方括号,以区别寄存器寻址方式;

>段超越前缀用来从默认段以外的段中取得数据;

例MOVBX,ES:[SI]

>关于默认段:

指定寄存器BX、SI或DI,默认操作数存放在数据段DS中;

(DS:BX,SI,DI)

指定寄存器BP,默认操作数存放在堆栈段SS中;(SS:BP)

五、寄存器相对寻址方式(RegisterRelativeAddressing)

•含义:操作数的有效地址是基址或变址寄存器的内容与8位或16位位移・

(Displacement)之和。即

[BX]/[BP]

EA=+8位偏移量/16位偏移量

[SI]/[DI]

•2.特点:使用:BX、BP、SI、DIo

操作数的物理地址=16xDS+BX/SI/DI+COUNT或=16*SS+BP

例:MOVBX,COUNT[SI];或:MOVBX,[COUNT+SI]

解:设:DS=3000H,SI=2000H,位移■COUNT=4000H,(36000H)=318BH

则:物理地址=16xDS+SI+COUNT=30000H+2000H+4000H=36000H

指令执行后:

BX=318BH

•3.注意:

寄存器名称外必须加方括号,位移量可以在

括号内,也可以在括号外;

段超越前缀来从默认段以外的段中取得数据;

例MOVDH,ES:ARRAY[SI]

关于默认段:

指定寄存器BX、SI或DI,默认操作数存放在数据段DS中;

(DS:BX,SI,DI)

指定寄存器BP,默认操作数存放在堆栈段SS中;(SS:BP)

六、基址变址寻址方式(BasedIndexedAddressing)

•含义:操作数的有效地址是一个基址寄存器(BX、BP)的内容与一个变址寄存器

(SkDI)的内容之和。

特点:使用的寄存器:基址寄存器BX、BP,变址寄存器SkDIo

操作数的物理地址

我将钱+,

=16xDS+BX+

SI/DI或=

16xSS+BP+SI

/DI

•注意:

寄存器SI和DI、BP和BX不能同时出现在[]中。

例MOVAX,[BX][SI];或:MOVAX,[BX+SI]

解:设:DS=3000H,SI=0500H,BX=1200H,(31700H)=0ABCDH

则:物理地址=16xDS+SI+BX

=30000H+0500H+1200H=31700H

指令执行后

AX=0ABCDH

七、相对基址变址寻址方式(RelativeBasedIndexedAddressing)

•含义:操作数的有效地址是一个基址寄存器(BX、BP)和一个变址寄存器(SK

DI)的内容,再加上8位或16位位移■之和。即

[BX][SI]

EA=++位移量

[BP][DI]

•特点:

使用的寄存器:基址寄存器BX、BP,变址寄存器SI、DIo

操作数的物理地址=16xDS+BX+SI/DI+8/16位位移量

或=16xSS+BP+SI/DI+8/16位位移量

•注意:寄存器SI和DI、BP和BX不能同时出现在[]中。

例MOVAX,MASK[BX][SI];或:MOVAX,[MASK+BX+SI]

解:设:DS=2000H,SI=0300H,BX=1500H,

MASK=0200H,(21A00H)=26BFH

贝ij:物理地址=16xDS+SI+BX+MASK

=20000H+0300H+1500H+

0200H=21A00H

指令执行后,

AX=26BFH

♦寻址方式总结:

带方括号的地址表达式必须遵循下列规则:

•立即数可以出现在方括号内,表示直接地址,如[2000H]。

•只有BX、BP、SI、DI这四个寄存器可以出现在[]内,它们可以单独出现,

也可以相加,或与常数相加,但:BX和BP寄存器、SI和DI寄存器不允

许出现在同一个[]内。

•方括号表示相加,下面几种写法等价:

6[BX][SI];[BX+6][SI];[BX+SI+6]

•不同寄存器对应不同的隐含段基址:

SS:BP;

DS:BX,SI,DI;

物理地址=16*相应段基址+EA

EA=BX/BP+SI/DI+DISP

(注:可以是单一寄存器、两个寄存器组合、和DISP组合;DISP也可以为0)

▲可用段超越前缀修改段基址。

八、其它

•隐含寻址:

指令中不指明操作数,但有隐含规定的寻址方式。如:指令DAA;对寄存器AL

中的数据进行十进制数调整,结果仍保留在AL中。

•I/O端口寻址:

8086有直接端口和间接端口两种寻址方式。

>直接端口寻址方式指令直接提供端口地址一8位立即数。可访问端口00~FFH,

即256个端口。

例如,INAL,63H;表示将端口63H中的内容送进AL寄存器

>间接端口寻址方式:端口地址由寄存器DX提供,端口号为OOOO-OFFFFH。

例如,MOVDX,213H;DX=D地址号213H

INAL,DX;AL+端口213H中的内容

•一条指令有多种寻址方式:

源操作数和目的操作数同样适用上述寻址方法。

例MOV[BX],AL

解:设:BX=3600H,DS=1000H,AL=05H

贝:目的操作数的物理地址=16XDS+BX=10000H+3600H=13600H

指令执行结果为(13600H)=05H,

•转移类指令寻址(后面讨论)

§3-2指令的机器码表示方法

一、机器语言指令的编码目的和特点

•汇编语言源程序:用汇编语言(即主要由指令系统组成的语言)编写的程序。

编译程序执行

源程序机器码运算结果

•编码特点:

>8086指令的二进制编码非常多,很难以一张表实现指令与机器语言的对照。

>为每种基本指令类型给出一个编码格式,对照格式填上不同的数字表示不同的寻

址方式、数据类型,即可求得每条指令的机器码。

指令通常由操作码和操作数两部分组成。

>8086指令系统采用变长指令,指令的长度可由1~6字节组成。

二、机器语言指令代码的编制

>1.编码格式说明(MOV指令为例):

星也@扰JM旨专亍既I幺岗码,沱•工弋

其中,

第一个字节:

▲高6位是操作码100010;

▲W位说明传递数据的类型是字(W=1)还是字节(W=0);

▲D位标明数据传送的方向:D=0,数据从寄存器传出;

D=1,数据传至寄存器;

第二个字节:

▲REG字段:寄存器号,用3位编码寻址8种不同的寄存器,再根据第一字节中W位,

选择8位或16位寄存器。如表3-I所示。(对段寄存器,REG字段占2位)

REG段寄存器

01CS

11DS

8086寄存器编码表

00ES

REW=1(字)W=0(字节)

10SS

G

000AXAL

011BXBL

001CXCL

010DXDL

100SPAH

111DIBH

101BPCH

110SIDH

▲MOD字段和R/M字段:MOV指令的两个操作数中有一个必为寄存器,另一个操作

数可能是寄存器,也可能是存储器单元,由指令代码的第二个字节个的MOD和R/M字段

指定。如下表所示。(24种不同的编码格式,D8表示8位位移星,D16为16位位移■)

对指令进行编码时若包含8位位移・则在编码后增加一个字节存放位移Mdisp-L;

若包含16位的位移一则增加2个字节存放位移・第3个字节存放位移■的低字节disp-L,

第4个字节存放位移量高字节disp-Ho

000[BX]+[SI][BX]+[SI]+D8[BX]+[SI]+D16ALAX

001[BX]+[DI][BX]+[DI]+D8[BX]+[DI]+D16CLCX

010[BP]+[SI][BP]+[SI]+D8[BP]+[SI]+D16DLDX

011[BP]+[DI][BP]+[DI]+D8[BP]+[DI]+D16BLBX

100[SI][Sl]+D8[Sl]+D16AHSP

101[DI][Dl]+D8[Dl]+D16CHBP

110D16(直接[BP]+D8[BP]+D16DHSI

地址)

111[BX][BX]+D8[BX]+D16BHDI

MOD和R/M的编码

•2.寄存器间传送指令的编码

例求指令MOVSP,BX的机器码

解:指令的功能是将BX寄存器的内容送到SP寄存器中。

从附录B可知,该指令的操作码为100010;传送的是字数据,所以w=1;

REG字段:选择SP,则REG字段编码=100;

D位=1:表示数据传至所选的寄存器(SP);

MOD=11:因另一个操作数BX也是寄存器。

从表3-2查得R/M=011。根据W=l及寄存器名称为BX,求得指令编码。

15875

BX

图3-8指令MOVSP.BX的编班马

•3.寄存器与存储器间传送指令的编码

例:求指令MOVCL,[BX+1234H]的机器码。

解:功能是将有效地址为(BX+1234H)存储单元中的数据字节传送到CL中;

第1、2字节可通过查表得到;第3字节存放I6位位移量的低字节34H;第4字节

存放高字节12Ho

所以该指令的编码为8A8F3412HO

1手节1字节2字节3竽节41

J00010101°0011110011010000010010|

1

一操蚱码一一[八j小.低乜移量,,1--高位移理

皮印.1

D至CL1R/M:BX+D16

W:字节-REG:CL

MOD存储器76位偏移量

图3-1。指令MCVCL.[BX+1234H]的编码

4.立即数寻址指令的编码

例求指令MOV[BX+21OOH],0FA50H的机器码。

解:指令的功能是将16位立即数OFA50H送到有效地址为(BX+2100H)的字存储

单元中;其中低字节50H送列〔BX+2100H〕单元,高字节FAH送到(BX+2101H)单元;

指令中不但有16位立即数,还有16位位移量;

查附录B知,该指令的6字节编码为:C787002150FA。

字节1।字节2字节3।字节4,字节5字节6

fl1000I1J10000111OOOOOOOO00)000010101000011111010

I_.-WWi----

1■操作码JwMODR/M位移量低字节位移量嬴字节立即数低字节立即数高字节

传送字」JBX+DI6」

图&1J指令MOVLBX+2100H」,OFA50H的编码

•5.包含段寄存器的指令的编码

含有段寄存器的指令,寄存器字段REG占有2位,从表3-1可得,相应的编码为:

CS=01,DS=11,ES=00,SS=I0o

例求指今MOVDS,AX的机器码。

解:指令功能为将AX寄存器的内容传送到数据段寄存器DS;

从附录B中查到该指令的编码格式为:10001110MODOREGR/M;

段寄存器DS的编码为11,即REG字段为11;另一个操作数也是寄存器,所以

MOD=11,而R/M字段应填上AX的三位代码000;

得到该指令的编码为:8ED8H0

•6.段超越前缀指令的编码

该类指令进行编码时,在指令代码前加一个8位的段超越的缀代码,代码的格式

为OOIxxHO,其中xx位表明段超越寄存器,编码与上面列出的相同。

例若指令MOV[BX],DL的编码为8817H,

试求指令MOVCS:[BX],DL的代码。

解:该指令的编码是在不带段超越前缀的指令代码8817H前,加上一个字节

001XX110O由于段寄存器CS的代码为01,所以指令的第1个字节的编码为00101110,

即2EHO

可得到该指令的机器码为2E8817H

微机系统指令的机器码表示方法(自学)

§3-38086的指令系统

六类指令(按功能):

一、数据传送指令(14条)

通用数据传送指令地址目标传送指令

MOV字节或字的传送LEA装入有效地址

PUSH入栈指令LDS装入数据段寄存器

POP出栈指令LES装入附加段寄存器

XCHG交换字或字节标志传送指令

XLAT表转换LAHF标志寄存器低字节装入AH

输入输出指令SAHFAH内容装入标志寄存器低字节

IN输入PUSHF标志寄存器入栈指令

OUT输出POPF出栈,并送入标志寄存器

•通用数据传送指令(GeneralPurposeDataTransfers)

>MOV传送指令(Move)

指令格式:MOV目的,源

指令功能:实现CPU的内部寄存器间或寄存器与存储器间的数据传送。

例:MOVAX,0FF00H

MOV[DI],AX

MOVCX,[1000H]

MOVBL,40H

MOVWORDPTR[SI],01H

MOVAL,BL

WBiJ^gyL

通用寄存器

AXAH

BXAl-

CXBH

DXBL

SICH

DICL

SPDH

BPDU

段寄存器

CS.DS.ES,ss

A注意:

•指令中至少要有一项明确说明传送的是字节还是字;

•IP寄存器不能用作源操作数或目的操作数;

•立即数和CS寄存器不能用作目的操作数;

•除了源操作数为立即数的情况外,两个操作数中必有一个是寄存器,但不能都是

段寄存器。(即MOV指令不能在两个存储单元之间直接传送数据,

八以小-IM4

也不能在两个段寄存器之间直接传送数据)训

♦【数据段】数据通常存放在数据段中。

m

例如,某个程序的数据段:“口以:~

31

AS

DATASEGMENT;数据段开始0g1

o

AREA1DB14H,3BH;定义字节变量STRINGo

D

AREA2DB3DUP(0);复制操作

ARRAYDW3100H,01A6H;定义字变量

STRINGDB'GOOD'

DATAENDS;数据段结束

汇编后,DATA将被赋予一个具体的段地址。各变量将自偏移地址0000H开始依次存

放,各符号地址等于它们在数据段中的偏移量。

AREA1的偏移地址为0000H;

AREA2的偏移地址为0002H;

ARRAY的偏移地址为0005H;

STRING的偏移地址为0009Ho

例MOVDX,OFFSETARRAY

解:ARRAY的偏移地址DXo(OFFSET:取后面的符号偏移地址的值)

设:ARRAY的定义如左图所示

则:DX=0005H

例:MOVAL,AREA1;AL«AREA1中的内容14H

MOVAREA2,AL;0002H单元<<14H

>PUSH进栈指令(PushWordontoStack)

■指令格式:PUSH源

■指令功能:数据入堆栈

工作过程:SP-SP—2;

(SP+1,SP)一源

■源操作数要求:可以是16位通用寄存器、段寄存

器、存储器中的数据字,但不能是立即数。

>POP出栈指令(PopWordoffStack)

■指令格式:POP目的

■指令功能:数据出堆栈

■工作过程:目的+(SP+1,SP)

SP-SP+2;

■目的操作数要求:

可以是16位通用寄存器、段寄存器或存储单元,但CS不能作目的操作数。

♦PUSH、POP指令实例

PUSHAX

ex

I66|55|PUSHBX

BXPUSHCX

AXPOPAX

POPBX

POPCX

@us6

>XCHG交换指令(Exchange)

■指令格式:XCHG目的,源

■指令功能:源操作数、目的操作数数据交换。

■操作数要求:交换可以在寄存器之间、寄存器与存储器之间进行;

段寄存器不能作为操作数;不能直接交换两个存储单元中的内容。

例设AX=2000H,DS=3000H,BX=1800H,(31A00H)=1995HO则执行指令

XCHGAX,[BX+200H]后,结果如何?

解:把内存中的一个字与AX中的内容进行交换。

源操作数物理地址=3000x10H+1800H+200H=31A00H,

指令执行后:AX=1995H,(31A00H)=2000H

>XLAT表转换指令(TableLookup-Translation)

■指令格式:XLAT转换表或:XLAT

■指令功能:使累加器(AL)中的一个值变换为内存表格中的某一个值,一般用来

实现代码转换,即查表功能。

■XLAT指令使用步骤:

•使用之前必须先建立一个表格,表格中的内容是所需要转换的

代码;!

•将转换表的起始地址装入BX寄存器;;

•欲查的某项与表头地址的位移・AL,即表格最多包含256|

个字节;I

•执行XLAT指令后根据位移量从表中查到转换后的代码值0011,0000

AL寄存器中。

例若十进制数字0~9的LED七段码对照表如表所示,试用XLAT指令求数字5的

七段码值。

十进制数的七段显示码表

十进七段显十进七段显

制数字示码制数字示码

040H512H

179H602H

224H778H

330H800H

419H918H

七段LED显示器的工作原理和接口电路

数字15】-12H

dpgfedcba

ES

程序如下:

TABLEDB40H,79H,24H,30H,19H;七段数码表数据

DB12H,02H,78H,OOH,18H;分别对应0~9的七段字型码

MOVAL,5;ALW数字5的位移量

MOVBX,OFFSETTABLE;BXW表格首地址

XLATTABLE;查表得:AL=12H

•输入输出指令(InputandOutput)

IN指令:从数据端口输入数据或从状态端口输入状态字。

OUT指令:输出数据或命令给指定的I/O端口。

>直接输入输出指令

格式:INAL,PORT;ALW(PORT)

INAX,PORT;AXW(PORT+1,PORT)

OUTPORT,AL;(PORT)WAL

OUTPORT,AX;(PORT+1,PORT)—AX

注:PORT为输入输出端口号,范围为0~255(00~FFH)

>间接输入输出指令

格式:INAL,PORT;ALW(PORT)

INAX,PORT;AXW(PORT+1,PORT)

OUTPORT,AL;(PORT)<■AL

OUTPORT,AX;(PORT+1,PORT)WAX

在间接输入输出指令之前,需将端口号送入DX寄存器。

MOVDX,XXXXH;

例OUT85H,AL;85H端口WAL内容

MOVDX,0FF4H;端口地址DX=0FF4H

OUTDX,AL;OFF4H端口WAL内容

MOVDX,300H;DX指向300H

OUTDX,AX;300H端口WAL内容,301H端口WAH内容

•地址目标传送指令(AddressObjectTransfers)

专用于传送地址码的指令,它可以用来传送操作数的段地址和偏移地址,含以下

三条指令:

地址目标传送指令

LEA装入有效地址

LDS装入数据段寄存器

LES装入附加段寄存器

•地址目标传送指令(AddressObjectTransfers)

ALEA取有效地址指令(LoadEffectiveAddress)

指令格式:LEA目的,源

指令功能:取源操作数地址的偏移■,传送到目的操作数

操作数要求:源操作数必须是存储单元,

目的操作数必须是一个除段寄存器之外的16位寄存器。

使用时要注意与MOV指令的区别。

例假设Sl=1000H,DS=5000H,(51000H)=1234H

LEABX,[SI];执行完该指令后,BX=1000H(送偏移地址)

MOVBX,[SI];执行完该指令后,BX=1234H(送内容)

>LDS将双字指针送到寄存器和DS指令(LoadPointerusingDS)

指令格式:LDS目的,源

指令功能:从源操作数指定的存储单元中,取出一个变量的4字节地址指针,送进一

对目的寄存器。其中前两个字节(表示变量的偏移地址)送到指令中指定的目的寄存器中,

后两个字节(表示变量的段地址)送入DS寄存器。

操作数要求:

源操作数必是存储单元,该单元开始的连续4个字节存放一个变量的地址指针。

目的操作数必须是16位寄存器,常用SI寄存器,但不能用段寄存器。

例DS=1200H,(12450H)=F346H,(12452H)=0A90H,

执行指令LDSSI,[0450H]后,SI=F346H,DS=0A90H

注:源操作数的物理地址=DSx10H+450H=12450H

>LES将双字指针送到寄存器和ES指令(LoadPointerusingES)

指令格式:LES目的,源

指令功能:与LDS指令的操作基本相同,不同的是:要将源操作数所指向的存储单

元里存放的地址指针中的段地址部分送到ES寄存器中,而不是DS寄存器,目的操作数常

用DI寄存器。

例设DS=0100H,BX=0020H,(01020H)=0300H,(01022H)=0500H。

执行指令LESDI,[BX]后,DI=0300H,ES=0500H

注:源操作数的物理地址=DSxlOH+BX

=0100Hx10H+0020H

=01020H

•标志传送指令(FlagTransfers)

/读取标志指令:LAHF(5、3、0为任意值)

--标志寄存器低8位WAH

/设置标志指令:SAHF

--标志寄存器低8位WAH,影响PSW

“把标志寄存器的内容压入堆栈:PUSHF

/从堆栈弹出到标志寄存器:POPF,影响PSW

>LAHF标志送到AH指令(LoadAHfromFlag)

指令格式:LAHF

指令功能:标志寄存器SF、ZF、AF、PF和CFfAH寄存器的位7、6、4、2和0。

注意:

•位5、3、1的内容未定义,是任意值。

•执行这条指令后,标志位本身并不受影响。

•这5个标志送进AH后,AH便相当于8080/8085的标志寄存器,从而能对

8080/8085程序进行转换,使它们能运行在8086/8088系统.

151110987854321T

OFDFTFSFZFAFPFGF

AH电。2Q%

>(2)SAHFAH送标志寄存器(StoreAHintoFlags)

指令格式:SAHF

指令功能:AH内容一标志寄存器。

注意:

•位5、3、1的内容未定义,是任意值。

•执行这条指令后,高位标志并不受影响。

为8080/8085提供兼容性。

>(3)PUSHF标志入栈指令(PushFlagontoStack)

指令格式:PUSHF

指令功能:将标志寄存器PSW中的内容压入堆栈;并修改堆栈指针,使SPWSP

-2;

指令执行后对标志位无影响。

>(4)POPF标志出栈指令(PopFlagoffStack)

指令格式:POPF

指令功能:将堆栈指针SP所指的一个字弹入标志寄存器PSW;并修改堆栈指针,

使SPWSP+2。

注意:

•要成对使用PUSHF和POPF,可对标志寄存器进行保存和恢复。

•常用在:过程(子程序)调用,中断服务程序,对主程序的状态(即标志位)进行保护。

•也可用来改变追踪标志TF0在8086指令系统中没有直接改变TF(D8位)的指

令。

二、算术运算指令

算术运算指令可处理4种类型的数:

•无符号二进制整数

•带符号二进制整数

•无符号压缩十进制整数(PackedDecimal)

•无符号非压缩十进制整数(UnpackedDecimal)

一个8位二进制数可看成4种不同类型的数,所表示的数值亦不同。

数的表示:

•二进制数:可以是8位或16位,若是带符号数,则用补码表示。

•压缩十进制数:一个字节中存放两个BCD码十进制数。

•非压缩十进制数:一个字节的低半字节存放十进制数,高半字节为全零。

例如,对十进制数字58:

压缩十进制数表示:只需一个字节,即01011000B;

非压缩十进制数表示:需两个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论