首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDP-11汇编程序中的寻址方式

PDP-11汇编程序中的寻址方式
EN

Stack Overflow用户
提问于 2010-06-07 03:04:42
回答 3查看 584关注 0票数 0

我有一个关于pdp-11(模拟器)的小问题,我有这个命令(它从地址1000开始) add 2500,#2500

以下是最初的列表:

代码语言:javascript
复制
register/address - initial value
pc                 1000
sp                 600
2500               3000

我想知道这个小片段到底是如何运行的,在我的小册子中我发现:首先它从地址1000读取信息,在这个地址里面我们有值066727,在我们从地址1002读取数字之后,值必须是2500(因为添加2500,#2500),但是在我的小册子中我有1474而没有任何解释为什么,我知道我有这里的相对寻址模式,但是为什么1474在地址1002里面而不是2500,提前感谢任何帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-16 01:07:35

代码语言:javascript
复制
ADD 2500,#2500

编译为

代码语言:javascript
复制
    0:      066727 ; ADD
    2:      002474 ; 2500 - 6 (next instruction offset)
    4:      002500 ; #2500 (literal value)
    6:      ...    ; next instruction
  ...
 2500:      003000
票数 0
EN

Stack Overflow用户

发布于 2012-09-29 09:34:26

如果您有:

代码语言:javascript
复制
    add     2500,#2500      ;add content of location 2500 to immediate value.

汇编的第一个字将是指令,第二个字将是第一个操作数( 2500)的地址数据,第三个字将是立即值2500。第一个操作数的PC相对寻址模式会将PC的值与给定的值相加,以获得操作数的地址。这将是此时2500和PC之间的差异(1474,在增量之后读取偏移量)。

代码语言:javascript
复制
1004 + 1474 = 2500, the address of the data.

通常,人们会这样做:

代码语言:javascript
复制
    add     #2500,2500       ;add 2500 to the word at location 2500.

因为第一个示例将结果存储在指令流中。

票数 2
EN

Stack Overflow用户

发布于 2010-06-07 03:09:45

我不记得所有的寻址模式,但请查看地址1474,看看它是否包含2500。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2985509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档