diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-22 22:17:18 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-22 22:17:18 +0200 |
commit | 13435bfc961fd2abd5f688ce37e94d5f96b0873b (patch) | |
tree | b295a28626d56e244215b04d71173967a4239bc6 /src/hardware/port.asm | |
parent | 107de40014ade48725b991dbe46f5d172da1078b (diff) | |
download | abaos-13435bfc961fd2abd5f688ce37e94d5f96b0873b.tar.gz abaos-13435bfc961fd2abd5f688ce37e94d5f96b0873b.tar.bz2 |
added 16-bit port class
Diffstat (limited to 'src/hardware/port.asm')
-rw-r--r-- | src/hardware/port.asm | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/hardware/port.asm b/src/hardware/port.asm index 555a4e8..c7e7bc4 100644 --- a/src/hardware/port.asm +++ b/src/hardware/port.asm @@ -24,6 +24,30 @@ port8_read: leave ret +global port16_write +global port16_read + +; void port16_write( port16_t *port, uint16_t data ); +port16_write: + push ebp + mov ebp, esp + mov ecx, [ebp+8] + mov edx, DWORD [ecx] + mov ax, WORD [ebp+12] + out dx, ax + leave + ret + +; uint16_t port16_read( port16_t *port ) +port16_read: + push ebp + mov ebp, esp + mov ecx, DWORD [ebp+8] + mov edx, [ecx] + in ax, dx + leave + ret + global port32_write global port32_read |