⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iolib.s

📁 minux的源代码,一个非常小的操作系统
💻 S
字号:
! Some I/O related routines like:
!	unsigned char inb(int port);
!	unsigned short inw(int port);
!	void outb(int port, int value);
!	void outw(int port, int value);
!	void rep_inb(int port, unsigned char *buf, size_t count);
!	void rep_inw(int port, unsigned short *buf, size_t count);
!	void rep_outb(int port, unsigned char *buf, size_t count);
!	void rep_outw(int port, unsigned short *buf, size_t count);
!	void intr_enable(void);
!	void intr_disable(void);

.text
.define _inb
_inb:
	push	bp
	mov	bp, sp
	mov	dx, 4(bp)		! port
	inb	dx			! read 1 byte
	xorb	ah, ah
	pop	bp
	ret

.define _inw
_inw:
	push	bp
	mov	bp, sp
	mov	dx, 4(bp)		! port
	in	dx			! read 1 word
	pop	bp
	ret

.define _outb
_outb:
	push	bp
	mov	bp, sp
	mov	dx, 4(bp)		! port
	mov	ax, 4+2(bp)		! value
	outb	dx			! output 1 byte
	pop	bp
	ret

.define _outw
_outw:
	push	bp
	mov	bp, sp
	mov	dx, 4(bp)		! port
	mov	ax, 4+2(bp)		! value
	out	dx			! output 1 word
	pop	bp
	ret

.define _rep_inb
_rep_inb:
	push	bp
	mov	bp, sp
	push	di
	mov	dx, 4(bp)		! port
	mov	di, 6(bp)		! buf
	mov	cx, 8(bp)		! byte count
    rep	inb	dx			! input many bytes
	pop	di
	pop	bp
	ret

.define _rep_inw
_rep_inw:
	push	bp
	mov	bp, sp
	push	di
	mov	dx, 4(bp)		! port
	mov	di, 6(bp)		! buf
	mov	cx, 8(bp)		! byte count
	shr	cx, #1			! word count
    rep	in	dx			! input many words
	pop	di
	pop	bp
	ret

.define _rep_outb
_rep_outb:
	push	bp
	mov	bp, sp
	push	si
	mov	dx, 4(bp)		! port
	mov	si, 6(bp)		! buf
	mov	cx, 8(bp)		! byte count
    rep	outb	dx			! output many bytes
	pop	si
	pop	bp
	ret

.define _rep_outw
_rep_outw:
	push	bp
	mov	bp, sp
	push	si
	mov	dx, 4(bp)		! port
	mov	si, 6(bp)		! buf
	mov	cx, 8(bp)		! byte count
	shr	cx, #1			! word count
    rep	out	dx			! output many words
	pop	si
	pop	bp
	ret

.define _intr_disable
_intr_disable:
	push	bp
	mov	bp, sp
	cli
	pop	bp
	ret

.define _intr_enable
_intr_enable:
	push	bp
	mov	bp, sp
	sti
	pop	bp
	ret

⌨️ 快捷键说明

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