mirror of https://github.com/garritfra/ditto-os
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
857 B
21 lines
857 B
global outb ; make the label outb visible outside this file |
|
global inb |
|
|
|
; outb - send a byte to an I/O port |
|
; stack: [esp + 8] the data byte |
|
; [esp + 4] the I/O port |
|
; [esp ] return address |
|
outb: |
|
mov al, [esp + 8] ; move the data to be sent into the al register |
|
mov dx, [esp + 4] ; move the address of the I/O port into the dx register |
|
out dx, al ; send the data to the I/O port |
|
ret ; return to the calling function |
|
|
|
|
|
; inb - returns a byte from the given I/O port |
|
; stack: [esp + 4] The address of the I/O port |
|
; [esp ] The return address |
|
inb: |
|
mov dx, [esp + 4] ; move the address of the I/O port to the dx register |
|
in al, dx ; read a byte from the I/O port and store it in the al register |
|
ret ; return the read byte
|