亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sysalib.s

?? pentium4 pc的vxworks bsp源代碼
?? S
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* sysALib.s - PC-386 system-dependent routines *//* Copyright 1984-2002 Wind River Systems, Inc. *//*modification history--------------------02b,12nov02,hdn  made CR4 initialization only for P5 or later (spr 83992)02a,05nov02,hdn  made sysCpuProbe() execution conditional (spr 76279)01z,13mar02,hdn  resumed GDT loading after copying from text to RAM (spr 71298)01y,02nov01,hdn  removed GDT loading not to access sysGdt[] in text (spr 71298)01x,14aug01,hdn  added Pentium4 support in sysCpuProbe().		 added sysCsSuper/Exc/Int as task/exc/int code selector.		 added FUNC/FUNC_LABEL GTEXT/GDATA macros.01w,12may98,hdn  renamed sysCpuid to sysCpuId.01v,09apr98,hdn  added support for PentiumPro in sysCpuProbe().01u,25mar97,hdn  removed a line of CD=NW=1 from sysCpuProbe().01t,03sep96,hdn  added the compression support. removed BOOTABLE macro.01s,17jun96,hdn  made sysCpuProbe() user-callable.01r,13jun96,hdn  added sysInLong() sysInLongString() sysOutLong()		 sysOutLongString().01q,01nov94,hdn  added a way to find out Pentium in sysCpuProbe().		 changed a way to find out 386 by checking AC bit.01p,19oct94,hdn  renamed sysInitGdt to sysGdt.		 added sysLoadGdt(), sysA20on().		 added sysA20Result indicates the state of A20 line.01o,23sep94,hdn  deleted _sysBootType, sysRegSet(), sysRegGet().		 added jmp instruction in sysInXX() and sysOutXX().01n,28apr94,hdn  made sysReboot() simple.01m,06apr94,hdn  created a processor checking routine sysCpuProbe().		 created the system GDT at GDT_BASE_OFFSET.01l,17feb94,hdn  changed name RAM_ENTRY to RAM_HIGH_ADRS		 changed to put the image in upper memory.01k,27oct93,hdn  added _sysBootType.01j,25aug93,hdn  changed a way to enable A20.01i,12aug93,hdn  added codes to load a user defined global descriptor table.		 made warm start works changing sysReboot().		 deleted sysGDTRSet().01h,09aug93,hdn  added codes to recognize a type of cpu.01g,17jun93,hdn  updated to 5.1.01f,08arp93,jdi  doc cleanup.01e,26mar93,hdn  added sysReg[GS]et, sysGDTRSet. added another sysInit.01d,16oct92,hdn  added Code Descriptors for the nesting interrupt.01c,29sep92,hdn  added i80387 support. deleted __fixdfsi.01b,28aug92,hdn  fixed __fixdfsi temporary.01a,28feb92,hdn  written based on frc386 version.*//*DESCRIPTIONThis module contains system-dependent routines written in assemblylanguage.This module must be the first specified in the \f3ld\f1 command used tobuild the system.  The sysInit() routine is the system start-up code.INTERNALMany routines in this module doesn't use the "c" frame pointer %ebp@ !This is only for the benefit of the stacktrace facility to allow it to properly trace tasks executing within these routines.SEE ALSO: .I "i80386 32-Bit Microprocessor User's Manual"*/#define _ASMLANGUAGE#include "vxWorks.h"#include "asm.h"#include "regs.h"#include "sysLib.h"#include "config.h"        .data	.globl  FUNC(copyright_wind_river)	.long   FUNC(copyright_wind_river)	/* externals */	.globl	FUNC(usrInit)		/* system initialization routine */	.globl	VAR(sysProcessor)	/* initialized to NONE(-1) in sysLib.c */	/* internals */	.globl	sysInit			/* start of system code */	.globl	_sysInit		/* start of system code */	.globl	GTEXT(sysInByte)	.globl	GTEXT(sysInWord)	.globl	GTEXT(sysInLong)	.globl	GTEXT(sysInWordString)	.globl	GTEXT(sysInLongString)	.globl	GTEXT(sysOutByte)	.globl	GTEXT(sysOutWord)	.globl	GTEXT(sysOutLong)	.globl	GTEXT(sysOutWordString)	.globl	GTEXT(sysOutLongString)	.globl	GTEXT(sysReboot)	.globl	GTEXT(sysWait)	.globl	GTEXT(sysCpuProbe)	.globl	GTEXT(sysLoadGdt)	.globl	GTEXT(sysGdtr)	.globl	GTEXT(sysGdt)	.globl  GDATA(sysCsSuper)	/* code selector: supervisor mode */	.globl  GDATA(sysCsExc)		/* code selector: exception */	.globl  GDATA(sysCsInt)		/* code selector: interrupt */	/* locals */FUNC_LABEL(vendorIdIntel)		/* CPUID vendor ID - Intel */	.ascii	"GenuineIntel"	.text	.balign 16/********************************************************************************* sysInit - start after boot** This routine is the system start-up entry point for VxWorks in RAM, the* first code executed after booting.  It disables interrupts, sets up* the stack, and jumps to the C routine usrInit() in usrConfig.c.** The initial stack is set to grow down from the address of sysInit().  This* stack is used only by usrInit() and is never used again.  Memory for the* stack must be accounted for when determining the system load address.** NOTE: This routine should not be called by the user.** RETURNS: N/A* sysInit ()              /@ THIS IS NOT A CALLABLE ROUTINE @/ */sysInit:_sysInit:	cli				/* LOCK INTERRUPT */	movl    $ BOOT_WARM_AUTOBOOT,%ebx /* %ebx has the startType */	movl	$ FUNC(sysInit),%esp	/* initialize stack pointer */	movl	$0,%ebp			/* initialize frame pointer */	ARCH_REGS_INIT			/* initialize DR[0-7] CR0 EFLAGS */#if	(CPU == PENTIUM) || (CPU == PENTIUM2) || (CPU == PENTIUM3) || \	(CPU == PENTIUM4)	/* ARCH_CR4_INIT		/@ initialize CR4 for P5,6,7 */	xorl	%eax, %eax		/* zero EAX */	movl	%eax, %cr4		/* initialize CR4 */#endif	/* (CPU == PENTIUM) || (CPU == PENTIUM[234]) */	movl	$ FUNC(sysGdt),%esi	/* set src addr (&sysGdt) */	movl	FUNC(pSysGdt),%edi	/* set dst addr (pSysGdt) */	movl	%edi,%eax	movl	$ GDT_ENTRIES,%ecx	/* number of GDT entries */	movl	%ecx,%edx	shll	$1,%ecx			/* set (nLongs of GDT) to copy */	cld	rep	movsl				/* copy GDT from src to dst */	pushl	%eax			/* push the (GDT base addr) */	shll	$3,%edx			/* get (nBytes of GDT) */	decl	%edx			/* get (nBytes of GDT) - 1 */	shll	$16,%edx		/* move it to the upper 16 */	pushl	%edx			/* push the nBytes of GDT - 1 */	leal	2(%esp),%eax		/* get the addr of (size:addr) */	pushl	%eax			/* push it as a parameter */	call	FUNC(sysLoadGdt)	/* load the brand new GDT in RAM */	pushl	%ebx			/* push the startType */	movl	$ FUNC(usrInit),%eax	movl	$ FUNC(sysInit),%edx	/* push return address */	pushl	%edx			/*   for emulation for call */	pushl	$0			/* push EFLAGS, 0 */	pushl	$0x0008			/* a selector 0x08 is 2nd one */	pushl	%eax			/* push EIP,  FUNC(usrInit) */	iret				/* iret *//********************************************************************************* sysInByte - input one byte from I/O space** RETURNS: Byte data from the I/O port.* UCHAR sysInByte (address)*     int address;	/@ I/O port address @/ */	.balign 16,0x90FUNC_LABEL(sysInByte)	movl	SP_ARG1(%esp),%edx	movl	$0,%eax	inb	%dx,%al	jmp	sysInByte0sysInByte0:	ret/********************************************************************************* sysInWord - input one word from I/O space** RETURNS: Word data from the I/O port.* USHORT sysInWord (address)*     int address;	/@ I/O port address @/ */	.balign 16,0x90FUNC_LABEL(sysInWord)	movl	SP_ARG1(%esp),%edx	movl	$0,%eax	inw	%dx,%ax	jmp	sysInWord0sysInWord0:	ret/********************************************************************************* sysInLong - input one long-word from I/O space** RETURNS: Long-Word data from the I/O port.* USHORT sysInLong (address)*     int address;	/@ I/O port address @/ */	.balign 16,0x90FUNC_LABEL(sysInLong)	movl	SP_ARG1(%esp),%edx	movl	$0,%eax	inl	%dx,%eax	jmp	sysInLong0sysInLong0:	ret/********************************************************************************* sysOutByte - output one byte to I/O space** RETURNS: N/A* void sysOutByte (address, data)*     int address;	/@ I/O port address @/*     char data;	/@ data written to the port @/ */	.balign 16,0x90FUNC_LABEL(sysOutByte)	movl	SP_ARG1(%esp),%edx	movl	SP_ARG2(%esp),%eax	outb	%al,%dx	jmp	sysOutByte0sysOutByte0:	ret/********************************************************************************* sysOutWord - output one word to I/O space** RETURNS: N/A* void sysOutWord (address, data)*     int address;	/@ I/O port address @/*     short data;	/@ data written to the port @/ */	.balign 16,0x90FUNC_LABEL(sysOutWord)	movl	SP_ARG1(%esp),%edx	movl	SP_ARG2(%esp),%eax	outw	%ax,%dx	jmp	sysOutWord0sysOutWord0:	ret/********************************************************************************* sysOutLong - output one long-word to I/O space** RETURNS: N/A* void sysOutLong (address, data)*     int address;	/@ I/O port address @/*     long data;	/@ data written to the port @/ */	.balign 16,0x90FUNC_LABEL(sysOutLong)	movl	SP_ARG1(%esp),%edx	movl	SP_ARG2(%esp),%eax	outl	%eax,%dx	jmp	sysOutLong0sysOutLong0:	ret/********************************************************************************* sysInWordString - input word string from I/O space** RETURNS: N/A* void sysInWordString (port, address, count)*     int port;		/@ I/O port address @/*     short *address;	/@ address of data read from the port @/*     int count;	/@ count @/ */	.balign 16,0x90FUNC_LABEL(sysInWordString)	pushl	%edi	movl	SP_ARG1+4(%esp),%edx	movl	SP_ARG2+4(%esp),%edi	movl	SP_ARG3+4(%esp),%ecx	cld	rep	insw	%dx,(%edi)	movl	%edi,%eax	popl	%edi	ret/********************************************************************************* sysInLongString - input long string from I/O space** RETURNS: N/A* void sysInLongString (port, address, count)*     int port;		/@ I/O port address @/*     long *address;	/@ address of data read from the port @/*     int count;	/@ count @/ */	.balign 16,0x90FUNC_LABEL(sysInLongString)	pushl	%edi	movl	SP_ARG1+4(%esp),%edx	movl	SP_ARG2+4(%esp),%edi	movl	SP_ARG3+4(%esp),%ecx	cld	rep	insl	%dx,(%edi)	movl	%edi,%eax	popl	%edi	ret/********************************************************************************* sysOutWordString - output word string to I/O space** RETURNS: N/A* void sysOutWordString (port, address, count)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99久久久欧美国产| 3751色影院一区二区三区| 粉嫩在线一区二区三区视频| 麻豆成人免费电影| 免费在线观看一区| 老司机免费视频一区二区三区| 午夜国产不卡在线观看视频| 亚洲国产成人av网| 午夜av电影一区| 免费成人深夜小野草| 精品一区二区三区不卡| 国产自产高清不卡| 国产xxx精品视频大全| 成人国产视频在线观看| 91免费在线视频观看| 色妞www精品视频| 在线不卡中文字幕播放| 欧美裸体一区二区三区| 精品国产制服丝袜高跟| 欧美激情一区二区三区蜜桃视频| 国产精品理论片在线观看| 亚洲精品国产第一综合99久久| 亚洲第一主播视频| 蜜桃av一区二区三区电影| 韩国av一区二区三区| 国产福利电影一区二区三区| 日韩一区二区三区四区| 久久久久久久久久美女| 亚洲欧洲在线观看av| 亚洲国产精品一区二区久久| 美女视频一区二区三区| 国产成人在线看| 欧美这里有精品| 日韩欧美三级在线| 中文字幕在线不卡国产视频| 午夜视频一区二区| 国产盗摄视频一区二区三区| 色综合激情五月| 精品国产髙清在线看国产毛片| 国产区在线观看成人精品| 亚洲综合久久久| 国产在线视频一区二区| 在线免费不卡视频| 久久综合资源网| 亚洲一级二级在线| 国产一区二区三区四| 欧美自拍偷拍一区| 久久―日本道色综合久久| 亚洲精品日韩综合观看成人91| 麻豆国产精品官网| 色悠悠亚洲一区二区| 精品国产一二三区| 亚洲一区二区三区在线看| 国产一区二区三区观看| 欧美亚洲国产一区在线观看网站| 久久午夜羞羞影院免费观看| 亚洲免费观看高清完整版在线观看 | 国内精品久久久久影院色 | 欧美成人官网二区| 亚洲精品日产精品乱码不卡| 国产在线不卡一区| 欧美精品自拍偷拍| 国产精品久久久久久久久动漫 | 久草中文综合在线| 日本国产一区二区| 国产欧美在线观看一区| 91亚洲男人天堂| 精品国产区一区| 日韩国产欧美一区二区三区| 99视频有精品| 欧美国产日韩亚洲一区| 久久99精品国产91久久来源| 欧美三级在线看| 亚洲精品免费在线播放| 成人激情免费视频| 国产亚洲综合色| 麻豆高清免费国产一区| 在线电影国产精品| 亚洲一二三区视频在线观看| 91在线免费播放| 国产精品国产三级国产普通话蜜臀 | 久久久久88色偷偷免费| 久久国产精品一区二区| 欧美理论电影在线| 亚洲午夜一区二区| 欧美调教femdomvk| 一区二区三区四区在线播放| 成人avav在线| 国产精品网站一区| 国产传媒一区在线| 2021久久国产精品不只是精品| 日本午夜一本久久久综合| 欧美亚洲综合网| 一区二区三区欧美日韩| 色综合久久六月婷婷中文字幕| 中文字幕中文字幕一区| 成人av网站在线| 国产精品久久久久久户外露出| 成人av网址在线| 国产精品免费丝袜| 成人激情黄色小说| 亚洲欧洲另类国产综合| 91麻豆自制传媒国产之光| 亚洲精品亚洲人成人网 | 日韩一区在线免费观看| av不卡在线播放| 1024成人网色www| 一本一道波多野结衣一区二区 | 91原创在线视频| 亚洲黄色av一区| 日本道精品一区二区三区 | 欧美熟乱第一页| 天天操天天干天天综合网| 欧美精品一卡二卡| 92国产精品观看| 夜夜精品视频一区二区| 欧美日韩免费电影| 免费成人在线观看视频| 久久亚洲精品小早川怜子| 国产91综合一区在线观看| 中文字幕第一区综合| 色综合久久久久综合体桃花网| 亚洲午夜羞羞片| 精品日韩一区二区三区| 成人在线视频首页| 亚洲精品视频一区| 欧美一区欧美二区| 国产jizzjizz一区二区| 亚洲精品欧美专区| 日韩一二三四区| 懂色av一区二区三区蜜臀| 亚洲精品大片www| 欧美一级免费大片| 国产成人免费视频网站| 亚洲精品大片www| 日韩欧美亚洲一区二区| www.亚洲色图| 天天色图综合网| 日本一区二区三级电影在线观看| 91美女在线看| 另类的小说在线视频另类成人小视频在线| 精品国产乱码久久久久久夜甘婷婷| 丰满少妇久久久久久久| 亚洲sss视频在线视频| 久久精品日产第一区二区三区高清版| 99精品视频在线播放观看| 视频在线在亚洲| 国产精品欧美综合在线| 欧美日本韩国一区二区三区视频| 国产一区二区按摩在线观看| 亚洲老司机在线| 2020日本不卡一区二区视频| 在线一区二区三区四区| 国产一区二区中文字幕| 亚洲成人精品影院| 亚洲国产高清在线| 91精品国产综合久久香蕉的特点| av亚洲产国偷v产偷v自拍| 蜜桃视频免费观看一区| 亚洲精品国产无天堂网2021| 久久在线观看免费| 欧美精品久久99久久在免费线 | 色婷婷综合久久久中文字幕| 精品一区二区在线视频| 亚洲一区二区在线免费看| 久久久国产精品午夜一区ai换脸| 欧美日韩精品是欧美日韩精品| 成人午夜激情片| 麻豆免费精品视频| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲第一狼人社区| 欧美国产日本视频| 精品成人在线观看| 在线不卡欧美精品一区二区三区| 99精品一区二区| 国产精品一级片| 免费欧美在线视频| 香蕉久久一区二区不卡无毒影院 | 成人动漫在线一区| 国产综合色在线视频区| 青娱乐精品视频| 亚洲mv在线观看| 亚洲一区二区中文在线| 亚洲欧洲在线观看av| 日本一区二区三区国色天香| 欧美精品一区二区三区久久久| 欧美日韩国产综合一区二区| 91丨九色丨尤物| av不卡免费电影| 波多野结衣中文字幕一区| 国产成人综合在线播放| 国产一区二区不卡在线 | 精品欧美黑人一区二区三区| 欧美老肥妇做.爰bbww| 欧美色老头old∨ideo| 色爱区综合激月婷婷| 色综合欧美在线视频区| av不卡免费电影| 91麻豆自制传媒国产之光| 99re66热这里只有精品3直播|