第章 寻址方式和指令系统.ppt

第章 寻址方式和指令系统.ppt

ID:52358261

大小:716.50 KB

页数:206页

时间:2020-04-04

第章 寻址方式和指令系统.ppt_第1页
第章 寻址方式和指令系统.ppt_第2页
第章 寻址方式和指令系统.ppt_第3页
第章 寻址方式和指令系统.ppt_第4页
第章 寻址方式和指令系统.ppt_第5页
资源描述:

《第章 寻址方式和指令系统.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、第3章8086寻址方式和指令系统3.18088/8086的寻址方式3.2指令的机器码表示方法3.38088/8086的指令系统3.18088/8086CPU的寻址方式计算机的指令通常包含操作码和操作数两部分,前者指出操作的性质,后者给出操作的对象。寻找和获得操作数、操作数存放地址或指令转移地址的方法称为寻址方式。8086访问操作数采用多种灵活的寻址方式,使指令系统可以方便地在1M存储空间内寻址。指令有单操作数、双操作数和无操作数之分。如果是双操作数指令,要用逗号将两个操作数分开,逗号右边的操作数称为源操作数,左边的为目的操作数。指令的

2、一般格式:操作码操作数,……,操作数计算机中的指令由操作码字段和操作数段组成。操作码:指计算机所要执行的操作,或称为指出操作类型,是一种助记符。操作数:指在指令执行操作的过程中所需要的操作数。该字段除可以是操作数本身外,也可以是操作数地址或是地址的一部分,还可以是指向操作数地址的指针或其它有关操作数的信息。一、立即寻址方式所提供的操作数直接包含在指令中。它紧跟在操作码的后面,与操作码一起放在代码段区域中,如图所示。例如:MOVCX,2A50H立即寻址方式的指令常用来给寄存器赋初值。立即数不但可以送到寄存器中,还可以送到一个存储单元(8

3、位)中或两个连续的存储单元(16位)中去。在所有的指令中,立即数只能作源操作数,不能作目的操作数。另外要注意,以A~F打头的数字出理在指令中时,前面一定要加一个数字0,以免与其它符号相混淆。如将立即数FF00H送到AX的指令必须写成如下形式:MOVAX,0FF00H二、寄存器寻址方式在这种寻址方式下,操作数包含在寄存器中,由指令指定寄存器的名称。对于16位操作数,寄存器可以是AX、BX、CX、DX,SI、D1、SP和BP等。对于8位操作数,则用寄存器AH、AL、BH、BL、CH、CL、DH和DL。例如:MOVDX,AXMOVCL,AH

4、注意:源操作数的长度必须与目的操作数一致,否则会出错。例如,不能将AH寄存器的内容传送到CX中去,尽管CX寄存器放得下AH的内容,但汇编程序不知道将它放到CH还是CL中。这种寻址方式的优点是:寄存器数量一般在几个到几十个,比存储器单元少很多,因此它的地址码短,从而缩短了指令长度,节省了程序存储空间;另一方面,从寄存器里取数比从存储器里取数的速度快得多,从而提高了指令执行速度。三、直接寻址方式1.直接寻址方式在IBMPC机中,把操作数的偏移地址称为有效地址EA。使用直接寻址方式的指令时,存储单元的有效地址直接由指令给出,在它们的机器码中

5、,有效地址存放在代码段中指令的操作码之后。而该地址单元中的数据总是存放在存储器中,所以必须先求出操作数的物理地址,然后再访问存储器,才能取得操作数。当采用直接寻址指令时,如果指令中没有用前缀指明操作数存放在哪一段,则默认为使用的段寄存器为数据段寄存器DS,操作数的物理地址=16×DS+EA=10H×DS+EA。指令中有效地址上必须加一个方括号,以便与立即数相区别。例如:MOVAX,[2000H]MOVAL,[2000H]2.段超越前缀如果要对代码段、堆栈段或附加段寄存器所指出的存储区进行直接寻址,应在指令中指定段超越前缀。例如,数据若

6、放在附加段中,则应在有效地址前加“ES:”,这里的冒号“:”称为修改属性运算符,计算物理地址时要用ES作基地址,而不再是默认值DS。例如:MOVAX,ES:[500H]该指令的源操作数的物理地址等于16×ES+500H。3.符号地址在汇编语言中还允许用符号地址代替数值地址,实际上就是给存储单元起一个名字,这样,如果要与这些单元打交道,只要使用其名字即可,不必记住具体数值是多少。例如:MOVAX,AREA1光从指令的形式上看,AREAl不仅可代表符号地址,也可以表示它是一个16位的立即数,两者之间究竟如何来区别呢?程序中还必须事先安排说

7、明语句也叫做伪指令来加以说明。例如:AREA1EQU0867HMOVAX,AREA1例如:AREA1DW0867HMOVAX,AREA1(该指令也可写为MOVAX,[AREA1])符号地址也允许段超越,下面两条指令是等价的,即:MOVAX,ES:AREA1MOVAX,ES:[AREA1]源操作数的物理地址=16×ES+AREA1四、寄存器间接寻址指令中给出的寄存器中的值不是操作数本身,而是操作数的有效地址,这种寻址方式称为寄存器间接寻址。寄存器名称外面必须加方括号,以与寄存器寻址方式相区别。这类指令中使用的寄存器有基址寄存器BX、BP

8、及变址寄存器SI、DI。如果指令中指定的寄存器是BX、SI或DI,则默认操作数存放在数据段中,这时要用数据段寄存器DS的内容作为段地址,操作数的物理地址由DS左移4位后与BX、SI或Dl相加形成。例如:MOVBX,[SI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。