免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1879 | 回复: 2
打印 上一主题 下一主题

关于PDP-11/40寻址方式的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-22 19:00 |只看该作者 |倒序浏览
最近在看莱昂氏的v6源码分析,查看PDP-11/40 Processor HB时对于其中的Relative Addressing和Relative Deferred Addressing有些疑问。
Relative Addressing中一个例子是这样的:
Symbolic            Octal Code
INC A                  005267
                           000054
指令执行过程:
Before
Address                    Octal Code
1020                         005267
1022                         000054
1024
.
.
.
1100                          000000
After
Address                     Octal Code
1020                          005267
1022                          000054
1024
.
.
.
1100                          000001
指令的执行是把PC当作变址寻址的寄存器,但我不明白A在这里的意思。到底是目地存储单元的地址还是内容还是编译程序的一个助记符?紧随指令后的000054是怎么添加进去的?在手册上还提到这种寻址方式的另一种格式:
OPR X(PC)
如果写成这种格式应该就是:INC 54(PC) 这是变址寻址,指令占用两个字。第二个字存储了54这个偏移量。
另外一个用到PC当作寄存器寻址的堆栈操作的代码如下:
Address                      Octal Code                       Assembler Syntax
076322                       010167           SUBR:       MOV R1,TEMP1   ;save R1
076324                       000074                            *
076326                       010267                            MOV R2,TEMP2   ;save R2
076330                       000072                            *
.
.
.
076410                       016701                             MOV TEMP1,R1   ;Restore R1
076412                       000006                             *
076414                       016702                             MOV TEMP2,R2   ;Restore R2
076416                       000002                             *
076420                       000207                             RTS PC
076422                       000000                             TEMP1: 0
076424                       000000                             TEMP2: 0
此处,用的也是Relative Addressing。那个A又变成0,是何道理?
由于这计算机年代久远,我已经Google很久,找不到有帮助的资料,就捧着手册看了半天没想明白。各位有没有了解PDP-11汇编的帮我看看啊,谢谢了!

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
2 [报告]
发表于 2009-11-23 16:28 |只看该作者
这年头,懂pdp11的都快退休了吧。

论坛徽章:
0
3 [报告]
发表于 2009-11-25 17:00 |只看该作者
我自己来吧~
Address                 contents
a                            OPR X(PC),dd
a+2                        X
a+4                        ...
Just before the instruction is executed, the contents of PC is incremented by 2 and hence equals a+2.
Just after X is fetched from a+2,PC is again incremented and equals a+4.Thus,the address A of the source operand,namely X+(PC),is given by A=X+a+4.
The instruction
                    OPR X(PC),dd
can be abbreviated in assembly language into
                    OPR A,dd       (A=X+a+4)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP