sbio.s

来自「十七种模拟器源代码 非常有用的作课程设计不可缺少的」· S 代码 · 共 107 行

S
107
字号
	.text	.globl _sb_ready, _sb_fragbegin_locked_space:	_sb_ready:	.long 0_sb_frag:	.long 0base:	.long 0irq:	.long 0dma:	.long 0_sb_int_handler:	pushl %eax	pushl %edx	movb $1, _sb_ready	xorb $1, _sb_frag	movl base, %edx	addl $0xE, %edx	inb %dx, %al	movb $0x20, %al	testb $8, irq	jz .Lsb_lowint	outb %al, $0xa0.Lsb_lowint:		outb %al, $0x20	popl %edx	popl %eax	iretend_locked_space:	_sb_write:	pushl %edx	pushl %eax	movl base, %edx	addl $0xC, %edx.Lsb_write_loop:		inb %dx, %al	testb $0x80, %al	jnz .Lsb_write_loop	popl %eax	outb %al, %dx	popl %edx	ret_sb_read:	pushl %edx	movl base, %edx	addl $0xE, %edx.Lsb_read_loop:		inb %dx, %al	testb $0x80, %al	jz .Lsb_read_loop	subl $4, %edx	inb %dx, %al	popl %edx	ret	.globl _sb_init_sb_init:	movl 8(%esp), %edx	movl 12(%esp), %eax	movl %edx, irq	movl %eax, dma	movl 4(%esp), %edx	movl %edx, base	addl $0x6, %edx	movb $1, %al	outb %al, %dx	pushl $1	call _delay	popl %eax	movb $0xE1, %al	call _sb_write	call _sb_read	movb %al, %ah	call _sb_read	ret	.globl _sb1_setrate_sb1_setrate:			.globl _sb_begin_sb_begin:	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?