📄 os.xml
字号:
</summary>
</member>
<member name="M:Hanselman.CST352.OS.DumpContextSwitchIn">
<summary>
If the DumpContextSwitch Configuration option is set to True, reports the Context Switch.
Used for debugging
</summary>
</member>
<member name="M:Hanselman.CST352.OS.DumpContextSwitchOut">
<summary>
If the DumpContextSwitch Configuration option is set to True, reports the Context Switch.
Used for debugging
</summary>
</member>
<member name="M:Hanselman.CST352.OS.DumpProcessMemory(Hanselman.CST352.Process)">
<summary>
Outputs a view of memory from the Process's point of view
</summary>
<param name="p">The Process to Dump</param>
</member>
<member name="M:Hanselman.CST352.OS.SaveCPUState">
<summary>
Called on a context switch. Copy the CPU's <see cref="F:Hanselman.CST352.CPU.registers"/> to the <see cref="F:Hanselman.CST352.OS.currentProcess"/>'s <see cref="F:Hanselman.CST352.CPU.registers"/>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.LoadCPUState">
<summary>
Called on a context switch. Copy the <see cref="F:Hanselman.CST352.OS.currentProcess"/>'s <see cref="F:Hanselman.CST352.Process.ProcessControlBlock.registers"/> to the CPU's <see cref="F:Hanselman.CST352.CPU.registers"/>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.createProcess(Hanselman.CST352.Program,System.UInt32)">
<summary>
Take as a <see cref="T:Hanselman.CST352.Program"/> and creates a Process object, adding it to the <see cref="F:Hanselman.CST352.OS.runningProcesses"/>
</summary>
<param name="prog">Program to load</param>
<param name="memorySize">Size of memory in bytes to assign to this Process</param>
<returns>The newly created Process</returns>
</member>
<member name="M:Hanselman.CST352.OS.ReleaseLocksOfProccess(System.UInt32)">
<summary>
Releases any locks held by this process.
This function is called when the process exits.
</summary>
<param name="pid">Process ID</param>
</member>
<member name="M:Hanselman.CST352.OS.FetchUIntAndMove">
<summary>
Utility function to fetch a 4 byte unsigned int from Process Memory based on the current <see cref="P:Hanselman.CST352.CPU.ip"/>
</summary>
<returns>a new uint</returns>
</member>
<member name="M:Hanselman.CST352.OS.Incr">
<summary>
Increments register
<pre>1 r1</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Addi">
<summary>
Adds constant 1 to register 1
<pre>
2 r1, $1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Addr">
<summary>
Adds r2 to r1 and stores the value in r1
<pre>
3 r1, r2
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Cmpi">
<summary>
Compare contents of r1 with 1. If r1 < 9 set sign flag. If r1 > 9 clear sign flag.
If r1 == 9 set zero flag.
<pre>
14 r1, $9
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Cmpr">
<summary>
Compare contents of r1 with r2. If r1 < r2 set sign flag. If r1 > r2 clear sign flag.
If r1 == r2 set zero flag.
<pre>
15 r1, r2
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Call">
<summary>
Call the procedure at offset r1 bytes from the current instrucion.
The address of the next instruction to excetute after a return is pushed on the stack
<pre>
19 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Callm">
<summary>
Call the procedure at offset of the bytes in memory pointed by r1 from the current instrucion.
The address of the next instruction to excetute after a return is pushed on the stack
<pre>
20 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Ret">
<summary>
Pop the return address from the stack and transfer control to this instruction
<pre>
21
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Jmp">
<summary>
Control transfers to the instruction whose address is r1 bytes relative to the current instruction.
r1 may be negative.
<pre>
13 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Jlt">
<summary>
If the sign flag is set, jump to the instruction that is offset r1 bytes from the current instruction
<pre>
16 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Jgt">
<summary>
If the sign flag is clear, jump to the instruction that is offset r1 bytes from the current instruction
<pre>
17 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Je">
<summary>
If the zero flag is set, jump to the instruction that is offset r1 bytes from the current instruction
<pre>
18 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Noop">
<summary>
Just that, does nothing
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Exit">
<summary>
This opcode causes an exit and the process's memory to be unloaded.
Another process or the idle process must now be scheduled
<pre>
27
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Movi">
<summary>
Moves constant 1 into register 1
<pre>
6 r1, $1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Movr">
<summary>
Moves contents of register2 into register 1
<pre>
7 r1, r2
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Movmr">
<summary>
Moves contents of memory pointed to register 2 into register 1
<pre>
8 r1, r2
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Movrm">
<summary>
Moves contents of register 2 into memory pointed to by register 1
<pre>
9 r1, r2
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Movmm">
<summary>
Moves contents of memory pointed to by register 2 into memory pointed to by register 1
<pre>
10 r1, r2
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Printr">
<summary>
Prints out contents of register 1
<pre>
11 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Printm">
<summary>
Prints out contents of memory pointed to by register 1
<pre>
12 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Input">
<summary>
Read the next 32-bit value into register r1
<pre>
32 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Sleep">
<summary>
Sleep the # of clock cycles as indicated in r1.
Another process or the idle process
must be scheduled at this point.
If the time to sleep is 0, the process sleeps infinitely
<pre>
25 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.SetPriority">
<summary>
Set the priority of the current process to the value
in register r1
<pre>
26 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Pushr">
<summary>
Pushes contents of register 1 onto stack
<pre>
4 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Pushi">
<summary>
Pushes constant 1 onto stack
<pre>
5 $1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.TerminateProcess">
<summary>
Terminate the process whose id is in the register r1
<pre>
34 r1
</pre>
</summary>
</member>
<member name="M:Hanselman.CST352.OS.Popr">
<summary>
Pop the contents at the top of the stack into register r1
<pre>
35 r1
</pre>
</summary>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -