异常处理记录
摘要:异常处理过程: 当我们遇到异常时,我们首先需要把当前程序P的状态保存起来,而后跳到异常处理程序进行诊断。 这里我们从指令集状态机S = {<R,M>}的视角来讨论咯 R为寄存器,M为内存。 异常处理程序和P事两个不同的程序,它们使用不同的M,所以:只要异常处理程序不随意修改P的M,则不必进行实质性的
阅读全文
必答总结2
摘要:1、理解YEMU的执行过程 简单来说分为三步,取值译码执行。 取值:YEMU中定义了指令数组,每次取值都依次在指令数组中读取。 uint8_t M[NMEM] = { // 内存, 其中包含一个计算z = x + y的程序 0b11100110, // load 6# | R[0] <- M[y]
阅读全文
接口函数解析
摘要:这两天做到PA2.3了,这里的代码涉及到AM和NEMU比较乱,想着写个随笔缕一下思路。 讲义中首先讲到 框架代码为映射定义了一个结构体类型IOMap(在nemu/include/device/map.h中定义), 包括名字, 映射的起始地址和结束地址, 映射的目标空间, 以及一个回调函数. 然后在n
阅读全文