update lab1-2 pdfs and add comments for bootasm.S in lab1-8
This commit is contained in:
parent
8e8cd64a2b
commit
d1f5187601
@ -27,23 +27,23 @@ start:
|
||||
# address line 20 is tied low, so that addresses higher than
|
||||
# 1MB wrap around to zero by default. This code undoes this.
|
||||
seta20.1:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.1
|
||||
|
||||
movb $0xd1, %al # 0xd1 -> port 0x64
|
||||
outb %al, $0x64
|
||||
outb %al, $0x64 # 0xd1 means: write data to 8042's P2 port
|
||||
|
||||
seta20.2:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.2
|
||||
|
||||
movb $0xdf, %al # 0xdf -> port 0x60
|
||||
outb %al, $0x60
|
||||
outb %al, $0x60 # 0xdf = 11011111, means set P2's A20 bit(the 1 bit) to 1
|
||||
|
||||
movb $0xdf, %al # 0xdf -> port 0x60
|
||||
outb %al, $0x60
|
||||
movb $0xdf, %al # 0xdf -> port 0x60, do it again!
|
||||
outb %al, $0x60 # 0xdf = 11011111, means set P2's A20 bit(the 1 bit) to 1
|
||||
|
||||
# Switch from real to protected mode, using a bootstrap GDT
|
||||
# and segment translation that makes virtual addresses
|
||||
|
@ -28,20 +28,20 @@ start:
|
||||
# address line 20 is tied low, so that addresses higher than
|
||||
# 1MB wrap around to zero by default. This code undoes this.
|
||||
seta20.1:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.1
|
||||
|
||||
movb $0xd1, %al # 0xd1 -> port 0x64
|
||||
outb %al, $0x64
|
||||
outb %al, $0x64 # 0xd1 means: write data to 8042's P2 port
|
||||
|
||||
seta20.2:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.2
|
||||
|
||||
movb $0xdf, %al # 0xdf -> port 0x60
|
||||
outb %al, $0x60
|
||||
outb %al, $0x60 # 0xdf = 11011111, means set P2's A20 bit(the 1 bit) to 1
|
||||
|
||||
probe_memory:
|
||||
movl $0, 0x8000
|
||||
|
@ -28,20 +28,20 @@ start:
|
||||
# address line 20 is tied low, so that addresses higher than
|
||||
# 1MB wrap around to zero by default. This code undoes this.
|
||||
seta20.1:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.1
|
||||
|
||||
movb $0xd1, %al # 0xd1 -> port 0x64
|
||||
outb %al, $0x64
|
||||
outb %al, $0x64 # 0xd1 means: write data to 8042's P2 port
|
||||
|
||||
seta20.2:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.2
|
||||
|
||||
movb $0xdf, %al # 0xdf -> port 0x60
|
||||
outb %al, $0x60
|
||||
outb %al, $0x60 # 0xdf = 11011111, means set P2's A20 bit(the 1 bit) to 1
|
||||
|
||||
probe_memory:
|
||||
movl $0, 0x8000
|
||||
|
@ -28,20 +28,20 @@ start:
|
||||
# address line 20 is tied low, so that addresses higher than
|
||||
# 1MB wrap around to zero by default. This code undoes this.
|
||||
seta20.1:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.1
|
||||
|
||||
movb $0xd1, %al # 0xd1 -> port 0x64
|
||||
outb %al, $0x64
|
||||
outb %al, $0x64 # 0xd1 means: write data to 8042's P2 port
|
||||
|
||||
seta20.2:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.2
|
||||
|
||||
movb $0xdf, %al # 0xdf -> port 0x60
|
||||
outb %al, $0x60
|
||||
outb %al, $0x60 # 0xdf = 11011111, means set P2's A20 bit(the 1 bit) to 1
|
||||
|
||||
probe_memory:
|
||||
movl $0, 0x8000
|
||||
|
@ -28,20 +28,20 @@ start:
|
||||
# address line 20 is tied low, so that addresses higher than
|
||||
# 1MB wrap around to zero by default. This code undoes this.
|
||||
seta20.1:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.1
|
||||
|
||||
movb $0xd1, %al # 0xd1 -> port 0x64
|
||||
outb %al, $0x64
|
||||
outb %al, $0x64 # 0xd1 means: write data to 8042's P2 port
|
||||
|
||||
seta20.2:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.2
|
||||
|
||||
movb $0xdf, %al # 0xdf -> port 0x60
|
||||
outb %al, $0x60
|
||||
outb %al, $0x60 # 0xdf = 11011111, means set P2's A20 bit(the 1 bit) to 1
|
||||
|
||||
probe_memory:
|
||||
movl $0, 0x8000
|
||||
|
@ -28,20 +28,20 @@ start:
|
||||
# address line 20 is tied low, so that addresses higher than
|
||||
# 1MB wrap around to zero by default. This code undoes this.
|
||||
seta20.1:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.1
|
||||
|
||||
movb $0xd1, %al # 0xd1 -> port 0x64
|
||||
outb %al, $0x64
|
||||
outb %al, $0x64 # 0xd1 means: write data to 8042's P2 port
|
||||
|
||||
seta20.2:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.2
|
||||
|
||||
movb $0xdf, %al # 0xdf -> port 0x60
|
||||
outb %al, $0x60
|
||||
outb %al, $0x60 # 0xdf = 11011111, means set P2's A20 bit(the 1 bit) to 1
|
||||
|
||||
probe_memory:
|
||||
movl $0, 0x8000
|
||||
|
@ -28,20 +28,20 @@ start:
|
||||
# address line 20 is tied low, so that addresses higher than
|
||||
# 1MB wrap around to zero by default. This code undoes this.
|
||||
seta20.1:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.1
|
||||
|
||||
movb $0xd1, %al # 0xd1 -> port 0x64
|
||||
outb %al, $0x64
|
||||
outb %al, $0x64 # 0xd1 means: write data to 8042's P2 port
|
||||
|
||||
seta20.2:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.2
|
||||
|
||||
movb $0xdf, %al # 0xdf -> port 0x60
|
||||
outb %al, $0x60
|
||||
outb %al, $0x60 # 0xdf = 11011111, means set P2's A20 bit(the 1 bit) to 1
|
||||
|
||||
probe_memory:
|
||||
movl $0, 0x8000
|
||||
|
@ -28,20 +28,20 @@ start:
|
||||
# address line 20 is tied low, so that addresses higher than
|
||||
# 1MB wrap around to zero by default. This code undoes this.
|
||||
seta20.1:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.1
|
||||
|
||||
movb $0xd1, %al # 0xd1 -> port 0x64
|
||||
outb %al, $0x64
|
||||
outb %al, $0x64 # 0xd1 means: write data to 8042's P2 port
|
||||
|
||||
seta20.2:
|
||||
inb $0x64, %al # Wait for not busy
|
||||
inb $0x64, %al # Wait for not busy(8042 input buffer empty).
|
||||
testb $0x2, %al
|
||||
jnz seta20.2
|
||||
|
||||
movb $0xdf, %al # 0xdf -> port 0x60
|
||||
outb %al, $0x60
|
||||
outb %al, $0x60 # 0xdf = 11011111, means set P2's A20 bit(the 1 bit) to 1
|
||||
|
||||
probe_memory:
|
||||
movl $0, 0x8000
|
||||
|
BIN
doc/lab1.pdf
BIN
doc/lab1.pdf
Binary file not shown.
BIN
doc/lab2.pdf
BIN
doc/lab2.pdf
Binary file not shown.
Loading…
Reference in New Issue
Block a user