第4章学习笔记:ISA、汇编与过程调用
课程笔记沿程序真实运行路径学习ISA、汇编与过程调用,始终区分抽象接口、实现状态和可观测证据。
关联:章节 第4章 ISA、汇编与过程调用
第4章笔记:ISA、汇编与过程调用
本章要解决的问题
沿程序真实运行路径学习ISA、汇编与过程调用,始终区分抽象接口、实现状态和可观测证据。 本章七课是一条连续推理链,不是七个标题。先确定上一课输出怎样成为下一课输入,再记录对象、事件、状态和证据。
七课连接
- ISA是软硬件契约:关系
ISA=state\ transition;练习为为《ISA是软硬件契约》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 ISA=state\ transition 复算关键量;边界为不能把《ISA是软硬件契约》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《寄存器与操作数》。 - 寄存器与操作数:关系
dst=f(src_1,src_2);练习为为《寄存器与操作数》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 dst=f(src_1,src_2) 复算关键量;边界为不能把《寄存器与操作数》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《寻址和访存》。 - 寻址和访存:关系
EA=base+offset;练习为为《寻址和访存》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 EA=base+offset 复算关键量;边界为不能把《寻址和访存》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《分支与控制流》。 - 分支与控制流:关系
PC'=condition?target:PC+n;练习为为《分支与控制流》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 PC'=condition?target:PC+n 复算关键量;边界为不能把《分支与控制流》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《ABI与栈帧》。 - ABI与栈帧:关系
caller/callee\ saved;练习为为《ABI与栈帧》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 caller/callee\ saved 复算关键量;边界为不能把《ABI与栈帧》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《系统调用与特权切换》。 - 系统调用与特权切换:关系
user\to kernel\to user;练习为为《系统调用与特权切换》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 user\to kernel\to user 复算关键量;边界为不能把《系统调用与特权切换》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《最小ISA解释器实验》。 - 最小ISA解释器实验:关系
step(state,instruction);练习为为《最小ISA解释器实验》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 step(state,instruction) 复算关键量;边界为不能把《最小ISA解释器实验》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《取指—译码—执行闭环》。
章内学习法
先闭卷画一条最短执行轨迹,再为每个箭头标主体和所属层;随后逐式复算,运行本章代码实验四组测试,并增加一个越界、权限、冲突、乱序或故障输入。只要实际值与模型不同,就保存首个偏差,不用后续噪声替代根因。
错题与复习
把错误归入分层混淆、位宽/单位、状态跳步、事件顺序、权限遗漏、并发交错、故障恢复或观察窗八类。一周后更换参数重做阶段卷;能向同学从现象讲到机制、公式、实验和边界,才算学会。