操作数的寻址方式(非常重要)

来源:互联网 发布:防恶意代码软件 编辑:程序博客网 时间:2024/05/01 22:57
形成操作数的有效地址的方法叫操作数的寻址方式。
      指令中的操作数字段的地址码由形式地址和寻址方式特征位等组合形成。一般的指令中所给出的地址码并不是操作数的有效地址。
      形式地址也叫偏移量,是指令字结构中给定的地址量。寻址过程就是把操作数的形式地址变换成有效地址的过程。
                       形式地址      寻址方式          有效地址

寻址方式:

1、隐含寻址方式
     不明显给出操作数的地址,在指令中隐含着操作数的地址。如单地址指令,不明显指出第二个操作数的地址,而规定AC累加器做位第二操作数地址。
2、立即寻址方式
(1)地址字段给出的是可以立即使用的操作数实际值,称立即寻址方式。
(2)优缺点:
提供操作数最快,但精度较低,可采用变字长格式解决。           
      例如:在IBM-PC指令系统中
                       MOV        AX,05FFH
3、直接寻址方式
   (1) 含义:地址字段直接指明操作数在存储器内的位置的寻址方法。即形式地址等于有效地址,
   (2) 缺点:直接寻址方式中指令字长限制了一条指令所能够访问的最大主存空间,可以使用可变字长指令格式来解决此局限性。利用扩大了的操作数地址码就能全部访问主存储器的所有的存储单元。
    例如:在IBM-PC指令系统中  MOV        AX,[3000H]
4、间接寻址方式
(1)含义:指令字中地址码字段D给出的不是操作数的真正地址,而是操作数地址的指示器,或者说D单元的内容才是操作数的有效地址。
  (2)优缺点:
         A、优点:实现简便,对编程带来较大的灵活性
          B、缺点:
           (a)多次访问内存,增加了指令的执行时间;
        (b)占用主存储器单元多。
         对程序编制能带来较大的灵活性表现在:
         (I)间接寻址方式的指令可以访问大的存储空间,扩大了指令的寻址能力。
         (II)当操作数地址改变时,只需修改间接地址指示器的单元内容,而不必修改指令,原指令的功能照样实现。这给程序编制带来很大方便。
5、寄存器寻址方式和寄存器间接寻址方式
        当操作数不放在内存中而放在CPU的通用寄存器中时,采用寄存器寻址方式。
        指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。

寄存器间接寻址方式与寄存器寻址方式区别:
      指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。
6、相对寻址方式
     把程序计数器PC作为基本地址寄存器,指令字中的形式地址码D作为位移量,则有效地址EA=(PC)+D。相对寻址主要用于转移指令。
相对寻址就是相对于当前的指令地址的意思。
   
    ⑴ 位移量可正、可负,通常用补码表示。
    ⑵  位移量是操作数位置与本指令之间的相对距离。
    ⑶ 无须用指令的绝对地址变成,所编程序可以放在内存的任何地方。
、基址寻址方式
      将CPU中的基址寄存器的内容加上指令格式中的形式地址形成有效地址。EA=D+X。其中,X是基址R,D是偏移量。

            基址寻址方式主要用以解决程序在存储器中的定位和扩大寻址空间等问题。
8、变址寻址方式
     把CPU中的某个变值寄存器的内容与偏移量D相加形成有效地址。

使用的目的在于实现程序块的规律变化。不改变指令本身就可以实现变址寄存器中内容的有规律变化。如自动加1,减1等等。
9、复合寻址方式:
      (A) 变址间址寻址方式
                其含义是先将变址寄存器的内容X和形式地址A相加得到A+X,然后再作间接寻址,得到操作数的有效地址。故操作数的有效地址为:
EA=(A+X)
      (B)  间址变址寻址方式
                含义是先将形式地址取间接变换(A)=N,然后把N和变址寄存器的内容X相加,得到操作数的有效地址。故操作数的有效地址为:
EA=N+X=(A)+X
      (C)  Intel 8086/8088中基址变址寻址方式
                基址寄存器可以采用BX或BP,变址寄存器可以用SI或DI,有效地址是通过将基址寄存器中的值、变址寄存器中的值和位移量三这相加而求得的。
D)分页寻址方式
                若计算机中欲采用直接寻址方式,但由于其访问的内存地址空间受指令中地址码字段长度的制约,若内存空间较大,则可采用分页寻址方式来解决。将指令中操作数地址码可以访问到的内存地址空间称为一页,则整个内存空间可以按页的大小分为多个页面。
                例如设内存储器容量为64K个单元,而指令中地址码长度为9位,则每一页有512个单元,可将内存空间划分为64K/512=128页。为访问128页,需要7位代码来表示页号。若预先将页号送入页号寄存器,把页号寄存器的内容与指令寄存器中形式地址两者拼接起来,就能获得一个可以访问整个内存空间的有效地址。
(E)段寻址方式

   20根地址线220=1M,将1M以64K为单位
   分成若干段,由一个基地址加上某些寄
   存器提供的16位偏移量来形成实际的20
   位物理地址。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三星手机不小心设置成英文了怎么办 手游方舟国际版渡渡鸟跟丢了怎么办 一打电话4g变2g怎么办 手机4g突然变2g怎么办 江湖风云录八卦门任务拒绝了怎么办 百度网盘下载时显示违规信息怎么办 在海马助手下载的游戏闪退怎么办 手机版百度云盘不能普通下载怎么办 手机版百度云盘一直加载中怎么办 登别人的网盘单同步通讯录了怎么办 被培训公司骗了贷款之后该怎么办 乐教乐学孩子登陆你那忘记了怎么办 脸擦破了痂掉了留斑怎么办 挤黑头后鼻子又红又疼怎么办 香奈儿邂逅清新淡香水不喷怎么办 脚面被压了肿起来了怎么办 每天加班很累反而失眠严重怎么办 减肥药吃了口臭嘴巴苦怎么办 上火引起的牙疼怎么办吃什么药 舌苔厚口气重怎么办应该吃什么药 宝宝老是额头热四肢不热怎么办 考老师考砸了心理崩溃了怎么办 苹果手机一会白屏一会黑屏怎么办 360云盘的东西删不了怎么办 手机邮箱打开的文件疑似病毒怎么办 电脑qq发送的文件失效了怎么办 小米4c温控文件打开是乱码怎么办 超星尔雅用学号登录密码忘了怎么办 全脸做激光去黄褐斑后脸发红怎么办 上传到微云中的视频下载不了怎么办 微云保存的小电影下载不了怎么办 苹果手机下载有云朵下载不了怎么办 手机下载登录忘了密码了怎么办 软软件被手机加密忘了密码怎么办 苹果手机想下载东西忘了密码怎么办 已经不念书几年了突然想上学怎么办 江湖风云录把王老爷子杀了怎么办 练扫踢胫骨旁边的肌肉受伤了怎么办 四个月宝宝没抱住摔了头部怎么办 老公老是跟年轻的小姑娘聊天怎么办 老婆出轨老公想离婚又舍不得怎么办