Fix some badly formated bullet point lists

This commit is contained in:
Thomas Lovén 2016-12-14 08:03:52 +01:00
parent 2a5df36007
commit ae8250db6b
4 changed files with 10 additions and 0 deletions

View File

@ -71,6 +71,7 @@ despite the problems they cause with segmentation and TSS and stuff.
###Changing the privilege level ###Changing the privilege level
Changing the CPL is actually two different problems. Changing the CPL is actually two different problems.
- Increasing CPL - Increasing CPL
- Decreasing CPL - Decreasing CPL
@ -89,15 +90,18 @@ or through the `IRET` instruction
Let's change the topic for a minute and think about interrupts. Let's change the topic for a minute and think about interrupts.
Say the processor is running in __Kernel Mode__ (Ring 0, CPL=0) and an Say the processor is running in __Kernel Mode__ (Ring 0, CPL=0) and an
interrupt happens. What the processor does then is: interrupt happens. What the processor does then is:
- Push SS and ESP to stack - Push SS and ESP to stack
- Push EFLAGS to stack - Push EFLAGS to stack
- Push CS and EIP to stack - Push CS and EIP to stack
- Load CS and EIP from the IDT - Load CS and EIP from the IDT
and from there the interrupt handling routine takes over. and from there the interrupt handling routine takes over.
The interrupt handling routine does its thing and then runs the `IRET` The interrupt handling routine does its thing and then runs the `IRET`
instruction. `IRET` makes the processor do the same thing as when an interrupt instruction. `IRET` makes the processor do the same thing as when an interrupt
happens, but _backwards_. I.e: happens, but _backwards_. I.e:
- Pop CS and EIP from stack - Pop CS and EIP from stack
- Pop EFLAGS from stack - Pop EFLAGS from stack
- Pop SS and ESP from stack - Pop SS and ESP from stack

View File

@ -11,11 +11,14 @@ arguments and return addresses. In other words, the stack comes in use
every time there is a function call. every time there is a function call.
The common way a function call is handled by a c compiler is this: The common way a function call is handled by a c compiler is this:
- Push each argument to the stack (in reverse order) - Push each argument to the stack (in reverse order)
- Execute the `CALL` instruction (which pushes the address of the next - Execute the `CALL` instruction (which pushes the address of the next
instruction to the stack and jumps to the callee) instruction to the stack and jumps to the callee)
The callee does the following: The callee does the following:
- Push the base pointer to the stack - Push the base pointer to the stack
- Sets the base pointer to the current stack pointer - Sets the base pointer to the current stack pointer
- Subtracts the stack pointer to reserve place for local variables. - Subtracts the stack pointer to reserve place for local variables.
@ -23,6 +26,7 @@ The callee does the following:
- Increase the stack pointer to free the space used by local variables. - Increase the stack pointer to free the space used by local variables.
- Pop the base pointer from stack. - Pop the base pointer from stack.
- Execute the `RET` instruction (which puts the return value in EAX and - Execute the `RET` instruction (which puts the return value in EAX and
jumps to the position at the top of the stack. jumps to the position at the top of the stack.
While the callee is doing its thing it now has access to all the pushed While the callee is doing its thing it now has access to all the pushed

View File

@ -36,6 +36,7 @@ appreciate some of those features.
What I appreciate even more - at least this far - is the following What I appreciate even more - at least this far - is the following
hardware features of the Z80 compared to the 8080. hardware features of the Z80 compared to the 8080.
- A single 5V power supply - as opposed to +5V, -5V and +12V for the 8080 - A single 5V power supply - as opposed to +5V, -5V and +12V for the 8080
- A single clock signal input - as opposed to two for the 8080 - A single clock signal input - as opposed to two for the 8080

View File

@ -150,6 +150,7 @@ Let's take a closer look at the signals used.
![Z80 tester running 3](/media/img/z80_running3.png) ![Z80 tester running 3](/media/img/z80_running3.png)
Here I also connected to the oscilloscope Here I also connected to the oscilloscope
- `/M1` - `/M1`
- `/MREQ` - `/MREQ`
- `/RD` - `/RD`