Chinaunix首页 | 论坛 | 博客
  • 博客访问: 524300
  • 博文数量: 87
  • 博客积分: 4086
  • 博客等级: 上校
  • 技术积分: 900
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-23 15:55
文章分类

全部博文(87)

文章存档

2012年(3)

2010年(13)

2009年(7)

2008年(64)

我的朋友

分类: 项目管理

2008-06-28 11:43:17

一、立即寻址
   
    分两种情况:长立即寻址和段立即寻址
 
    长立即寻址:可指定16位常数位操作数,需要两个指令字,该常数为第二个指令字。
    短立即寻址:可指定8、9或者13位常数为操作数,只需要单个指令,操作数包含再指令当中。
 
 
二、直接寻址
 
    采用直接寻址方式,可访问128个字的块内数据寄存器。一般把128个字构成的块叫做数据页面。整个64K数据空间包括了512个数据页面。状态寄存器ST0中的9位数据页面指针(DP)中的值确定当前的数据页面。
 
    除了知道数据页面外,处理器还必须知道访问该页面上的哪一个字。这是由7位的偏移量决定的。偏移量由指令寄存器的低7位确定。
 
    处理器将DP和指令寄存器的低7位构成了完整的16位地址。需要注意的是,所有的程序都要初始化DP,复位并不会初始化DP,而DP处于不确定的状态。
 
 
三、间接寻址
   
    8个辅助寄存器(AR0--AR7)可以提供很灵活的间接寻址功能。使用一个辅助寄存中的16位地址,可以访问64K数据空间中的任意位置。
 
    为选择某个辅助寄存器,可以将数值0--7加载到ST0中的一个三位辅助寄存器指针(ARP)中。由ARP指向的辅助寄存器叫做当前辅助寄存器或者当前AR,当前辅助寄存器中的内容作为数据存储器的地址。
 
间接寻址方式的选择
 
    间接寻址有四种方式可以选择:
 
    (1)不增加也不减少。指令使用当前辅助寄存器中的内容作为数据存储器的地址,但是当前辅助寄存器中的内容不增加也不减少。
 
    (2)增加1或减少1。指令使用当前辅助寄存器中的内容作为数据存储器的地址,并且当前辅助寄存器中的内容增加1或者减少1.
 
    (3)增加或减少一个变址量。AR0的值是这个变址量。指令使用当前辅助寄存器中的内容作为数据存储器的地址,然后当前辅助寄存器中的值增加或者减少一个变址量。
 
    (4)按逆向方式增加或减少一个变址量。指令使用当前辅助寄存器中的内容作为数据存储器的地址,然后当前辅助寄存器中的值增加或者减少一个变址量。在这种情况下,加或减是按逆向进位的方式进行的,主要用于快速傅里叶变换。
 
   
阅读(1685) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~