📄 serial_init.s
字号:
///////////////////////////////////////////////////////////////////////////////
COM_RDR = 0x3F8
COM_THR = 0x3F8
COM_IER = 0x3F9
COM_BRDL = 0x3F8
COM_BRDH = 0x3F9
COM_IIR = 0x3FA
COM_FCR = 0x3FA
COM_LCR = 0x3FB
COM_MCR = 0x3FC
COM_LSR = 0x3FD
COM_MSR = 0x3FE
.globl serial_init
.align 4
serial_init:
pushl %edx
pushl %eax
movw $COM_MCR, %dx
movb $0x00, %al
outb %al, %dx
movw $COM_LCR, %dx
movb $0x9f, %al
outb %al, %dx
movw $COM_BRDL, %dx
movw serial_BAUD, %ax
outb %al, %dx
movw $COM_BRDH, %dx
movb %ah, %al
outb %al, %dx
movw $COM_LCR, %dx
movb $0x1f, %al
outb %al, %dx
movw $COM_RDR, %dx
inb %dx, %al
movw $COM_LSR, %dx
inb %dx, %al
movw $COM_LSR, %dx
movb $0x60, %al
outb %al, %dx
movw $COM_MSR, %dx
inb %dx, %al
movw $COM_MSR, %dx
movb $0x00, %al
outb %al, %dx
movw $COM_IER, %dx
movb $0x07, %al
outb %al, %dx
movw $COM_IIR, %dx
inb %dx, %al
inb %dx, %al
inb %dx, %al
movw $COM_MCR, %dx
movb $0x08, %al
outb %al, %dx
popl %eax
popl %edx
ret
///////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -