diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2017-06-10 21:26:24 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2017-06-10 21:26:24 +0200 |
commit | d6d1bdfefafff50b7b6d15d218c0a188570be541 (patch) | |
tree | 15ee8de727d0be5d126efda146b2879de0a72773 /src/hardware/port.asm | |
parent | eea5bf4b859eb56c5772c58ca54937a90a10e7ee (diff) | |
download | abaos-d6d1bdfefafff50b7b6d15d218c0a188570be541.tar.gz abaos-d6d1bdfefafff50b7b6d15d218c0a188570be541.tar.bz2 |
some big renames into subdirs of aspects
updated README
removed size_t in sys/types.h and sys/types.h itself, size_t is in stddef.h
Diffstat (limited to 'src/hardware/port.asm')
-rw-r--r-- | src/hardware/port.asm | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/hardware/port.asm b/src/hardware/port.asm new file mode 100644 index 0000000..555a4e8 --- /dev/null +++ b/src/hardware/port.asm @@ -0,0 +1,49 @@ +[bits 32] + +global port8_write +global port8_read + +; void port8_write( port8_t *port, uint8_t data ); +port8_write: + push ebp + mov ebp, esp + mov ecx, [ebp+8] + mov edx, DWORD [ecx] + movzx ax, BYTE [ebp+12] + out dx, al + leave + ret + +; uint8_t port8_read( port8_t *port ) +port8_read: + push ebp + mov ebp, esp + mov ecx, DWORD [ebp+8] + mov edx, [ecx] + in al, dx + leave + ret + +global port32_write +global port32_read + +; void port32_write( port32_t *port, uint32_t data ); +port32_write: + push ebp + mov ebp, esp + mov ecx, [ebp+8] + mov edx, DWORD [ecx] + mov eax, DWORD [ebp+12] + out dx, eax + leave + ret + +; uint32_t port32_read( port32_t *port ) +port32_read: + push ebp + mov ebp, esp + mov ecx, DWORD [ebp+8] + mov edx, [ecx] + in eax, dx + leave + ret |