• 2024-04-24MIT6.S081 Lab Traps
    本实验主要是关于如何使用陷阱实现系统调用的。RISC-Vassembly(easy)这个部分主要是回答一些问题。首先我们按照实验的指示,运行下面的命令得到一份容易读懂的汇编和C结合的代码,位于user/call.asm。makefs.imgQuestion1Whichregisterscontainargumentstofuncti
  • 2024-02-14【XV6】 traps
    代码:https://github.com/JasenChao/xv6-labs.gitbacktrace题目要求实现backtrace来对堆栈上调用发生错误的地方进行跟踪。寄存器s0包含指向当前堆栈帧的指针,那么返回地址就位于帧指针的固定偏移量-8,前一个fp地址的偏移量为-16。在riscv.h文件中增加提示中的代码:staticinline
  • 2024-02-04MIT 6.1810 Lab: traps
    lab网址:https://pdos.csail.mit.edu/6.828/2022/labs/traps.htmlxv6Book:https://pdos.csail.mit.edu/6.828/2022/xv6/book-riscv-rev3.pdf写前思考我们都知道,在用户进程执行系统调用时,内核代替用户进程执行,那么这种代替是一种什么样的代替。这个过程是还属于用户进程,只是执
  • 2024-01-30[MIT 6.S081] Lab: traps
    Lab:trapsRISC-Vassembly在这个任务中我们需要观察call.asm汇编。intg(intx){0: 1141 addi sp,sp,-162: e422 sd s0,8(sp)4: 0800 addi s0,sp,16returnx+3;}6: 250d addiw a0,a0
  • 2023-08-20MIT6.s081/6.828 lectrue5/6:System call entry/exit 以及 Lab4 心得
    这篇博客主要复习lecture05:GDBcallingconentions和lecture06:Systemcallentry/exit的内容,外加Lab4:traps的心得前置知识这里的前置知识是指lecture05:GDBcallingconentions的内容,是由TA来上的,是作为lecture06的前置知识,主要讲解了以下三点内容:指令集架构的概念
  • 2023-07-13Xv6 Lab4
    RISC-VassemblyWhichregisterscontainargumentstofunctions?Forexample,whichregisterholds13inmain'scalltoprintf?a2寄存器,函数调用时,参数从左到右会依次保存在a0,a1,a2,a3寄存器,似乎是一直到寄存器a7的。Whereisthecalltofunctionfinthe