diff options
| author | Carlos Maiolino <[email protected]> | 2025-08-25 08:15:02 +0200 |
|---|---|---|
| committer | Carlos Maiolino <[email protected]> | 2025-08-25 08:18:48 +0200 |
| commit | 7b988e680727beed1d75ff4f0e48158f4465f122 (patch) | |
| tree | 95781ceec64b4cce1100c7217708fb9557304717 /src/io/io.asm | |
| parent | 897269a38bf0befbb2daf1fd261acc6f95d8b2a8 (diff) | |
IO: Add in/out declarations/definitions
I've forgotten to commit this when working on interrupts. The OS
won't build without these helpers.
They are used for now mostly to setup PICs.
Signed-off-by: Carlos Maiolino <[email protected]>
Diffstat (limited to 'src/io/io.asm')
| -rw-r--r-- | src/io/io.asm | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/io/io.asm b/src/io/io.asm new file mode 100644 index 0000000..37ad7eb --- /dev/null +++ b/src/io/io.asm @@ -0,0 +1,56 @@ +section .asm + +global insb +global insw +global outb +global outw + +insb: + push ebp + mov ebp, esp + + xor eax, eax ; Zero out eax + mov dx, [ebp+8] + in al, dx + + mov esp, ebp + pop ebp + ret + +insw: + push ebp + mov ebp, esp + + xor eax, eax ; Zero out eax + mov dx, [ebp+8] + in ax, dx + + mov esp, ebp + pop ebp + ret + +outb: + push ebp + mov ebp, esp + + xor eax, eax + mov ax, [ebp+12] ; val to write + mov dx, [ebp+8] ; to this port + out dx, al + + mov esp, ebp + pop ebp + ret + +outw: + push ebp + mov ebp, esp + + xor eax, eax + mov ax, [ebp+12] ; val to write + mov dx, [ebp+8] ; to this port + out dx, ax + + mov esp, ebp + pop ebp + ret |
