SIC机器中RESW伪指令的工作原理及全流程解析
关于SIC机器中
ALPHA RESW 1伪指令的详细解释 一、汇编器中的处理过程
RESW是Reserve Word的缩写,核心作用是在内存中预留指定字数的存储空间- 汇编器处理到该语句时,首先将当前程序计数器(PC)的当前值分配给符号
ALPHA,作为它的内存起始地址 - 随后将PC的值加上
1 * 3(SIC机器单个字占用3字节),完成存储空间的地址预留——这个过程仅更新地址标记,不会生成任何可执行代码 - 最后把
ALPHA的地址信息存入符号表,供后续指令(比如STA ALPHA)引用
二、目标代码中的体现
RESW属于汇编伪指令,并非机器可执行指令,因此不会生成对应的机器码字节- 目标文件仅会在符号表或重定位信息中记录
ALPHA的地址偏移和预留空间大小,预留的内存空间在目标代码中无实际数据填充(加载前为未初始化状态) - 对比
FIVE WORD 5:该伪指令会生成3字节的二进制数据(对应数值5的机器表示),而RESW不会产生任何代码数据
三、加载与链接流程
- 加载阶段:加载器读取目标文件的段信息,根据
RESW的标记在内存中划出连续3字节的空间(对应1个字),该空间初始值由内存当前状态决定,无固定初始值 - 链接阶段:由于
ALPHA是同一模块内的内部符号,链接器直接将汇编器分配的相对地址转换为实际物理地址;若为外部符号则会完成地址重定位 - 当执行
STA ALPHA指令时,累加器中的数据会被写入该预留空间,此时该地址才会被赋予确定的数值(即从FIVE加载的5)
四、处理器微指令层面的执行机制
RESW本身不涉及微指令执行,仅为后续数据操作预留存储位置,相关微指令执行体现在访问该地址的指令(如STA ALPHA)中:
- 处理器取出
STA ALPHA的机器码,解析出操作数ALPHA的有效地址(EA) - 微指令序列依次完成:
- 从指令中提取有效地址并送入地址总线
- 将累加器A中的3字节数据送入数据总线
- 发送内存写信号,触发内存控制器完成数据写入操作
- 整个过程中,
RESW预留的空间仅作为数据存储的目的地,本身无对应的微指令执行逻辑
内容的提问来源于stack exchange,提问作者Midhun Raj
相关产品推荐
相关产品推荐

