长春建站怎么做,怎么用mvc架构做网站,运城门户网站建设,谷搜易外贸网站建设说明#xff1a;看完这节#xff0c;不会让你称为汇编程序员#xff0c;知识操作系统的前置。 ref#xff1a;https://binhack.readthedocs.io/zh/latest/assembly/mips.html https://www.bilibili.com/video/BV1w94y1a7i8/?p7
MIPS
MIPS的意思是 “无内部互锁流水级的微…说明看完这节不会让你称为汇编程序员知识操作系统的前置。 refhttps://binhack.readthedocs.io/zh/latest/assembly/mips.html https://www.bilibili.com/video/BV1w94y1a7i8/?p7
MIPS
MIPS的意思是 “无内部互锁流水级的微处理器” (Microprocessor without interlocked piped stages)
RISC-ⅤInstruction Set ArchitecureISA
指令特点
所有指令都是32位长指令操作必须符合流水线MIPS指令一次只能修改一个寄存器的值3操作数指令32个寄存器没有条件标志位
寄存器
MIPS下一共有32个通用寄存器在汇编中寄存器标志由 $ 符开头寄存器表示可以有两种方式 直接使用该寄存器对应的编号例如从 $0 到 $31 使用对应的寄存器名称 例如 $t1 , $sp 栈的走向是从高地址到低地址
寄存器的编号以及其用途
name寄存器名称寄存器用途zerorareturn AddressReturn back into pc, addr isnot normally pushed onto the stackspstack pointerstack grows downwardtpThread pointerContains Core Number(i.e,“HartID”)gpGlobal pointerused by complilera0~a7Function Args/Working Regs寄存器是用来作为函数的参数t0~t7Temp/Working Regss0~s11Callee-Savedif useda function must-save before useon stack-Restore before returning Caller Saved 寄存器的值由调用者负责保存和恢复。保存方法通常是把寄存器的值压入堆栈中调用者保存完成后在被调用者子函数中就可以随意覆盖这些寄存器的值了。最典型的就是 ra Return address寄存器用来保存返回地址a 调用 bb 的下一行就是返回地址这个地址由 a 复制保存和恢复。Callee Saved 寄存器的值由被调用函数负责保存和恢复。调用者就不必保存这些寄存器的值直接进行子函数调用子函数在覆盖这些寄存器之前需要先保存这些寄存器的值并在返回前恢复他们。 ref:https://pdos.csail.mit.edu/6.828/2020/readings/riscv-calling.pdf
因为寄存器没有状态位所以需要
什么是用户态和内核态两者有何区别什么是中断和系统调用两者有何区别计算机在运行时是如何确定当前处于用户态还是内核态的 回答 在 RISC-V 中有 3 种权限不同的模式Machine mode、Supervisor mode、User mode machine mode 拥有所有的特权一般在启动时候用于配置电脑的环境 supervisor mode 的权限相对低些可以执行特权指令例如是否使能中断等 user mode 的权限级别最低完成一些特殊功能的时候需要通过系统调用进入 supervisor mode 内核态可以运行在 machine mode 和 supervisor mode 下用户态只能运行在 user mode中断与系统调用 中断分为外中断和内中断外中断包括 I/O 中断、时钟中断等内中断包括异常、系统调用和中止 系统调用指的是处于用户态下的程序需要完成一些只有内核态才能完成的功能时通过系统调用的方式进入内核态从而实现功能的行为 主动调用返回到下一条指令 一种中断需要利用中断的机制来实现 在 RISC-V 中通过寄存器 sstatus 中保存的 SPP 位来判断是处于内核态 (1) 还是用户态 (0)
timer interrupt
在计算机系统中定时器中断Timer Interrupt是一种重要的机制它允许计算机按照一定的时间间隔执行特定的任务。 基于硬件的Timer Interrupt是通过计算机系统中的定时器芯片来实现的。定时器芯片由硬件设计师将其集成在计算机主板上通过预设定时器的数值和中断控制寄存器的设置实现定时器中断的功能。 在xv6中 timer interrupt 时机器处于 machine mode 马上它会触发一个“software interrupt” 转到kernel model