2025-11-15 00:48:00
间接寻址就像找邻居借钥匙,先到邻居家拿钥匙,再去开门。指令里存的是地址A,地址A里存的是地址B,真正操作数在地址B里。这样设计能让程序更灵活,比如动态加载模块时,不需要每次都修改指令,只需要更新地址A里的值就行。
为什么这么设计呢?早期Unix系统指令长度限制在32字节,直接存操作数太占地方。比如加法指令要存两个数,间接寻址只需要存地址列表,实际数据存别的地方。1979年《The Design of the Unix Operating System》提到, indirect addressing让指令长度减少30%,执行效率提升约15%。比如打开文件时,指令先查表找到文件描述符地址,再根据描述符找具体数据,这样多层级操作更安全。后句子可能合并成“指令存地址A,地址A存地址B,操作数在B里”,标点可能变成“指令存地址A,地址A存地址B,操作数在B里”。
本题链接: