2011-08-02 30 views
0

我碰到一个代码,一个SIC/XE机....下面是立即程序计数器相对寻址

0003   LDB #LENGTH ;a 
0020   LDA #3  ;b 
0033 LENGTH RESW 1  ;c 
103C  +LDT #4096 ;d 

现在它被赋予了其对我来说问题源行...那'a'将有一个对象代码,其中pc相对和即时模式将被使用....但b将只有立即模式....现在长度为0033,所以为什么要使用pc相对模式... 。如果传统上必须使用pc相对模式,那么为什么不在'b'中使用pc relative和immediate?

+0

对不起,我不能跟随你的问题。你能澄清吗? (它看起来像一个确实不是PC相对的,但我不知道这个特定的架构。) –

+0

@david我读了(我指的是leland l beck的系统软件的书),在sic/xe结构地址是pc相对如果这超出了范围,然后基地相对....所以我非常相信,这将是这种情况,但后来我看到'B'只使用立即模式(尽管可行的PC模式不使用).. 。然后在下一段中,书中陈述了'a'的情况,没有给出任何理由 – avinash

+0

-1请参阅我的回答。 –

回答

0

对不起,但这不是我所期望的一个问题。

首先,您的“代码行”完全脱离了上下文,因为第一列表示位置,所以我们缺少所有位置之间的位置。一个减去。

其次,请用适当的标记表明这是家庭作业。一个减去。

三,请包括对原始来源的引用,如the PPT file your university gave you。二十减去。

想想你自己很幸运,我只能减一个。

现在我不是一个坏人,所有加在一起,所以这里是我的答案FWIW:

长度是属于预留3字节代码的地址0033的标签,位于的附近当前PC位置。由于汇编程序在其决策中是自治的,因为PC相对优先,并且由于最大2047的偏移已经足够,所以汇编程序会采用PC-ralative。如果您查看链接的PPT中的操作码,则会看到2D(十六进制)的PC相对(p = 1)偏移量,LDB指令后的位置为6,2D + 6 = 33(全部十六进制),QED。

在同样的意义上是“B”:由于B = 0且p = 0,我们使用直接寻址和操作码具有的3“地址”,所以A装有恒定3.

只有操作码中的加号表示使用带有20位地址字段的4字节指令的格式4。