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

📄 service_isr.s

📁 一个操作系统的源代码
💻 S
字号:
;/** service_isr.s; **; ** Original Author: Kasper Verdich Lund; ** Date: 11.15.99; **; ** Description:; **; ** 0.0.1 11.15.99 Kasper Verdich Lund - (no comments); ** 0.0.2 12.22.99 Guido de Jong - more services implemented; **; ** This program is free software, you can redistribute it and/or; ** modify it under the terms of the GNU General Public License; ** as published by the Free Software Foundation; either version; ** 2 of the License, or (at your option) any later version.; **; ** This program is distributed in the hope that it will be; ** useful, but WITHOUT ANY WARRANTY; without even the implied; ** warranty or MERCHANTABILITY or FITNESS FOR A PARTICULAR; ** PURPOSE.  See the GNU General Public License for more; ** details.; **; ** You should have received a copy of the GNU General Public; ** License along with this program; if not, write to the; ** Free Software Foundation, Inc., 59 Temple Place, Suite 330,; ** Boston, MA 02111-1307 USA; **; *********************************************************Apostle OS**/	SECTION .text		GLOBAL	__SendTo	GLOBAL	__ReceiveFrom	GLOBAL	__CallRemote	GLOBAL	__SendReceive	GLOBAL	__Unmap	GLOBAL	__CreateProcess	GLOBAL	__Exit	GLOBAL	__ProcessID	GLOBAL	__Yield	GLOBAL	__Sleep	GLOBAL	__EnableMultithreading	GLOBAL	__DisableMultithreading	GLOBAL	__service0x90	GLOBAL	__service0x91	EXTERN	SendTo	EXTERN	ReceiveFrom	EXTERN	CallRemote	EXTERN	SendReceive	EXTERN	Unmap	EXTERN	CreateProcess	EXTERN	Exit	EXTERN	ProcessID	EXTERN	Yield	EXTERN	Sleep		EXTERN	EnableMultithreading	EXTERN	DisableMultithreading	EXTERN	service0x90	EXTERN	service0x91	EXTERN	halt		ALIGN	4__SendTo:	push	edi	push	esi	push	ebp	push	ebx	push	ecx	push	edx	push	eax	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	SendTo	add	esp,+28		; do not pop regs!	iret	ALIGN	4__ReceiveFrom:	push	edi	push	esi	push	ebp	push	ebx	push	ecx	push	edx	push	eax	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	ReceiveFrom	add	esp,+28		; do not pop regs	iret	ALIGN	4__CallRemote:	push	edi	push	esi	push	ebp	push	ebx	push	ecx	push	edx	push	eax	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	CallRemote	add	esp,+28		; do not pop regs!	iret	ALIGN	4__SendReceive:	push	edi	push	esi	push	ebp	push	ebx	push	ecx	push	edx	push	eax	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	SendReceive	add	esp,+28		; do not pop regs	iret	ALIGN	4__Unmap:	push	esi	push	eax	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	Unmap	add	esp,+8		; do not pop regs	iret	ALIGN	4__CreateProcess:	push	esi	push	eax	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	CreateProcess	add	esp,+8		; do not pop regs	iret	ALIGN	4__Exit:	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	Exit	iret	ALIGN	4__ProcessID:	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	ProcessID	iret	ALIGN	4__Yield:	push	eax	push	ecx	push	edx	push	ebx	push	ebp	push	esi	push	edi	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	Yield	pop	edi	pop	esi	pop	ebp	pop	ebx	pop	edx	pop	ecx	pop	eax	call	halt		; this shouldn't happen :-(	ALIGN	4__Sleep:	push	eax	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	Sleep	add	esp,+4		; do not pop regs	iret	ALIGN	4__EnableMultithreading:	pusha	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	EnableMultithreading	popa	iret	ALIGN	4__DisableMultithreading:	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	DisableMultithreading	iret			ALIGN	4__service0x90:	mov	ax,0x23	mov	ds,ax		; reset ds to default	call	service0x90	iret	ALIGN	4__service0x91:	mov	ax,0x23		mov	ds,ax		; reset ds to default	call	service0x91	iret		

⌨️ 快捷键说明

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