网站大量收购闲置独家精品文档,联系QQ:2885784924

《编译原理教程》课件第十二章.ppt

  1. 1、本文档共212页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第十二章8086/8088小汇编的设计与实现

第十二章8086/8088小汇编的设计与实现

12.1汇编指令系统的分析

12.28086/8088小汇编的设计实现

12.38086/8088小汇编实验

12.48086/8088小汇编程序

第十二章8086/8088小汇编的设计与实现

12.1汇编指令系统的分析

12.1.1引言

编译的过程是将源程序编译成可在具体机器上执行的机

器指令程序的过程。所以,实现编译的首要任务就是了解目

标机器的指令系统及其特点,只有这样才能设计好编译程序。

任何一种微处理器(CPU)在设计时,就已规定好自己特

定的指令系统,这种指令系统的功能也就决定了由该微处理

器构成的计算机系统及其基本功能。指令系统中所设计的每

一条指令都对应着微处理器要完成的一种规定功能操作,即

这些指令功能的实现都是由微处理器中的物理器件完成的。

第十二章8086/8088小汇编的设计与实现

要使计算机完成一个完整的任务,就需要执行一组指令,这

一组指令通常称为程序。计算机能够执行的各种不同指令的

集合就称为处理器(CPU)的指令系统。

第十二章8086/8088小汇编的设计与实现

一台计算机只能识别由二进制编码表示的指令,称之为

机器指令。一条机器指令应包括两部分内容:一部分给出

该指令应完成何种操作,称为指令操作码部分;另一部分给

出参与操作的操作数的值,或指出操作数存放在何处、操作

的结果应送往何处等,这一部分称为指令的操作数部分。处

理器可根据指令中给出的地址信息求出存放操作数的地址—

—称为有效地址EA(EffectiveAddress),然后对存放在有效

地址中的操作数进行存取操作。指令中关于如何求出存放操

作数有效地址的方法称为操作数的寻址方式。计算机按照指

令给出的寻址方式求出操作数有效地址进行存取操作数的过

程,称为指令的寻址操作。

第十二章8086/8088小汇编的设计与实现

由于计算机的主要工作是进行数据处理,故计算机指令

系统中的多数指令是与操作数有关的。这些操作数可以在寄

存器中,也可以在内存或I/O端口中,还可以隐含于指令码

中。对于不同的操作数有不同的方法来存取它们,特别是对

于存放于存储单元的操作数,可以采用多种不同的方式来寻

找地址以便进行数据存取。寻址方式越多,CPU的指令功能

就越强,灵活性也就越大。但是,寻址方式多也会造成指令

编码的复杂化。因此,在设计指令系统的寻址方式时主要考

虑以下问题:

(1)能够满足CPU所寻址的最大地址空间,否则将存在

无法访问的地址。

第十二章8086/8088小汇编的设计与实现

(2)从速度和存储角度考虑,地址码不能占用太多的字

节。为减少地址码占用的字节数,就应采用多种寻址方式。

(3)尽量满足高级语言中各种数据结构的寻址需要。以

数组元素A[I]为例,位移量对应数组A的开始地址,变址

I(表示数组A的第I个元素)的位距值存放在寄存器(如SI)中,

则对数组元素A[I]的访问地址应是“寄存器(SI)+位移”;有

时位移量是在基址寄存器(如BX)中,则A[I]的访问地址是

“寄存器(BX)+寄存器(SI)”;如果A[I]出现在递归子程序调

用中,则数据是以堆栈形式来逐层存储的,故访问数组元素

A[I]时还需由堆栈指针(如BP)来指示是哪一层子程序调用中

的A[I],其地址应为“寄存器(BP)+寄存器(SI)+位移”。由

此可见,至少要有如上所述的几种寻址方式才能满足程序语

言的特殊使用(数组、递归子程序)要求。

第十二章8086/8088小汇编的设计与实现

通常一条指令被分为若干字段(每个字段为几个二进制

位),其中一个字段称为操作码,说明计算机该做什么,其

余字段称为操作数,指出该指令在执行中所需要的信息。一

个操作数可以是一个具体数据,也可以是存储数据的寄存

器或存储器地址。一般指令格式如下:

第十二章8086/8088小汇编的设计与实现

指令可以含有若干个操作数,但操作数越多指令的长度

也就越长,所占用的存储空间就越大,指令送入CPU所花

费的时间也越多。为了减少指令的长度,一般指令都只允

许有一个或两个操作数,而且双操作数指令中的一个操作数

必须存放在寄存器中。这是由于存储器和I/O空间相当大,

表示其地址必须占用较多的二进制位,因而就势必引起指令

长度的增加。而一个计算机所具有的寄存器很少(

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档