锘??xml version="1.0" encoding="utf-8" standalone="yes"?>91久久精品一区二区三区,欧美女同在线视频,亚洲动漫精品http://www.shnenglu.com/jinglexy/category/4078.html鍐犵洊婊′含鍗庯紝鏂漢鐙啍鎮(zhèn)達(dá)綖zh-cnTue, 06 Jan 2009 14:53:06 GMTTue, 06 Jan 2009 14:53:06 GMT60鍙戝竷綺劇畝鐗坈ygwin-2009.isohttp://www.shnenglu.com/jinglexy/archive/2009/01/06/71371.html澶╄。鏈夌紳澶╄。鏈夌紳Tue, 06 Jan 2009 11:46:00 GMThttp://www.shnenglu.com/jinglexy/archive/2009/01/06/71371.htmlhttp://www.shnenglu.com/jinglexy/comments/71371.htmlhttp://www.shnenglu.com/jinglexy/archive/2009/01/06/71371.html#Feedback1http://www.shnenglu.com/jinglexy/comments/commentRss/71371.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/71371.html
(1)cygwin 2009錛氶泦鎴恎cc-4.3.2錛宺xvt錛岄潪甯擱傚悎涓鑸殑緙栫▼寮鍙戯紝闆嗘垚iso浠?8M
(2)i686-elf鐨刢ygwin toolchain錛屽伐鍏烽摼鐗堟湰錛歡cc-4.3.2, binutils-2.19, glibc-2.7錛屾祴璇曟甯稿伐浣?br>浠ユ宸ュ叿閾劇紪璇戞渶鏂扮殑linux鍐呮牳2.6.28宸ヤ綔姝e父錛宬ernel鎵撲竴浜涜ˉ涓侊細(xì)
    cd linux-2.6.28
    sed -i 's/R_386_32/1/' ./scripts/mod/modpost.c
    sed -i 's/R_386_PC32/2/' ./scripts/mod/modpost.c
    sed -i 's/R_ARM_ABS32/2/' ./scripts/mod/modpost.c
    sed -i 's/R_ARM_PC24/1/' ./scripts/mod/modpost.c
    sed -i 's/R_MIPS_HI16/5/' ./scripts/mod/modpost.c
    sed -i 's/R_MIPS_LO16/6/' ./scripts/mod/modpost.c
    sed -i 's/R_MIPS_26/4/' ./scripts/mod/modpost.c
    sed -i 's/R_MIPS_32/2/' ./scripts/mod/modpost.c

    sed -i 's/STT_COMMON/5/g' ./arch/x86/boot/compressed/relocs.c

    sed -i 's/STV_DEFAULT/0/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/STV_INTERNAL/1/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/STV_HIDDEN/2/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/STV_PROTECTED/3/g' ./arch/x86/boot/compressed/relocs.c

    sed -i 's/R_386_NONE/0/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_32/1/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_PC32/2/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_GOT32/3/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_PLT32/4/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_COPY/5/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_GLOB_DAT/6/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_JMP_SLOT/7/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_RELATIVE/8/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_GOTOFF/9/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_GOTPC/10/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/R_386_NUM/11/g' ./arch/x86/boot/compressed/relocs.c

    sed -i 's/ELF32_ST_VISIBILITY(sym->st_other)/sym->st_other \& 0x03/g' ./arch/x86/boot/compressed/relocs.c
    sed -i 's/else rm -f $(@D)\/.tmp_$(@F); exit 1;/else mv -f $(@D)\/.tmp_$(@F) $@;/' ./arch/x86/vdso/Makefile

menuconfig涓妸netfilter鍘繪帀錛岄噷闈㈡湁涓浜涙枃浠跺悕涓鏍鳳紙澶у皬鍐欎笉涓鏍鳳級錛宨pv6涔熷幓鎺夛紝緙栬瘧鐨別lf鏂囦歡姝e父銆?br>
涓婃搗婕曟渤娉?br>2009.01.06




澶╄。鏈夌紳 2009-01-06 19:46 鍙戣〃璇勮
]]>
mm(use slab arithmetic) for jinix-1.2.1錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/11/21/37103.html澶╄。鏈夌紳澶╄。鏈夌紳Wed, 21 Nov 2007 12:23:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/11/21/37103.htmlhttp://www.shnenglu.com/jinglexy/comments/37103.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/11/21/37103.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/37103.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/37103.html闃呰鍏ㄦ枃

澶╄。鏈夌紳 2007-11-21 20:23 鍙戣〃璇勮
]]>
jinix鍐呮牳铏氭嫙鎺у埗鍙板疄鐜幫紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/07/10/27828.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Tue, 10 Jul 2007 12:15:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/07/10/27828.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/27828.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/07/10/27828.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/27828.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/27828.html</trackback:ping><description><![CDATA[     鎽樿: jinix鏄皬寮熸鍦ㄥ疄鐜扮殑涓涓猚++ kernel錛屽洜涓鴻皟璇曠紭鏁咃紝鎵浠ユ棭鏃╃殑鎶婃帶鍒跺彴閮ㄥ垎璋冨嚭鏉ヤ簡錛屼互渚夸簬鍚庢潵鐨勮皟璇曘備唬鐮佷嬌鐢╟++鍐欑殑錛屽鏋滀嬌鐢╟鍐欏唴鏍鎬篃寰堝鏄撶Щ妞嶈繃鍘匯傝漿杞借淇濈暀鍘?鍒涳細(xì)http://www.shnenglu.com/jinglexy錛宮ail & msn: jinglexy at yahoo dot com dot cn銆傝繖閮ㄥ垎浠g爜鏄湪鍐呭瓨綆$悊涔嬪墠瀹炵幇鐨勶紝鎵浠ユ病鏈夊仛鍒頒換...  <a href='http://www.shnenglu.com/jinglexy/archive/2007/07/10/27828.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/27828.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-07-10 20:15 <a href="http://www.shnenglu.com/jinglexy/archive/2007/07/10/27828.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>OS璋冭瘯鐩稿叧鐨勫伐鍏鳳紙闄勫浘錛屽師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/06/28/27133.html澶╄。鏈夌紳澶╄。鏈夌紳Thu, 28 Jun 2007 03:02:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/06/28/27133.htmlhttp://www.shnenglu.com/jinglexy/comments/27133.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/06/28/27133.html#Feedback6http://www.shnenglu.com/jinglexy/comments/commentRss/27133.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/27133.html
濡傛灉緋葷粺澶勪簬浠跨湡鐨勫垵鏈熻妭鐐癸紝渚嬪鎿嶄綔緋葷粺鐨勫垵濮嬪寲錛岃皟璇曡繕鏄緢鏈夊繀瑕佺殑銆傝繖閲屾槸鎴戝湪linux鐜璋冭瘯鎿嶄綔緋葷粺鐨勭浉鍏沖伐鍏鳳紝os寮鍙戣呭彲鍙傝冿紝嬈㈣繋鎸囨錛氾級
錛?錛夊伐鍏峰畨瑁咃細(xì)
linux瀹夎錛歜ochs-2.3錛宨nsight-6.6錛実cc-3.4錛堜嬌鐢╣++鍜宎s錛坆inutils鍖呬腑錛夛級
windows瀹夎錛歑manager Enterprise2.1
鍥犱負(fù)緗戠娌℃湁lotus鍜宑learcase鍦╨inux緋葷粺涓嬬殑鏀寔錛屾墍浠ュ彧濂界敤涓や釜鎿嶄綔緋葷粺浜嗐傝繖鏍蜂篃姣旇緝濂斤紝涓涓敤浜巔rogram錛屼竴涓敤浜庤皟璇曪紝姣曠珶bochs鎸鴻梒pu鐨勶紝灝辮濂瑰共媧誨ソ浜嗐?br>bochs瀹夎錛?/configure --with-all-libs --enable-vbe --enable-gdb-stub && make && make install
insight-6.6瀹夎錛氬寘鍚簡tck/tk錛実db-6.6錛宐fd絳夊伐鍏鳳紝浣跨敤insight鏃舵渶濂借繖鏍瘋緗幆澧冨彉閲忥細(xì)
export LC_ALL=en_US
鍚﹀垯榪愯鏃跺彲鑳戒細(xì)鎶ラ敊錛?br>Tcl_Init failed: can't read "env(TCL_LIBRARY)": no such variable
閰嶇疆xserver鐢ㄤ簬榪滅▼璁塊棶Linux鍥懼艦鐣岄潰錛岃繖鏍峰彲浠ュ湪windows涓婇氳繃ssh鎵цlinux鐨勫浘褰㈢晫闈㈢▼搴忋?br>

錛?錛夌浉鍏蟲枃浠訛細(xì)
bochs閰嶇疆鏂囦歡娣誨姞濡備笅鑺傦細(xì)
gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0

gdb璋冭瘯鑴氭湰錛?br>gdb鐨勫懡浠ら泦鍙互鍐欏叆鍒頒竴涓枃浠朵腑鍘伙紝榪欐牱閬垮厤浜嗗湪鍚姩鏃惰緭鍏ヤ竴澶у爢鍛戒護(hù)錛?00%榧犳爣鎿嶄綔錛焒aint
淇濆瓨鎵鏈夊懡浠ゅ埌涓涓枃浠訛紝姣忚涓涓懡浠わ紝濡備笅錛?br>file ./vmjinix
target remote 127.0.0.1:1234
dir  ./arch/i386
dir  ./init
dir  ./kernel
dir  ./drivers
dir  ./drivers/video
dir  ./drivers/video/console
show dir
break start_kernel
continue
list 0
gdb鍜実db鍓嶇鎵ц濡備笅錛?br>gdb -q -x gdb.command
insight -q -x gdb.command

鍏朵粬鑴氭湰錛堢鐩樿嚜鍔ㄥ垱寤哄垎鍖猴紝鑷姩瀹夎grub錛屾嫹璐濆唴鏍革紝鍙?qiáng)Makefile鑴氭湰錛夛紝榪欎簺璐村嚭鏉ュお闀匡紝鑺變簡濂藉嚑涓皬鏃跺啓濂界殑錛岄渶瑕佸彲浠ュ拰鎴戣仈緋伙紙MSN & Email錛歫inglexy at yahoo dot com dot cn錛?br>
錛?錛夎皟璇曟柟娉?br>灝嗗唴鏍革紙jinix-1.2.1鏄垜姝e湪緙栧啓鐨勪竴涓狢++ 寮婧怬S錛屾榪庡弬涓庯級鎷瘋礉鍒發(fā)inux涓繪満錛岄厤緗畇amba鍏變韓錛岃繖鏍峰彲浠ュ湪windows涓婂紑鍙戯紙鎺ㄨ崘浣跨敤slickedit 2007錛屽摢浣嶆湁linux涓婄殑2007鐗堟湰鍙惁鍙戜竴涓粰鎴戯級銆?br>浣跨敤xshell錛坰sh鏂瑰紡錛夌櫥褰曞埌l(fā)inux涓繪満涓婏紝緙栬瘧鍜岃皟璇曢兘鍦ㄨ繖閲屼簡銆?br>鍦╯sh涓婃墽琛宐ochs -f bochsrc.txt.linux錛?br>鍦╯sh涓婃墽琛宨nsight -q -x gdb.command
鎴浘濡備笅錛?br>


姹囩紪璇█鑺傜偣涔熷彲鐢ㄤ嬌鐢╞ochs錛媑db璋冭瘯錛屽湪gdb鏂偣鏃跺欐墽琛岋細(xì)
disassemble $pc $pc+100錛堜粠褰撳墠鏂偣澶勫弽姹囩紪100瀛楄妭錛?br>闇瑕佹敞鎰忕殑鏄紝鍦╫s鐨勬眹緙栧垵濮嬪寲鐨勫墠鏈熼樁孌碉紝鍒嗛〉鏈哄埗寰寰鏈紑鍚紝絎﹀彿鍜屽湴鍧涓嶈兘涓涓瀵瑰簲錛?br>榪欎釜鏃跺欎笉鑳借繘琛屾簮鐮佺駭姹囩紪璋冭瘯錛屽彧鑳界敤鏈鍗充究鐨勫弽姹囩紪璋冭瘯浜嗐?br>bochs-2.3涓ソ鍍忔湁涓猙ug娌℃湁瑙e喅錛宯exti鎵ц鍜宻tepi鍦╟all鐨勬椂鍊欏眳鐒朵竴鏍鳳紝濡傛灉瑕佹柇鐐瑰埌鎸囧畾琛岋紝鍙互浣跨敤鐗╃悊鍦板潃鏂偣銆?br>
錛?錛夋枃绔犱細(xì)涓嶆柇鏇存柊錛屽鏈変粈涔堝ソ鐨勬兂娉曞彲浠ュ湪鍘熷崥瀹㈣璁猴細(xì)
http://www.shnenglu.com/jinglexy

錛?錛夋暣鐞嗙殑涓浠藉父鐢╣db鎸囦護(hù)
x  /4wx ds:0x1234            x鏄嚎鎬у湴鍧絀洪棿
xp /4wx 0x1234                xp鏄墿鐞嗗湴鍧絀洪棿
backtrace
print  variable                鎵撳嵃鍙橀噺鍊?br>print  variable@10            鎵撳嵃鍙橀噺鍚庨潰鐨?0涓暣鏁板?br>set    variable=2            璧嬪?br>whatis variable                鏄劇ず鍙橀噺綾誨瀷
ptype  variable                鏄劇ず鏁版嵁緇撴瀯錛堝彉閲忕被鍨嬪姞寮虹増錛?br>
鏂偣綾誨瀷錛?br>break init_kernel.cpp:start_kernel    鏂偣鍦ㄦ枃浠剁殑鍑芥暟
break init_kernel.cpp:101        鏂偣鍦ㄦ枃浠剁殑101琛?br>break init_kernel.cpp:101 if var==100    鏉′歡鏂偣
break *0xc0102030
info break                鏌ョ湅鎵鏈夋柇鐐?br>delete breakpoint 3
delete breakpoint            鍒犻櫎鎵鏈夋柇鐐?br>isable breakpoint 2
enable breakpoint 2


search string1                鎼滅儲(chǔ)瀛楃涓詫紝浠巐ist緇撴潫琛屽紑濮?br>reverse-search string1            鏂瑰悜鎼滅儲(chǔ)
set history expansion on        浣跨敤鍘嗗彶鍛戒護(hù)
clear                    鍒犻櫎鍒氭墠鍋滄澶勭殑鏂偣
continue                浠庢柇鐐瑰紑濮嬬戶緇墽琛?br>info break                鏄劇ず褰撳墠鏂偣娓呭崟錛屽寘鎷埌杈炬柇鐐瑰鐨勬鏁扮瓑
info files                鏄劇ず琚皟璇曟枃浠剁殑璇︾粏淇℃伅
info func                鏄劇ず鎵鏈夌殑鍑芥暟鍚嶇О
info local                鏄劇ず褰撳嚱鏁頒腑鐨勫眬閮ㄥ彉閲忎俊鎭?br>info prog                鏄劇ず琚皟璇曠▼搴忕殑鎵ц鐘舵?br>info var                鏄劇ず鎵鏈夌殑鍏ㄥ眬鍜岄潤鎬佸彉閲忓悕縐?br>info all
run
continue
step, next, stepi, nexti        i鍚庣紑琛ㄧず鎵ц涓鏉℃眹緙栨寚浠?br>
/*********************************************************************************
                                      鏍煎紡璇存槑                                   /
/*********************************************************************************
x  /nuf addr媯(gè)鏌ヤ綅浜庣嚎鎬у湴鍧addr澶勭殑鍐呭瓨鍐呭錛岃嫢addr涓嶆寚瀹氾紝鍒欓粯璁や負(fù)涓嬩竴涓崟鍏冨湴鍧銆?br>xp /nuf addr媯(gè)鏌ヤ綅浜庣墿鐞嗗湴鍧addr澶勭殑鍐呭瓨鍐呭銆?br>鍏朵腑鐨勫彲閫夊弬鏁皀銆乽鍜宖鐨勫垎鍒彲涓猴細(xì)
n嬈叉樉紺哄唴瀛樺崟鍏冪殑璁℃暟鍊鹼紝榛樿鍊間負(fù)1銆?br>u琛ㄧず鍗曞厓澶у皬錛岄粯璁ら夋嫨涓?w'錛?br>b 錛圔ytes錛?瀛楄妭錛?br>h 錛圚alfwords錛?瀛楄妭錛?br>w 錛圵ords錛?瀛楄妭錛?br>g 錛圙iantwords錛?瀛楄妭銆?br>娉ㄦ剰錛氳繖浜涚緝鐣ョ涓嶪ntel鐨勪笉鍚岋紝涓昏鏄負(fù)浜嗕笌GDB璋冭瘯鍣ㄧ殑琛ㄧず娉曚竴鑷淬?br>f鏄劇ず鏍煎紡錛岄粯璁ら夋嫨涓?x'錛?br>x 錛坔ex錛夋樉紺轟負(fù)鍗佸叚榪涘埗鏁幫紙榛樿閫夋嫨錛夛紱
d 錛坉ecimal錛夋樉紺轟負(fù)鍗佽繘鍒舵暟錛?br>u 錛坲nsigned錛夋樉紺烘垚鏃犵鍙峰崄榪涘埗鏁幫紱
o 錛坥ctal錛夋樉紺烘垚鍏繘鍒舵暟錛?br>t 錛坆inary錛夋樉紺烘垚浜岃繘鍒舵暟銆?br>c 錛坈har錛夋樉紺哄瓧鑺備唬鐮佸搴旂殑瀛楃銆傝嫢涓嶆槸鍙樉紺哄瓧絎︿唬鐮侊紝灝辯洿鎺ユ樉紺轟唬鐮併?br>*********************************************************************************/

璇存槑涓涓嬶細(xì)bochs 鍜?insight鏈韓鍗曚釜鎵ц灝遍潪甯告參錛岃屼笖insight鏄氳繃ssh鏂瑰紡閾炬帴榪滅▼xserver鎵ц錛屾墍浠ラ熷害宸ㄦ參錛屾湰鏂囨墍榪板畬鍏ㄥ彲浠ュ叏閮ㄥ湪linux涓婃搷浣滐紝涓嶉檺浜庡鉤鍙般?br>



澶╄。鏈夌紳 2007-06-28 11:02 鍙戣〃璇勮
]]>
C++鍐欏唴鏍擱渶瑕佹敞鎰忕殑涓浜涗簨鎯咃紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/06/25/26940.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 25 Jun 2007 13:19:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/06/25/26940.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/26940.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/06/25/26940.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/26940.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/26940.html</trackback:ping><description><![CDATA[鍐呮牳褰撶劧鍙敤鐢╟++鏉ヤ簺錛屼絾鏄浉瀵筩鏉ヨ鏈夎澶氳娉ㄦ剰鐨勫湴鏂癸紝鎴戜滑涓嶅緱涓嶅叧鎺変竴浜涚壒鎬с傝繖閲屽彧鎻愪竴浜沢cc鐩稿叧鐨勫唴瀹癸紝Microsoft VC鎴戞病鏈夊皾璇曘傝漿杞借娉ㄦ槑鍘熷垱錛氬ぉ琛f湁緙濓紙http://www.shnenglu.com/jinglexy錛夛紝MSN: jinglexy at yahoo dot com dot cn<br><br>1)g++閫夐」-nostartfiles錛氱敤鎴風(fēng)幆澧冪殑鍦╩ain涔嬪墠璋冪敤鐨勪唬鐮侊紝褰撶劧涓嶈兘浣跨敤浜?br>2)鍏ㄥ眬瀵硅薄錛氭瘡縐嶇被鍨嬮兘鏈夎嚜宸辯殑鏋勯犲嚱鏁幫紝濡傛灉涓嶈嚜宸辯紪鍐欎唬鐮佽皟鐢紝瀹冧滑涓嶄細(xì)鎵ц銆?br>榪欏寘鎷墍鏈夊叏灞瀵硅薄鍜屽眬閮╯tatic瀵硅薄錛屽緩璁殑鍋氭硶鏄湪鍐呮牳鏍堝緩绔嬪悗錛宑++榪愯浠g爜鎵ц涔嬪墠<br>璋冪敤鏋勯犲嚱鏁幫紝濡傛灉鏋勯犲嚱鏁版病鏈夎繍琛岋紙鍋囪閲岄潰鏈夊垎閰嶅唴瀛樹箣綾葷殑鎿嶄綔錛夛紝鍚庢灉寰堜弗閲嶏細(xì)錛?br>鎴戜滑鍙互榪欐牱鍋氾細(xì)<br>鍏堜慨鏀筭nu-ld閾炬帴鑴氭湰<br>.data : { <br>    start_ctors = .;<br>    *(.ctor*)<br>    end_ctors = .;<br>    start_dtors = .;<br>    *(.dtor*)<br>    end_dtors = .;<br><br>    *(.data)<br>}<br>榪欐牱鏋勯犲嚱鏁扮殑鎸囬拡灝遍兘淇濆瓨鍦╯tart_ctors 鍜宔nd_ctors涔嬮棿鐨勫唴瀛樹腑浜嗭紝鏋勯犲嚱鏁板叾瀹炲氨鏄痸oid foo(void);褰㈠紡鐨勫嚱鏁幫紝緙栧啓涓涓猣or寰幆<br><br>璋冪敤瀹冨嵆鍙紱鏋愭瀯鍑芥暟涔熸槸涓鏍風(fēng)殑銆傚綋姣忎釜鏋勯犲嚱鏁拌皟鐢ㄥ畬鍚庯紝gcc浼?xì)鑷姩璋冪敤涓涓嚱鏁幫細(xì)<br>int __cxa_atexit(void (* f)(void *), void *p, void *d);<br>褰撳唴鏍擱鍑烘椂錛屼細(xì)鎵ц涓涓嚱鏁幫細(xì)<br>void __cxa_finalize(void *d);<br>榪欎袱涓嚱鏁板繀欏繪寜涓婇潰鏍煎紡瀹氫箟錛実++鏄繖鏍瘋瀹氱殑銆傜湅鐪嬩笅闈㈢殑浠g爜灝辨槑鐧戒簡錛?br>extern "C"<br>        {<br>        int __cxa_atexit(void (*f)(void *), void *p, void *d);<br>        void __cxa_finalize(void *d);<br>        };<br><br>void *__dso_handle; /*only the address of this symbol is taken by gcc*/<br><br>struct object<br>{<br>        void (*f)(void*);<br>        void *p;<br>        void *d;<br>} object[32] = {0};<br>unsigned int iObject = 0;<br><br>int __cxa_atexit(void (*f)(void *), void *p, void *d)<br>{<br>        if (iObject >= 32) return -1;<br>        object[iObject].f = f;<br>        object[iObject].p = p;<br>        object[iObject].d = d;<br>        ++iObject;<br>        return 0;<br>}<br><br>/* This currently destroys all objects */<br>void __cxa_finalize(void *d)<br>{<br>        unsigned int i = iObject;<br>        for (; i > 0; --i)<br>        {<br>                --iObject;<br>                object[iObject].f(object[iObject].p);<br>        }<br>}<br><br>3)new鍜宒elete錛氬湪瀹屾垚鍐呭瓨綆$悊鍚庯紝閲嶈澆綾葷殑new鍜宒elete鍑芥暟<br>4)-nostdlib錛氭妸鏍囧噯搴撶鐢ㄦ帀錛屾渶榪戞湁浜嗙Щ妞峴tl鍒板唴鏍哥殑鎯蟲硶<br>5)RTTI錛氭渶濂芥槸紱佹瀹冿紝榪欐牱涓嶈兘鐢╰ypeid 鍜?dynamic_cast浜?br>6)紱佺敤寮傚父錛?fno-exceptions錛岃繖涓拰鎿嶄綔緋葷粺澶揣瀵嗕簡<br>7)綰櫄鍑芥暟錛屽鏋滃瓙綾繪病鏈夊疄鐜扮埗綾諱腑鐨勭函铏氬嚱鏁幫紝閾炬帴鍒頒笅闈㈤粯璁や緥紼嬶細(xì)<br>extern "C" void __cxa_pure_virtual()<br>{<br>    // print error message<br>}<br>铏界劧涓嶆槸涓轟簡瀹氫箟綰櫄綾葷殑瀵硅薄錛屼絾鏄摼鎺ユ椂緙栬瘧鍣ㄤ細(xì)鎶辨紝鎵浠ュ畾涔変笂闈㈠嚱鏁頒嬌緙栬瘧閫氳繃銆?br>8)濡傛灉涓瀹氳浣跨敤寮傚父錛宺tti錛宯ew/delete錛実cc涓彁渚涗簡闈欐佸簱錛歭ibgcc/libsupc++錛?br>榪樺緱鍐欒繖涓簱鐨勪竴浜涘熀紜鍑芥暟錛岃寰楀畠搴旇鏄湪涓婂眰鎶借薄鍑烘帴鍙o紝灝嗗簳灞傚疄鐜扮┖鍑烘潵緇欑敤鎴峰疄鐜般?br>鑰屼笖浠g爜鏈韓闈炲父澶嶆潅錛岀綉緇滀笂涔熸病鏈変換浣曚腑鏂囪祫鏂欍?br>鎸囦護(hù)錛?br>readelf -a `gcc -print-libgcc-file-name`<br>閲岄潰瀹氫箟浜嗗緢澶氱殑鍑芥暟銆?br><br> <img src ="http://www.shnenglu.com/jinglexy/aggbug/26940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-06-25 21:19 <a href="http://www.shnenglu.com/jinglexy/archive/2007/06/25/26940.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙pdf錛宑hm錛宻ource涓嬭澆錛夛紙20070711淇鐗堬紝鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/06/11/26021.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 11 Jun 2007 02:00:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/06/11/26021.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/26021.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/06/11/26021.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/26021.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/26021.html</trackback:ping><description><![CDATA[浠ュ墠涓緋誨垪鐨勬枃绔犳暣鐞嗗湪涓嬮潰鍖呬腑錛宑hm鏍煎紡鍜宲df鏍煎紡錛屽強(qiáng)鎵鏈夋簮紼嬪簭錛?br>http://blogimg.chinaunix.net/blog/upfile2/080524213721.rar<br><br> 鐩綍錛?br> 鑷繁鍔ㄦ墜鍐欏唴鏍革紙搴忥級......................... 3<br> 絎? 璇撅細(xì)鐜闇姹?............................ 4<br> 絎? 璇撅細(xì)寮曞紼嬪簭............................. 5<br> 絎? 璇撅細(xì)淇濇姢妯″紡............................. 8<br> 絎? 璇撅細(xì)杈呭姪鍑芥暟............................. 17<br> 絎? 璇撅細(xì)涓柇鍜屽紓甯?.......................... 25<br> 絎? 璇撅細(xì)涓柇鍜屽紓甯?.......................... 39<br> 絎? 璇撅細(xì)澶氫換鍔?.............................. 45<br> 絎? 璇撅細(xì)鏂囦歡緋葷粺............................. 56<br> 絎? 璇撅細(xì)鍐呭瓨綆$悊............................. 70<br> 絎? 璇撅細(xì)緋葷粺璋冪敤鍜屽彲鎵ц紼嬪簭................. 76<br> 涓浠藉厤璐e0鏄?................................ 81<br><br><br> <img src ="http://www.shnenglu.com/jinglexy/aggbug/26021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-06-11 10:00 <a href="http://www.shnenglu.com/jinglexy/archive/2007/06/11/26021.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細(xì)鍐呭瓨綆$悊錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/06/08/25801.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Fri, 08 Jun 2007 00:44:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/06/08/25801.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/25801.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/06/08/25801.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/25801.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/25801.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">絎?span lang="EN-US">8</span>璇撅細(xì)鍐呭瓨綆$悊<span lang="EN-US">    <a target="_blank"><span lang="EN-US"><span lang="EN-US">涓嬭澆婧愪唬鐮?/span></span></a><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">澹版槑錛氳漿杞借淇濈暀錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">璇戣咃細(xì)<span lang="EN-US">http://www.shnenglu.com/jinglexy<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍘熶綔鑰咃細(xì)<span lang="EN-US">xiaoming.mo at skelix dot org<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">MSN & Email: jinglexy at yahoo dot com dot cn<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">鐩爣</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎶辨瓑錛屽叾瀹炶繕娌℃湁瀹炵幇銆傚湪浠誨姟鍒嗛厤鐙珛鐨?span lang="EN-US">4G</span>鍦板潃絀洪棿涓婅皟璇曞け璐ヤ簡錛岀幇鍦ㄥ彧浣胯兘浜嗗垎欏墊満鍒訛紝欏靛紓甯搞傚ぇ閲忕殑宸ヤ綔鏈疄鐜幫紝鏈夊叴瓚g殑鍚屽鍙互鎼滅儲(chǔ)<span lang="EN-US">buddy</span>鍜?span lang="EN-US">slab</span>鐨勭浉鍏寵祫鏂欙紝緇忓吀鐨勫唴瀛樼鐞嗙畻娉曘?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> </span><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">鍒嗛〉</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">386</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">澶勭悊鍣ㄧ殑鍐呭瓨綆$悊鍗曞厓鍙互瀹炵幇浠誨姟鐙珛鍦板潃絀洪棿錛屼換鍔¢棿鍐呭瓨淇濇姢銆傛瘡涓換鍔″彲浠ユ嫢鏈夌嫭绔嬬殑<span lang="EN-US">4G</span>铏氭嫙鍦板潃絀洪棿銆傚唴瀛樻槧灝勬槸鍐呭瓨綆$悊寰堥噸瑕佺殑涓姝ワ紝鍙互鍒嗕負(fù)涓ら儴鍒嗭細(xì)鍒嗘鍜屽垎欏點(diǎn)傚墠闈㈢殑璇劇▼涓凡緇忚璁鴻繃鍒嗘鏈哄埗浜嗭紝閫氳繃鍒嗘鍙互闅斿紑涓嶅悓鐨勪唬鐮侊紝鏁版嵁錛屽爢鏍堢瓑錛涘垎欏靛崟鍏冩妸铏氭嫙鍦板潃鏄犲皠鎴愮墿鐞嗗湴鍧錛岃繕鍙互鐢ㄦ潵瀹炵幇铏氭嫙鍐呭瓨錛堝拰紜洏鍒嗗尯榪涜浜ゆ崲錛夛紝鐜板湪鎴戜滑鏉ヤ簡瑙d竴涓嬪畠銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">瀵逛簬姣忎釜浠誨姟錛屾垜浠棤娉曞垎閰?span lang="EN-US">4G</span>鐨勭墿鐞嗗唴瀛橈紝鎵浠ヤ嬌鐢ㄤ簡涓浜涙満鍒舵潵綆$悊鍐呭瓨錛氬強(qiáng)铏氭嫙鍐呭瓨鏈哄埗銆傝鏈哄埗鏈夊鐞嗗櫒鐨勫垎欏甸儴鍒嗘潵瀹炵幇錛岄鍏堟垜浠皢鍐呭瓨鍒嗘垚涓浜涘潡錛屾瘡涓潡澶у皬涓?span lang="EN-US">4k</span>錛岄氬父鎴戜滑縐頒箣涓轟竴涓〉甯с傛搷浣滅郴緇熼氳繃欏電洰褰曞拰欏佃〃鏉ョ鐞嗚繖浜涢〉甯с傞〉鐩綍鏄浉褰撲簬絎竴綰ч〉琛紝鍏朵腑鐨勬瘡涓欏瑰啀綆$悊涓涓笅綰ч〉琛ㄣ傦紙鏇磋緇嗚繃紼嬭鍙傝?span lang="EN-US">intel</span>鐨?span lang="EN-US">IA 32/64</span>鎵嬪唽錛?span lang="EN-US"><br> <br> </span>褰撳垎欏墊満鍒跺紑鍚椂錛屽鐞嗗櫒鎶婁換鍔′腑鐨勮櫄鎷熷湴鍧杞崲鎴愮墿鐞嗗湴鍧錛屾楠ゅ涓嬶細(xì)<span lang="EN-US"><br> 1.</span>鏌ユ壘孌甸夋嫨瀛愬湪<span lang="EN-US">GDT </span>鎴?span lang="EN-US"> LDT </span>涓殑鎻忚堪絎︼紝鍋氫竴浜涙潈闄愭鏌ワ紝鐪嬬湅鑳藉惁璁塊棶<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">2.</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">浠ユ弿榪扮涓殑鍩哄潃鐩稿姞欏電洰褰曞熀鍧寰楀埌涓涓嚎鎬у湴鍧<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">3.</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍦ㄩ〉琛ㄤ腑绱㈠紩铏氭嫙鍦板潃鎵瀵瑰簲鐨勯〉琛ㄩ」錛屽緱鍒伴〉鍦板潃<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">4.</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏌ユ壘鍋忕Щ寰楀埌瀹為檯鐗╃悊鍦板潃銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">濡傛灉瀹為檯鐗╃悊欏典笉瀛樺湪錛堝彲鑳戒氦鎹㈠埌紜洏涓幓浜嗭級錛屽垯寮曞彂寮傚父錛屽彲浠ュ湪榪欎釜寮傚父閲岄潰鍋氭兂瑕佸仛鐨勪簨鎯咃紙鍔犺澆紜洏涓殑浜ゆ崲欏碉紝鎴栬?span lang="EN-US">kill</span>榪欎釜紼嬪簭錛?span lang="EN-US">Segment Fault</span>錛岀瓑絳夛級<span lang="EN-US"><br> <br> </span>澶勭悊鍣ㄤ嬌鐢ㄧ殑欏電洰褰曟垨鑰呴〉琛紝閮芥槸鐢?span lang="EN-US">32 </span>浣嶇殑欏圭粍鎴愶細(xì)<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">欏電洰褰曢」錛?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> 31                    12    11    9    876   5   43    2     1     0<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹忊攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敁<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹?nbsp;  </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎸囧悜欏佃〃鐨勭墿鐞嗗湴鍧<span lang="EN-US">  鈹?</span>鐢ㄦ埛瀹氫箟<span lang="EN-US"> 鈹?nbsp; X  鈹?nbsp;A鈹? X 鈹?U/S鈹?R/W鈹?P 鈹?o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹椻攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敍<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">欏佃〃欏癸細(xì)</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> 31                    12    11    9   87  6  5   43    2     1     0<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹忊攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敁<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹?nbsp;  </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎸囧悜欏靛撫鐨勭墿鐞嗗湴鍧<span lang="EN-US">  鈹?</span>鐢ㄦ埛瀹氫箟<span lang="EN-US"> 鈹?nbsp;X鈹僁鈹?nbsp;A鈹?X 鈹? U/S鈹?R/W鈹?P 鈹?o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹椻攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敍<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">浠庝笂闈㈠彲浠ョ煡閬擄紝欏電洰褰曢」鍜岄〉琛ㄩ」鐨勭粨鏋勫緢綾諱技錛屼笅闈㈤愪釜璇存槑涓涓嬪叾涓殑鍩燂細(xì)<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p> </o:p></span></p> <table class="MsoNormalTable" style="width: 79.58%;" border="1" cellpadding="0" width="79%"> <tbody> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit  0<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">P<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">瀛樺湪浣嶏紙<span lang="EN-US">present</span>錛夛紝涓?span lang="EN-US">0 </span>琛ㄧず璇ラ〉甯ф垨欏佃〃涓嶅湪鍐呭瓨涓傚鏋滆闂欏瑰皢鍙戠敓寮傚父銆?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit  1<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">R/W<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">琛ㄧず欏佃〃鎴栭〉甯ф寚鍚戠殑鍐呭瓨鍙錛堬紳<span lang="EN-US">0</span>錛夛紝鎴栧彲鍐欙紙錛?span lang="EN-US">1</span>錛?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit  2<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">U/S<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">琛ㄧず欏佃〃鎴栭〉甯х殑鏉冮檺錛屽綋鐗規(guī)潈綰т負(fù)<span lang="EN-US">0</span>鏃訛紝鍙湁<span lang="EN-US">ring0</span>鍒?span lang="EN-US">2</span>鐨勭壒鏉冪駭鍙互璁塊棶瀹冿紝鍚﹀垯鎵鏈夌殑<span lang="EN-US">ring3</span>浠誨姟閮藉彲浠ヨ闂傝繖涓煙闈炲父閲嶈銆?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 3, 4, (6), 7, 8<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">X<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Intel </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">淇濈暀浣嶏紝璁劇疆涓?span lang="EN-US">0</span>灝辮浜?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit  5<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">A<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">璇ラ〉鏄惁宸茶闂?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 84.75pt;" valign="top" width="113"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 9-11<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 63pt;" valign="top" width="84"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐢ㄦ埛瀹氫箟<span lang="EN-US"><o:p></o:p></span></span></p> </td> <td style="padding: 1.5pt; width: 393.75pt;" valign="top" width="525"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎴戜滑浣跨敤絎?span lang="EN-US">11</span>浣嶏紝琛ㄧず璇ラ〉甯ф槸鍚﹁浜や簰鍒扮‖鐩樹笂浜?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏電洰褰曠殑姣忎竴欏癸細(xì)鍗抽〉琛ㄧ殑鐗╃悊鍦板潃錛屽畠鐨勯珮<span lang="EN-US">20 </span>浣嶅湴鍧琛ㄧず鏈変釜欏靛撫鐨勮搗濮嬪湴鍧錛屾濂藉拰<span lang="EN-US">4k</span>瀵歸綈銆?span lang="EN-US">2^20</span>鍙互琛ㄧず<span lang="EN-US">1M</span>鑼冨洿錛屾瘡涓〉甯уぇ灝忔槸<span lang="EN-US">4k</span>錛屾墍浠ュ彲浠ョ儲(chǔ)寮?span lang="EN-US">1M * 4K</span>鍦板潃絀洪棿銆傞〉鐩綍欏逛腑榪樻湁涓涓?span lang="EN-US">D </span>浣嶏紝瀹冪敤鏉ヨ〃紺轟竴涓〉甯ф槸鍚﹀凡淇敼錛?span lang="EN-US">linux</span>鐢ㄥ畠鏉ヨ〃紺轟竴涓〉闈㈤噴鏀炬槸鑴忛〉闈紝榪欎釜浣嶉潪甯告湁鐢紝褰撲竴涓〉甯т氦鎹㈠埌紜洏涓婂悗錛屽鏋滆欏靛撫榪樻病鏈夎淇敼錛岃屼笖鏄凡緇忎粠紜洏浜ゆ崲鍑烘潵鐨勶紝鍒欑畝鍗曞彇娑堜互鍚庣殑浜ゆ崲銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓轟簡灝嗛昏緫鍦板潃杞崲鎴愮墿鐞嗗湴鍧錛岄昏緫鍦板潃琚垎鎴?span lang="EN-US">3 </span>閮ㄥ垎錛?span lang="EN-US"><o:p></o:p></span></span></p> <table class="MsoNormalTable" style="width: 79.58%;" border="1" cellpadding="0" width="79%"> <tbody> <tr> <td style="padding: 1.5pt; width: 101.25pt;" valign="top" width="135"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 31-22<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 437.25pt;" valign="top" width="583"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏電洰褰曢」鐨勭儲(chǔ)寮曚笅鏍囷紝鐢卞畠鍙互寰楀埌欏佃〃鐨勭墿鐞嗗湴鍧<span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 101.25pt;" valign="top" width="135"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 21-12<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 437.25pt;" valign="top" width="583"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏佃〃欏圭殑绱㈠紩涓嬫爣錛岀敱瀹冨彲浠ュ緱鍒伴〉甯х殑鐗╃悊鍦板潃<span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 101.25pt;" valign="top" width="135"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 11-0<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 437.25pt;" valign="top" width="583"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐩稿欏靛撫璧峰鍦板潃鐨勫亸縐?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓句緥鏉ヨ錛屾垜浠湁涓涓昏緫鍦板潃錛?span lang="EN-US">0x3E837B0A</span>銆傚墠鎻愭潯浠訛細(xì)<span lang="EN-US">CR3</span>瀵勫瓨鍣ㄦ寚鍚戠殑欏電洰褰曞湴鍧鏄?span lang="EN-US"> 0x0005C000</span>錛岃繖涓瘎瀛樺櫒瀛樺偍浜嗗綋鍓嶉〉鐩綍鎵浣跨敤鐨勯〉甯х殑鐗╃悊鍦板潃錛岄氬父涔熷彨鍋?span lang="EN-US"> PDBR</span>銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍏堝彇瀹冪殑楂?span lang="EN-US">10</span>浣嶏紝 灝辨槸<span lang="EN-US">0x0FA</span>錛岀敱瀹冨彲浠ョ儲(chǔ)寮曞埌欏電洰褰曠殑絎?span lang="EN-US">0x0FA</span>欏癸紝鎴戜滑鍙栧緱榪欎竴欏圭殑鍊鹼紝鍋囪寰楀埌鐨勫湴鍧鍊兼槸<span lang="EN-US">0x0003F000</span>銆傜劧鍚庢垜浠彇铏氭嫙鍦板潃鐨勪腑闂?span lang="EN-US">10</span>浣嶏紝灝辨槸<span lang="EN-US">0x037</span>錛屽啀鍙栧嚭<span lang="EN-US">0x0003F000</span>鎸囧悜欏靛撫鐨勭<span lang="EN-US">0x037</span>欏圭殑鍊鹼紝鍋囪鏄?span lang="EN-US">0x0001B000</span>銆傝繖涓湴鍧灝辨槸鎴戜滑瑕佹壘鐨勮櫄鎷熷湴鍧瀵瑰簲鐨勭墿鐞嗗湴鍧鐨勯〉甯х殑璧峰鍦板潃錛屾渶鍚庡姞涓婂亸縐誨鹼紙浣?span lang="EN-US">12</span>浣嶏級錛屽嵆<span lang="EN-US">0xB0A</span>錛屽緱鍒板疄闄呯殑鐗╃悊鍦板潃鏄細(xì)<span lang="EN-US">0x0001BB0A</span>銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐩稿叧鐨勭煡璇嗗彲浠ュ弬鑰?span lang="EN-US"> Intel </span>鐨?span lang="EN-US">IA 32/64</span>鎵嬪唽銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">CR3</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">瀵勫瓨鍣ㄥ繀欏誨湪鍒嗛〉鏈哄埗寮鍚墠灝辮杞藉ソ錛屽彲浠ヤ嬌鐢?span lang="EN-US">MOV </span>鎸囦護(hù)鎴栬呭湪浠誨姟鍒囨崲鏃朵嬌鐢?span lang="EN-US">TSS</span>涓殑<span lang="EN-US">CR3</span>鍩熺殑鍊箋傚綋澶勭悊鍣ㄨ闂笉瀛樺湪鐨勯〉甯ф椂錛屽彂鐢熶竴涓紓甯革紝<span lang="EN-US">CR2 </span>瀵勫瓨鍣ㄥ瓨寮曞彂寮傚父鐨勯昏緫鍦板潃錛屽悓鏃墮敊璇爜涔熶細(xì)鍘嬪叆鍒板爢鏍堜腑錛岄敊璇爜鏍煎紡濡備笅錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> 31                                                 3   2     1     0<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹忊攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敁<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹?nbsp;                   </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏈嬌鐢?span lang="EN-US">                         鈹?U/S鈹?R/W鈹?P 鈹?o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鈹椻攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲攣鈹佲敍<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">寮傚父澶勭悊渚嬬▼閫氬父閲囧彇濡備笅鐨勬楠わ細(xì)<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏌ユ壘涓涓┖闂茬殑欏靛撫鎴栦粠紜洏涓皢欏靛撫浜ゆ崲鍑烘潵錛岄噸鏂拌緗紜殑欏電洰褰曢」鎴栭〉琛ㄩ」鐨勫鹼紝鍒鋒柊<span lang="EN-US">TLB</span>銆傚鐞嗗櫒閫氬父淇濆瓨鏈榪戞渶澶氳闂殑欏電洰褰曟垨欏佃〃欏瑰埌涓涓?span lang="EN-US">cache</span>涓紝浠ラ伩鍏嶆瘡嬈¢兘榪涜铏氭嫙鍦板潃鍒扮墿鐞嗗湴鍧鐨勮漿鎹紝榪欎釜<span lang="EN-US">cache</span>灝卞彨鍋?span lang="EN-US">TLB</span>銆傚彧鏈夋垜浠敼鍔ㄤ簡欏電洰褰曟垨欏佃〃欏癸紝灝卞簲褰撳埛鏂?span lang="EN-US">TLB</span>銆傛柟娉曞緢綆鍗曪紝灝辨槸閲嶆柊鍔犺澆<span lang="EN-US">CR3 </span>瀵勫瓨鍣ㄣ?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪鎴戜滑鏉ョ湅鐪嬩唬鐮佹錛屽唴瀛樼鐞嗛氬父灝戜笉浜嗗ぇ閲忕殑瀹忓畾涔夛細(xì)<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: red;" lang="EN-US">08/include/kernel.h</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">#define PAGE_DIR    ((HD0_ADDR+HD0_SIZE+(4*1024)-1) & 0xfffff000)<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐗╃悊鍐呭瓨瀹夋帓錛?span lang="EN-US">IDT</span>錛堝湪<span lang="EN-US">0x40000</span>錛夛紝鎺ヤ笅鏉ユ槸<span lang="EN-US">GDT</span>錛屾帴涓嬫潵鏄?span lang="EN-US">HD0</span>浣跨敤錛岀劧鍚庢墠鏄〉鐩綍錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎵浠ヨ繖涓畯鐪嬭搗鏉ユ湁鐐歸暱銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <span style="color: red;">08/include/mm.h</span><br> #define PAGE_SIZE    (4*1024)                    /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏靛撫綺掑害<span lang="EN-US"> */<br> #define PAGE_TABLE    (PAGE_DIR+PAGE_SIZE)       /* </span>欏佃〃鐗╃悊鍦板潃<span lang="EN-US"> */<br> #define MEMORY_RANGE (4*1024)                    /* skelix</span>鍙鐞?span lang="EN-US">4M </span>鍐呭瓨鏆傛椂<span lang="EN-US"> */<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <span style="color: red;">08/mm.c</span><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">/* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐗╃悊鍐呭瓨浣跨敤鎯呭喌鐨勪綅鍥捐〃<span lang="EN-US"> */<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">static char mmap[MEMORY_RANGE/PAGE_SIZE] = {PG_REVERSED, };<br> <br> void<br> mm_install(void) {<br>     unsigned int *page_dir = ((unsigned int *)PAGE_DIR);<br>     unsigned int *page_table = ((unsigned int *)PAGE_TABLE);<br>     unsigned int address = 0;<br>     int i;<br>     for(i=0; i<MEMORY_RANGE/PAGE_SIZE; ++i) {<br>         /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏佃〃欏瑰睘鎬ц緗負(fù)<span lang="EN-US">: kernel, r/w, present */<br>         page_table[i] = address|7;<br>         address += PAGE_SIZE;<br>     };<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓婇潰寰幆鍒濆鍖栦簡<span lang="EN-US">0~4M</span>瀵瑰簲鐨勬墍鏈夐〉琛ㄩ」<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br>     page_dir[0] = (PAGE_TABLE|7);<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏電洰褰曢」鍙渶瑕佺涓涓氨鍙互浜嗭紝鍥犱負(fù)鍙湁<span lang="EN-US">4M</span>鍐呭瓨<span lang="EN-US"><br> <br>     for (i=1; i<1024; ++i)<br>         page_dir[i] = 6;<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍏朵粬鐨?span lang="EN-US">1023</span>涓〉鐩綍欏硅緗負(fù)絀猴紝濡傛灉榪?span lang="EN-US">1024</span>欏歸兘璁劇疆錛屽彲璁塊棶<span lang="EN-US">4G</span>鍐呭瓨絀洪棿<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁劇疆<span lang="EN-US">0</span>锝?span lang="EN-US">1M</span>鍐呭瓨涓哄凡浣跨敤銆?span lang="EN-US"><br>     for (i=(1*1024*1024)/PAGE_SIZE-1; i>=0; --i)<br>         mmap[i] = PG_REVERSED;<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍥犱負(fù)鍐呮牳鍙敤鍒頒簡浣庝簬<span lang="EN-US">1M</span>鐨勫唴瀛橈紝鎵浠ヤ繚鐣欏畠浠紝榪欐牱灝變笉浼?xì)琚氦鎹㈠嚭鍘讳?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <br>     __asm__ (<br>         "movl    %%eax,    %%cr3\n\t"        // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍔犺澆欏電洰褰曞熀鍧鍒板瘎瀛樺櫒<span lang="EN-US"><br>         "movl    %%cr0,    %%eax\n\t"<br>         "orl    $0x80000000,    %%eax\n\t"<br>         "movl    %%eax,    %%cr0"::"a"(PAGE_DIR));    // </span>寮鍚垎欏墊満鍒訛紝<span lang="EN-US">CR0</span>鐨勬渶楂樹綅<span lang="EN-US"><br> }<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">閫氳繃<span lang="EN-US">mmap</span>浣嶅浘錛屾垜浠彲浠ユ竻妤氱殑鐭ラ亾鍐呭瓨鐨勪嬌鐢ㄦ儏鍐碉紝榪欐牱灝卞彲浠ュ垎閰嶇┖闂查〉甯т簡錛屽涓嬶細(xì)<span lang="EN-US"><br> <span style="color: red;">08/mm.c</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">unsigned int<br> alloc_page(int type) {<br>     int i;<br> <br>     for (i=(sizeof mmap)-1; i>=0 && mmap[i]; --i)<br>         ;<br> <br>     if (i < 0) {<br>         kprintf(KPL_PANIC, "NO MEMORY LEFT");<br>         halt();<br>     }<br>     mmap[i] = type;<br>     return i;            // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪斿洖欏靛撫鍙?span lang="EN-US"><br> }<br> <br> void *<br> page2mem(unsigned int nr) {            // </span>杞崲涓鴻櫄鎷熷湴鍧<span lang="EN-US"><br>     return (void *)(nr * PAGE_SIZE);<br> }<br> <br> void<br> do_page_fault(enum KP_LEVEL kl,<br>               unsigned int ret_ip, unsigned int ss, unsigned int gs,<br>               unsigned int fs, unsigned int es, unsigned int ds, <br>               unsigned int edi, unsigned int esi, unsigned int ebp,<br>               unsigned int esp, unsigned int ebx, unsigned int edx, <br>               unsigned int ecx, unsigned int eax, unsigned int isr_nr, <br>               unsigned int err, unsigned int eip, unsigned int cs, <br>               unsigned int eflags,unsigned int old_esp, unsigned int old_ss) {<br>     unsigned int cr2, cr3;<br>     (void)ret_ip; (void)ss; (void)gs; (void)fs; (void)es; <br>     (void)ds; (void)edi; (void)esi; (void)ebp; (void)esp; <br>     (void) ebx; (void)edx; (void)ecx; (void)eax; <br>     (void)isr_nr; (void)eip; (void)cs; (void)eflags; <br>     (void)old_esp; (void)old_ss; (void)kl;<br>     __asm__ ("movl %%cr2, %%eax":"=a"(cr2));<br>     __asm__ ("movl %%cr3, %%eax":"=a"(cr3));<br>     kprintf(KPL_PANIC, "\n  The fault at %x cr3:%x was caused by a %s. "<br>             "The accessing cause of the fault was a %s, when the "<br>             "processor was executing in %s mode, page %x is free\n", <br>             cr2, cr3,<br>             (err&0x1)?"page-level protection voilation":"not-present page", <br>             (err&0x2)?"write":"read", <br>             (err&0x4)?"user":"supervisor",<br>             <span style="color: red;">alloc_page</span>(PG_NORMAL));<br> }<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">欏靛紓甯稿嚱鏁幫紝瀹冧粈涔堜篃娌℃湁鍋氾紝鐭ヨ瘑鏄劇ず涓浜涢敊璇俊鎭?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪鎴戜滑鏉ュ姩鎬佺殑鍒嗛厤涓浜涘唴瀛橈紝鎴戜滑淇敼涓涓嬩換鍔″嚱鏁幫細(xì)<span lang="EN-US"><br> <span style="color: red;">08/init.c</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">static void<br> new_task(unsigned int eip) {<br>     struct TASK_STRUCT *task = <span style="color: red;">page2mem</span>(alloc_page(PG_TASK));<br>     memcpy(&(task->tss), &(TASK0.tss), sizeof(struct TSS_STRUCT));<br> <br>     task->tss.esp0 = (unsigned int)task + PAGE_SIZE;<br>     task->tss.eip = eip;<br>     task->tss.eflags = 0x3202;<br>     task->tss.esp = (unsigned int)<span style="color: red;">page2mem</span>(alloc_page(PG_TASK))+PAGE_SIZE;<br>     task->tss.cr3 = PAGE_DIR;<br>     task->priority = INITIAL_PRIO;<br>     task->ldt[0] = DEFAULT_LDT_CODE;<br>     task->ldt[1] = DEFAULT_LDT_DATA;<br> <br>     task->next = current->next;<br>     current->next = task;<br>     task->state = TS_RUNABLE;<br> }<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鑷繁鍒嗛厤鐨勪換鍔℃暟鎹粨鏋勫拰浠誨姟鍫嗘爤錛屾槸涓嶆槸寰堟湁鎴愬氨鎰燂細(xì)錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏈鍚庡湪<span lang="EN-US">init.c</span>涓坊鍔犲垵濮嬪寲浠g爜錛?span lang="EN-US"><br> <span style="color: red;">08/init.c</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">void <br> init(void) {<br>     char wheel[] = {'\\', '|', '/', '-'};<br>     int i = 0;<br> <br>     idt_install();<br>     pic_install();<br>     mm_install();      /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍒濆鍖栧嚱鏁拌皟鐢?span lang="EN-US"> */<br>     kb_install();<br>     timer_install(100);<br>     set_tss((unsigned long long)&TASK0.tss);<br>     set_ldt((unsigned long long)&TASK0.ldt);<br>     __asm__ ("ltrw    %%ax\n\t"::"a"(TSS_SEL));<br>     __asm__ ("lldt    %%ax\n\t"::"a"(LDT_SEL));<br> <br>     kprintf(KPL_DUMP, "Verifing disk partition table....\n");<br>     verify_DPT();<br>     kprintf(KPL_DUMP, "Verifing file systes....\n");<br>     verify_fs();<br>     kprintf(KPL_DUMP, "Checking / directory....\n");<br>     verify_dir();<br> <br>     sti();<br>     new_task((unsigned int)task1_run);<br>     new_task((unsigned int)task2_run);<br>     __asm__ ("movl %%esp,%%eax\n\t" \<br>              "pushl %%ecx\n\t" \<br>              "pushl %%eax\n\t" \<br>              "pushfl\n\t" \<br>              "pushl %%ebx\n\t" \<br>              "pushl $1f\n\t" \<br>              "iret\n" \<br>              "1:\tmovw %%cx,%%ds\n\t" \<br>              "movw %%cx,%%es\n\t" \<br>              "movw %%cx,%%fs\n\t" \<br>              "movw %%cx,%%gs" \<br>              ::"b"(USER_CODE_SEL),"c"(USER_DATA_SEL));<br>     __asm__ ("incb 0xeeffeeff");         /* </span><span style="color: red;">嫻嬭瘯錛?/span>瑙﹀彂涓涓紓甯?span lang="EN-US"> */<br>     for (;;) {<br>         __asm__ ("movb    %%al,    0xb8000+160*24"::"a"(wheel[i]));<br>         if (i == sizeof wheel)<br>             i = 0;<br>         else<br>             ++i;<br>     }<br> }<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">寮傚父澶勭悊渚嬬▼涓粈涔堜篃娌″仛錛岃闂唴瀛樺嚭閿欏垯姝繪満錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: red;" lang="EN-US">08/exceptions.c</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">void<br> page_fault(void) {<br>     __asm__ ("pushl    %%eax;call    do_page_fault"::"a"(KPL_PANIC));<br>     halt();<br> }<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏈鍚庢妸<span lang="EN-US">mm.o </span>娣誨姞鍒?span lang="EN-US"> Makefile </span>鐨?span lang="EN-US">KERNEL_OBJS </span>涓幓錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: red;" lang="EN-US">08/Makefile</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">KERNEL_OBJS= load.o init.o isr.o timer.o libcc.o scr.o kb.o task.o kprintf.o hd.o exceptions.o fs.o mm.o<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><img src ="http://www.shnenglu.com/jinglexy/aggbug/25801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-06-08 08:44 <a href="http://www.shnenglu.com/jinglexy/archive/2007/06/08/25801.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細(xì)鏂囦歡緋葷粺錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/19/24377.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Sat, 19 May 2007 03:35:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/19/24377.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/24377.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/19/24377.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/24377.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/24377.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細(xì)鏂囦歡緋葷粺    涓嬭澆婧愪唬鐮?澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細(xì)http://www.shnenglu.com/jinglexy 鍘熶綔鑰咃細(xì)xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn     鐩爣   榪欎竴璇句腑錛?..  <a href='http://www.shnenglu.com/jinglexy/archive/2007/05/19/24377.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/24377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-19 11:35 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/19/24377.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細(xì)澶氫換鍔★級錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/05/15/24158.html澶╄。鏈夌紳澶╄。鏈夌紳Tue, 15 May 2007 08:55:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/05/15/24158.htmlhttp://www.shnenglu.com/jinglexy/comments/24158.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/05/15/24158.html#Feedback3http://www.shnenglu.com/jinglexy/comments/commentRss/24158.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/24158.html闃呰鍏ㄦ枃

澶╄。鏈夌紳 2007-05-15 16:55 鍙戣〃璇勮
]]>
鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細(xì)涓柇鍜屽紓甯?錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/11/23881.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Fri, 11 May 2007 02:39:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/11/23881.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23881.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/11/23881.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23881.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23881.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細(xì)涓柇鍜屽紓甯?      涓嬭澆婧愪唬鐮? 澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細(xì)http://www.shnenglu.com/jinglexy 鍘熶綔鑰咃細(xì)xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn 鐩爣 鍦ㄤ笂涓鑺傝涓紝鎴戜滑浠?..  <a href='http://www.shnenglu.com/jinglexy/archive/2007/05/11/23881.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/23881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-11 10:39 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/11/23881.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏁寸悊涓浜涙湁鐢ㄧ殑緗戦〉錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/05/09/23727.html澶╄。鏈夌紳澶╄。鏈夌紳Wed, 09 May 2007 13:01:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/05/09/23727.htmlhttp://www.shnenglu.com/jinglexy/comments/23727.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/05/09/23727.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/23727.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/23727.html 

涓銆?/span>solaris 鍐呮牳鍙?qiáng)搴旂敤绋嬪簭婧惤E嬪簭錛?/span>

http://src.opensolaris.org/source          涓婚〉

http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/ls/ls.c   鑼冧緥錛?/span>ls婧愮▼搴?/span>

 

浜屻佹瘮杈冨鐨?/span>gcc璧勬枡

http://gcc.cookys.org/

 

涓夈?/span>linux鍐呮牳浜ゅ弶寮曠敤錛屼粠0.1鍒?.0錛?.0錛?.2錛?.4錛?/span>2.6.20閮芥湁

http://lxr.linux.no/source/

http://www.oldlinux.org/lxr/http/source/

 

鍥涖?/span>C 璇█甯歌闂闆?/span>(涓嫳鏂?/span>)

http://c-faq-chn.sourceforge.net/

http://c-faq.com/

 

浜斻佹搷浣滅郴緇熺浉鍏崇殑涓浜涜祫鏂欙紝鍖呮嫭linux婧愮▼搴忓垎鏋?/span>

http://osdev.gro.clinux.org

 

鍏?/span>linus鑷紶

http://www.bookcool.com/online/zhuanji/happyking-gb/0/content.htm

 

涓冦佸祵鍏ュ紡鍙?qiáng)OS寮鍙戣祫鏂欙紙鑻辨枃錛?/span>

http://my.execpc.com/~geezer/

 

鍏?/span>Testing and debugging KOS錛堣嫳鏂囷級

http://kos.enix.org/~d2/snapshots/kos_current/doc/testingen-html

 

涔?jié)銆?/span>the Single UNIX Specification Version 3錛堟帹鑽愶細(xì)鍙綔涓?/span>posix鐨勬浛浠e弬鑰冭祫鏂欙級

http://www.unix.org/single_unix_specification

 

鍗併?/span>OS璁捐鍙傝冿紙鑻辨枃錛?/span>

http://www.nondot.org/~sabre/os/articles

 



澶╄。鏈夌紳 2007-05-09 21:01 鍙戣〃璇勮
]]>
鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細(xì)涓柇鍜屽紓甯?錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23600.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 07 May 2007 23:37:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23600.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23600.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23600.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23600.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23600.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細(xì)涓柇鍜屽紓甯? 澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細(xì)http://www.shnenglu.com/jinglexy 鍘熶綔鑰咃細(xì)xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn 鐩爣        &nb...  <a href='http://www.shnenglu.com/jinglexy/archive/2007/05/08/23600.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/23600.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:37 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/08/23600.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細(xì)杈呭姪鍑芥暟錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23599.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 07 May 2007 23:36:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23599.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23599.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23599.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23599.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23599.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">絎?span lang="EN-US">3</span>璇撅細(xì)杈呭姪鍑芥暟<span lang="EN-US"><o:p></o:p></span></span></p> <br> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">澹版槑錛氳漿杞借淇濈暀</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">錛?/span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"></span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">璇戣?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">錛?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">http://www.shnenglu.com/jinglexy</span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鍘熶綔鑰咃細(xì)</span>xiaoming.mo at skelix dot org</p> MSN & Email: jinglexy at yahoo dot com dot cn<br><br> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐩爣<span lang="EN-US">            <a target="_blank"><span lang="EN-US"><span lang="EN-US">涓嬭澆婧愮▼搴?/span></span></a><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪欒妭璇炬垜浠榪扮殑鍐呭涓庢搷浣滅郴緇熸殏鏃犲お澶у叧緋伙紝浣嗘槸榪欎簺鍩虹鍑芥暟闈炲父閲嶈錛屽茍涓斿湪鍚庨潰鐨勮紼嬩腑緇忓父鐢ㄥ埌銆傝繖灝辨槸鎴戜滑緇忓父鍚埌鐨勫唴鏍稿簱銆傚鏋滀綘瀵硅繖浜涗笉鏄緢鎰熷叴瓚o紝鐭ラ亾<span lang="EN-US">kprintf</span>璞?span lang="EN-US">c</span>璇█閲岄潰鐨?span lang="EN-US">print</span>涓鏍峰伐浣滃氨琛屼簡銆傜畝鍗曟帬榪囧嵆鍙?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <a name="kprintf"></a> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">C</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐢ㄦ埛搴撻噷闈㈢殑<span lang="EN-US">printf</span>鍏鋒湁楂樺害鍙幾緙╂э紝涔熷緢瀹規(guī)槗鐞嗚В錛岀浉姣斾箣涓?span lang="EN-US">C</span>錛嬶紜涓殑<span lang="EN-US">IO</span>榪愮畻絎﹀氨姣旇緝闅句簡銆備負(fù)浜嗗湪灞忓箷涓婃樉紺哄瓧絎︿覆鎴栨暟鎹紝鎴戜滑鐜板湪闇瑕佸疄鐜扮被浼?span lang="EN-US">C</span>搴撲腑鐨?span lang="EN-US">printf</span>錛屾樉紺哄瓧絎﹀湪<span lang="EN-US">B8000</span>寮濮嬬殑鏄懼瓨澶勩傛垜騫朵笉鍍忓畬鍏ㄥ疄鐜?span lang="EN-US">printf</span>鐨勬墍鏈夊姛鑳斤紝鍥犱負(fù)<span lang="EN-US">skelix</span>鍐呮牳鍙渶瑕佹樉紺哄瓧絎︿覆錛屽崄榪涘埗鍜屽崄鍏繘鍒舵垨浜岃繘鍒訛紝姝f暣鏁幫紝瀛楃灝辮浜嗭紝騫朵笖闇瑕佹敮鎸佸彲鍙樺弬鏁般傚叾浠栨洿楂樼駭鐨勫姛鑳芥垜浠笉浼?xì)鐢ㄥ埌銆?span lang="EN-US"><br> <br> </span>榪欓噷鏈変竴縐嶆柟娉曟潵瀹炵幇錛屾垜浠洿鍒拌薄<span lang="EN-US">func(int arg1, int arg2, int arg3)</span>榪欐牱涓涓嚱鏁拌璋冪敤鏃訛紝瀹冩眹緙栧悗鐨勬寚浠ゅ簲璇ュ涓嬶紙鎵鏈変粠宸﹀悜鍙沖叆鏍堢殑緙栬瘧鍣ㄥ簲璇ヤ粠鍦扮悆涓婂交搴曟秷澶憋級錛?span lang="EN-US"><br> pushl   arg3<br> pushl   arg2<br> pushl   arg1<br> call    func<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎴戜滑鐪嬪埌錛屽弬鏁頒粠鍙沖悜宸︿竴涓釜鍏ユ爤錛屽弬鏁拌秺澶氾紝鍏ユ爤瓚婃繁銆傚鏋滄槸鍙彉鍙傛暟閭f垜浠庝箞鐭ラ亾鏈夊灝戜釜鍙傛暟鍛紵絳旀鏄?span lang="EN-US">printf</span>鏍煎紡鍖栧瓧絎︿覆涓弬鏁板垽鏂細(xì)鏈夊灝戜釜<span lang="EN-US">%X</span>錛屽氨鏈夊灝戜釜鍙傛暟瑕佽В鏋愩傚湪<span lang="EN-US">32</span>浣嶆ā寮忎笅錛屾墍鏈夊皬浜?span lang="EN-US">4</span>瀛楄妭鐨勫弬鏁伴兘琚綋浣?span lang="EN-US">4</span>瀛楄妭澶勭悊銆備緥濡備竴涓?span lang="EN-US">char</span>鍨嬪弬鏁幫紝鍏ユ爤鏃跺氨鏄?span lang="EN-US">int</span>鍨嬩簡錛屾墍浠ュ湪瑙f瀽鍙傛暟鏃跺姟蹇呬繚璇佹紜?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎴戜滑榪欐牱璁捐<span lang="EN-US">kprintf</span>鍙傛暟錛?span lang="EN-US">kprintf(color, format string, arguments...)<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">絎竴涓弬鏁板畾涔夎緭鍑虹殑鍓嶆櫙<span lang="EN-US">/</span>鑳屾櫙棰滆壊銆傛垜浠畾涔変簡寰堝瀹忔潵瑙f瀽鏍堬紝濡傛灉浣犵啛鎮(zhèn)?span lang="EN-US">C</span>璇█搴旇寰堝鏄撶悊瑙e畠浠?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <span style="color: red;">03/kprintf.c</span><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">#define args_list char *            // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪欎釜瀹忕敤渚嬭漿鎹㈡爤絀洪棿涓哄瓧絎︿覆鎸囬拡<span lang="EN-US"><br> #define _arg_stack_size(type)    (((sizeof(type)-1)/sizeof(int)+1)*sizeof(int))<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">                                    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪欎釜瀹忓洓鑸嶄簲鍏ュ弬鏁板ぇ灝忎負(fù)<span lang="EN-US">4</span>瀛楄妭鐨勫嶆暟<span lang="EN-US"><br> #define args_start(ap, fmt) do {    \<br> ap = (char *)((unsigned int)&fmt + _arg_stack_size(&fmt));   \<br> } while (0)<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">                                    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙傛暟灝嗕粠鏍煎紡鍖栧瓧絎︿覆鍚庨潰寮濮嬭В鏋愶紝鍗?span lang="EN-US">fmt</span>灝辨槸鏍堥《錛屼笂闈㈣繖涓畯灝辨槸鍙栧弬鏁扮殑棣栧湴鍧<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> #define args_end(ap)                // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍒扮幇鍦ㄤ負(fù)姝紝浠涔堜篃涓嶅仛<span lang="EN-US"><br> #define args_next(ap, type) (((type *)(ap+=_arg_stack_size(type)))[-1])<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">                                    // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙?span lang="EN-US">‘</span>褰撳墠<span lang="EN-US">’</span>鍙傛暟鍦板潃錛岀劧鍚庤緗寚閽堜負(fù)涓嬩竴涓弬鏁板湴鍧錛屾毀鏄х殑鍑芥暟鍚嶏紒<span lang="EN-US"><br> <br> <span style="color: red;">03/kprintf.c</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">static char buf[1024] = {-1};       // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">娉ㄦ剰娌℃湁閿佷繚鎶わ紝寮曠敤璇ュ彉閲忕殑鍑芥暟涓嶅彲閲嶅叆錛?span lang="EN-US"><br> static int ptr = -1;<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓嬮潰涓や釜鍑芥暟瑙f瀽鍊間負(fù)鎸囧畾鐨勮繘鍒舵暟錛?span lang="EN-US"><br> static void<br> parse_num(unsigned int value, unsigned int base) {            // </span>鍙互鎵撳嵃灝忎簬絳変簬<span lang="EN-US">10</span>榪涘埗鐨勬暟<span lang="EN-US"><br>     unsigned int n = value / base;<br>     int r = value % base;<br>     if (r < 0) {<br>         r += base;<br>         --n;<br>     }<br>     if (value >= base)<br>         parse_num(n, base);<br>     buf[ptr++] = (r+'0');<br> }<br> <br> static void                                                   // </span>鎵撳嵃<span lang="EN-US">16</span>榪涘埗鏁?span lang="EN-US"><br> parse_hex(unsigned int value) {<br>     int i = 8;<br>     while (i-- > 0) {<br>         buf[ptr++] = "0123456789abcdef"[(value>>(i*4))&0xf];<br>     }<br> }<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪鎴戜滑鏉ョ湅涓涓?span lang="EN-US"> kprintf</span>榪欎釜鍑芥暟錛屽畠鏀寔鐨勬牸寮忥細(xì)<span lang="EN-US">%s, %c, %x, %d, %%<br> void<br> kprintf(enum KP_LEVEL kl, const char *fmt, ...) {<br>     int i = 0;<br>     char *s;<br>     /* must be the same size as enum KP_LEVEL */<br>     struct KPC_STRUCT {<br>         COLOUR fg;<br>         COLOUR bg;<br>     } KPL[] = {<br>         {BRIGHT_WHITE, BLACK},<br>         {YELLOW, RED},<br>     };<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> enum KP_LEVEL {KPL_DUMP, KPL_PANIC} </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">瀹氫箟鍦?span lang="EN-US"> include/kprintf.h, </span>瀹冭〃紺轟袱縐嶈緭鍑烘柟妗?span lang="EN-US">, KPL_DUMP </span>浣跨敤榛戣壊鑳屾櫙鐧借壊鍓嶆櫙鏄劇ず瀛楃錛?span lang="EN-US">KPL_PANIC </span>浣跨敤榛勮壊鍓嶆櫙鍜岀孩鑹茶儗鏅傞鑹插父閲忓畾涔夊湪<span lang="EN-US"> include/scr.h, </span>鍚庨潰浼?xì)浠嬀l嶅埌<span lang="EN-US">.<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    args_list args;<br>     args_start(args, fmt);<br> <br>     ptr = 0;<br> <br>     for (; fmt[i]; ++i) {<br>         if ((fmt[i]!='%') && (fmt[i]!='\\')) {<br>             buf[ptr++] = fmt[i];<br>             continue;<br>         } else if (fmt[i] == '\\') {<br>             /* \a \b \t \n \v \f \r \\ */<br>             switch (fmt[++i]) {<br>             case 'a': buf[ptr++] = '\a'; break;<br>             case 'b': buf[ptr++] = '\b'; break;<br>             case 't': buf[ptr++] = '\t'; break;<br>             case 'n': buf[ptr++] = '\n'; break;<br>             case 'r': buf[ptr++] = '\r'; break;<br>             case '\\':buf[ptr++] = '\\'; break;<br>             }<br>             continue;<br>         }<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">        /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓嬮潰鏄敮鎸佺殑鎵撳嵃鏍煎紡<span lang="EN-US"> */<br>         switch (fmt[++i]) {<br>         case 's':<br>             s = (char *)args_next(args, char *);<br>             while (*s)<br>                 buf[ptr++] = *s++;<br>             break;<br>         case 'c':<br>             buf[ptr++] = (char)args_next(args, int);<br>             break;<br>         case 'x':<br>             parse_hex((unsigned long)args_next(args, unsigned long));<br>             break;<br>         case 'd':<br>             parse_num((unsigned long)args_next(args, unsigned long), 10);<br>             break;<br>         case '%':<br>             buf[ptr++] = '%';<br>             break;<br>         default:<br>             buf[ptr++] = fmt[i];<br>             break;<br>         }<br>     }<br>     buf[ptr] = '\0';<br>     args_end(args);<br>     for (i=0; i<ptr; ++i)<br>         <span style="color: red;">print_c</span>(buf[i], KPL[kl].fg, KPL[kl].bg);            /* print_c() </span>鏄笅灞傜殑鏄劇ず鍑芥暟錛屾湰鏂囧悗闈細(xì)鏈夎瑙?span lang="EN-US"> */<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">}<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br>  <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐢變簬鏄唴鏍哥▼搴忥紝鎴戜滑鏃犳硶浣跨敤<span lang="EN-US">C</span>鐢ㄦ埛搴撱傛墍浠ヤ竴涓?span lang="EN-US">memcpy</span>錛?span lang="EN-US">memset</span>錛?span lang="EN-US">memcpy</span>鍑芥暟闇瑕佽嚜宸卞疄鐜幫紝浣嗘槸闇瑕佹敞鎰忕殑鏄湪<span lang="EN-US">BSD</span>緋葷粺涓紝鍗充究浣跨敤浜?span lang="EN-US">-nostdlib</span>錛岀紪璇戝櫒浠嶇劧浼?xì)漶旂?span lang="EN-US">System V</span>涓浉鍏崇殑<span lang="EN-US">memcpy</span>絳変唬鐮侊紝鍏蜂綋鎯呭喌鎴戜篃涓嶆槸寰堟竻闄ゃ傝繖浜涘嚱鏁扮殑鏁堢巼褰撶劧鏃犳硶鍜?span lang="EN-US">linux</span>鍐呮牳涓殑鍐呭祵姹囩紪鐩告瘮錛佹垜浠殏鏃惰繖鏍峰疄鐜板畠浠惂銆?span lang="EN-US"><br> <span style="color: red;">03/libcc.c</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">/* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓嬮潰鍑芥暟瀵歸噸鍙犲尯鍩熶篃榪涜浜嗗鐞?span lang="EN-US"> */<br> void <br> bcopy(const void *src, void *dest, unsigned int n) {<br>     const char *s = (const char *)src;<br>     char *d = (char *)dest;<br>     if (s <= d)<br>         for (; n>0; --n)<br>             d[n-1] = s[n-1];<br>     else<br>         for (; n>0; --n)<br>             *d++ = *s++;<br> }<br> <br> void<br> bzero(void *dest, unsigned int n) {<br>     memset(dest, 0, n);<br> }<br> <br> void *<br> memcpy(void *dest, const void *src, unsigned int n) {<br>     bcopy(src, dest, n);<br>     return dest;<br> }<br> <br> void *<br> memset(void *dest, int c, unsigned int n) {<br>     char *d = (char *)dest;<br>     for (; n>0; --n)<br>         *d++ = (char)c;<br>     return dest;<br> }<br> <br> int<br> memcmp(const void *s1, const void *s2, unsigned int n) {<br>     const char *s3 = (const char *)s1;<br>     const char *s4 = (const char *)s2;<br>     for (; n>0; --n) {<br>         if (*s3 > *s4)<br>             return 1;<br>         else if (*s3 < *s4)<br>             return -1;<br>         ++s3;<br>         ++s4;<br>     }<br>     return 0;<br> }<br> <br> int<br> strcmp(const char *s1, const char *s2) {<br>     while (*s1 && *s2) {<br>         int r = *s1++ - *s2++;<br>         if (r)<br>             return r;<br>     }<br>     if (*s1 == *s2)<br>         return 0<br>     else<br>         return (*s1)?1:-1;<br> }<br> <br> char *<br> strcpy(char *dest, const char *src) {<br>     char *p = dest;<br>     while ( (*dest++ = *src++))<br>         ;<br>     *dest = 0;<br>     return p;<br> }<br> <br> unsigned int<br> strlen(const char *s) {<br>     unsigned int n = 0;<br>     while (*s++)<br>         ++n;<br>     return n;<br> }<br> <br> <a name="print_c"></a><span style="color: red;">print_c</span></span><span style="color: red;">鍑芥暟</span><span lang="EN-US"><br> </span>鐩存帴鎿嶄綔鏄懼瓨鍖哄煙涓鐐逛篃涓嶆柟渚匡紝鎵浠ユ垜浠渶瑕佷竴涓樉紺烘ā鍧椼傝繖涓氨鏄垜浠殑<span lang="EN-US">‘</span>鏄懼崱椹卞姩<span lang="EN-US">’</span>浜嗭紝鏄笉鏄笉鏁㈢浉淇¢┍鍔ㄦ槸榪欎箞綆鍗曠殑浜嬫儏錛熸垜浠厛鏉ョ湅涓涓嬩竴浜涘父閲忓畾涔夛細(xì)<span lang="EN-US"><br> <span style="color: red;">03/include/scr.h</span><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">#define MAX_LINES    25                // bios</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">榛樿璁劇疆灞忓箷涓?span lang="EN-US"> 80x25</span>澶у皬錛屽僵鑹插瓧絎︽ā寮?span lang="EN-US"><br> #define MAX_COLUMNS  80<br> #define TAB_WIDTH    8                 // </span>蹇呴』鏄細(xì)<span lang="EN-US">2^n<br> #define VIDEO_RAM    0xb8000           // </span>鏄懼瓨鍦板潃<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鎴戜滑鏇劇畝瑕佹彁鍒拌繃榪欎釜鍦板潃錛屽湪瀛楃妯″紡涓嬶紝閫傞厤鍣ㄤ嬌鐢?span lang="EN-US">0xB8000-0xBF000</span>浣滀負(fù)瑙嗛鍐呭瓨銆傞氬父鎴戜滑澶勪簬<span lang="EN-US">80x25</span>澶у皬灞忓箷錛屾湁<span lang="EN-US">16</span>縐嶉鑹層傜敱浜庝竴涓睆騫曞彧闇瑕?span lang="EN-US">80x25x2</span>涓瓧鑺傦紝鍗?span lang="EN-US">4k</span>錛屾墍浠ヨ瑙嗛鍐呭瓨鍙互鍒嗕負(fù)澶氫釜欏點(diǎn)傛垜浠嬌鐢ㄦ墍鏈夌殑欏碉紝浣嗘槸褰撳墠鍙兘鏈変竴涓〉闈㈠彲瑙併備負(fù)浜嗘樉紺轟竴涓瓧絎︼紝灝嗙敤鍒?span lang="EN-US">2</span>涓瓧鑺傦紝涓涓瓧鑺傛槸瀛楃鍊鹼紝鍙︿竴涓瓧鑺傛槸瀛楃灞炴э紙鍗抽鑹詫級銆傚睘鎬у瓧鑺傚畾涔夊涓嬶細(xì)<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">To display a single character, two bytes are being used which called the character byte and the attribute byte. The character byte contains the value of the character. The attribute byte is defined like this: <o:p></o:p></span></p> <table class="MsoNormalTable" style="width: 51.76%;" border="1" cellpadding="0" width="51%"> <tbody> <tr> <td style="padding: 1.5pt; width: 99pt;" width="132"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit 7<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 600.75pt;" width="801"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">闂儊<span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 99pt;" width="132"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bits 6-4<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 600.75pt;" width="801"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鑳屾櫙鑹?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 99pt;" width="132"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit 3<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 600.75pt;" width="801"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鏄庝寒妯″紡<span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> <tr> <td style="padding: 1.5pt; width: 99pt;" width="132"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">Bit3 2-0<o:p></o:p></span></p> </td> <td style="padding: 1.5pt; width: 600.75pt;" width="801"> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍓嶆櫙鑹?span lang="EN-US"><o:p></o:p></span></span></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">#define LINE_RAM    (MAX_COLUMNS*2)<br> #define PAGE_RAM    (MAX_LINE*MAX_COLUMNS)<br> <br> #define BLANK_CHAR    (' ')<br> #define BLANK_ATTR    (0x70)        /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐧借壊鍓嶆櫙錛岄粦鑹茶儗鏅?span lang="EN-US"> */<br> <br> #define CHAR_OFF(x,y)    (LINE_RAM*(y)+2*(x))        /* </span>璁$畻緇欏畾鍧愭爣<span lang="EN-US">x</span>錛?span lang="EN-US">y</span>鐨勫亸縐誨湴鍧錛堢浉瀵?span lang="EN-US">0xB8000</span>錛?span lang="EN-US"> */<br> Calculates the offset of a given ordinary x, y from 0xB8000<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">typedef enum COLOUR_TAG {                            /* </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">棰滆壊琛?span lang="EN-US"> */<br>     BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, WHITE,<br>     GRAY, LIGHT_BLUE, LIGHT_GREEN, LIGHT_CYAN, <br>     LIGHT_RED, LIGHT_MAGENTA, YELLOW, BRIGHT_WHITE<br> } COLOUR;<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍧愭爣緋誨涓嬶細(xì)<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">  ___________________\<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> | </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">錛?span lang="EN-US">0</span>錛?span lang="EN-US">0</span>錛?span lang="EN-US">          /<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> |<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">\|/<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <br> <span style="color: red;">03/scr.c</span><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">static int csr_x = 0;<br> static int csr_y = 0;<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐢變簬鎴戜滑鍙敤鍒頒簡涓涓棰戦〉錛屾墍浠ヤ笂闈袱涓彉閲忓氨鍙互瀛樺偍鍧愭爣浜嗐傚叧浜庡欏墊樉紺哄彲浠ュ湪緗戠粶涓婃煡鎵劇浉鍏寵祫鏂欍?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> static void <br> scroll(int lines) {        </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍚戜笂婊氬姩灞忓箷澶氬皯琛岋紝灝辨槸涓浜涘唴瀛樺鍐欍?span lang="EN-US"><br>     short *p = (short *)(VIDEO_RAM+CHAR_OFF(MAX_COLUMNS-1, MAX_LINES-1));<br>     int i = MAX_COLUMNS-1;<br>     memcpy((void *)VIDEO_RAM, (void *)(VIDEO_RAM+LINE_RAM*lines),<br>            LINE_RAM*(MAX_LINES-lines));<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br>     for (; i>=0; --i)            // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璇存槑榪欎釜<span lang="EN-US">for</span>寰幆鏈夐棶棰橈紝瑙夊緱搴旇鏀規(guī)垚涓嬮潰榪欐牱錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    // for (i = i * lines; i>=0; --i)<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">        *p-- = (short)((BLANK_ATTR<<4)|BLANK_CHAR);<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">}<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓嬮潰鍑芥暟璁劇疆鍏夋爣鍙兘浼?xì)寮曞彂绔炴佹潯浠訛紝浣嗘槸<span lang="EN-US">print_c</span>鍙噯澶囧湪鍐呮牳涓嬌鐢紝鎵浠ユ病鏈夊叧涓柇銆傚畠鍙兘浼?xì)寮曡捣涓浜?span lang="EN-US">bug</span>錛屼絾鏄垜娌℃湁鎵懼埌銆傝瘧娉細(xì)鍏ㄥ眬鍙橀噺娌℃湁閿佷繚鎶ゅ湪璁捐涓婂氨鏄竴縐嶉敊璇傝繖閲岀殑浠g爜淇濇姢紜疄鏄病鏈夊仛錛佽鑰呭簲鐢ㄥ埌鑷繁鐨勫唴鏍告椂瑕佸皬蹇冧簡銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">void <br> set_cursor(int x, int y) {<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    csr_x = x;<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    csr_y = y;<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    outb(0x0e, 0x3d4);                                   </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁劇疆鍏夋爣楂?span lang="EN-US">8</span>浣嶇殑鍑嗗宸ヤ綔<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    outb(((csr_x+csr_y*MAX_COLUMNS)>>8)&0xff, 0x3d5);    </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁劇疆鍏夋爣楂?span lang="EN-US">8</span>浣?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    outb(0x0f, 0x3d4);                                   </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁劇疆鍏夋爣浣?span lang="EN-US">8</span>浣嶇殑鍑嗗宸ヤ綔<span lang="EN-US"><br>     outb(((csr_x+csr_y*MAX_COLUMNS))&0xff, 0x3d5);       </span>璁劇疆鍏夋爣浣?span lang="EN-US">8</span>浣?span lang="EN-US">   <br> }<br> <br> void<br> get_cursor(int *x, int *y) {<br>     *x = csr_x;<br>     *y = csr_y;<br> }<br> <br> void <br> print_c(char c, COLOUR fg, COLOUR bg) {<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">// </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐢ㄨ繖涓嚱鏁版潵鏄劇ず涓涓叿浣撶殑瀛楃鍒板睆騫曪紝鎴戜滑鍙互鎶婂畠鐪嬩綔<span lang="EN-US">‘</span>鏄懼崱椹卞姩<span lang="EN-US">’<br>     char *p; <br>     char attr;<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br>     p = (char *)VIDEO_RAM+CHAR_OFF(csr_x, csr_y);        // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙栧厜鏍囦綅緗?span lang="EN-US"><br>     attr = (char)(bg<<4|fg);                             // </span>灞炴?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">    switch (c) {<br>     case '\r':<br>         csr_x = 0;<br>         break;<br>     case '\n':<br>         for (; csr_x<MAX_COLUMNS; ++csr_x) {<br>             *p++ = BLANK_CHAR;<br>             *p++ = attr;<br>         }<br>         break;<br>     case '\t':<br>         c = csr_x+TAB_WIDTH-(csr_x&(TAB_WIDTH-1));<br>         c = c<MAX_COLUMNS?c:MAX_COLUMNS;<br>         for (; csr_x<c; ++csr_x) {<br>             *p++ = BLANK_CHAR;<br>             *p++ = attr;<br>         }<br>         break;<br>     case '\b':<br>         if ((! csr_x) && (! csr_y))<br>             return;<br>         if (! csr_x) {<br>             csr_x = MAX_COLUMNS - 1;<br>             --csr_y;<br>         } else<br>             --csr_x;<br>         ((short *)p)[-1] = (short)((BLANK_ATTR<<4)|BLANK_CHAR);<br>         break;<br>     default:<br>         *p++ = c; <br>         *p++ = attr;<br>         ++csr_x;<br>         break;<br>     }<br>     if (csr_x >= MAX_COLUMNS) {<br>         csr_x = 0;<br>         if (csr_y < MAX_LINES-1)<br>             ++csr_y;<br>         else <br>             scroll(1);<br>     }<br>     set_cursor(csr_x, csr_y);        // </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁劇疆鍏夋爣浣嶇疆<span lang="EN-US"><br> }<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍑芥暟姣旇緝綆鍗曪紝娌℃湁鍒嗘瀽鐨勫繀瑕佷簡錛屽ぇ瀹惰嚜宸辯悽紓ㄥ惂銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> </span></p><img src ="http://www.shnenglu.com/jinglexy/aggbug/23599.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:36 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/08/23599.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細(xì)淇濇姢妯″紡錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23598.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 07 May 2007 23:35:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23598.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23598.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23598.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23598.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23598.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細(xì)淇濇姢妯″紡 澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細(xì)http://www.shnenglu.com/jinglexy 鍘熶綔鑰咃細(xì)xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn 鐩爣        涓嬭澆婧愮▼搴?..  <a href='http://www.shnenglu.com/jinglexy/archive/2007/05/08/23598.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/23598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:35 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/08/23598.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細(xì)寮曞紼嬪簭錛夛紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23597.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Mon, 07 May 2007 23:34:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23597.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/23597.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/05/08/23597.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/23597.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/23597.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">絎?span lang="EN-US">1</span>璇撅細(xì)寮曞紼嬪簭<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">澹版槑錛氳漿杞借淇濈暀</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">錛?/span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"></span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">璇戣?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">錛?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">http://www.shnenglu.com/jinglexy</span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">鍘熶綔鑰咃細(xì)</span>xiaoming.mo at skelix dot org</p> MSN & Email: jinglexy at yahoo dot com dot cn<br><br><br> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">鐩爣錛?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;">浣?span lang="EN-US">"system"</span>浠庤蔣鐩樺惎鍔紝騫舵墦鍗?span lang="EN-US">"Hello World!" <a target="_blank"><span lang="EN-US"><span lang="EN-US">涓嬭澆婧愮▼搴?/span></span></a><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">鍐呭瓨瀵誨潃</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">澶勭悊鍣ㄤ互<span lang="EN-US">‘</span>瀛楄妭<span lang="EN-US">’</span>綆$悊鍜岃闂唴瀛橈紝姣忎釜瀛楄妭閮芥湁鐙珛鐨勫湴鍧錛屽嵆鐗╃悊鍦板潃銆傛湁涓ょ鍦板潃鏄犲皠鏂瑰紡錛氬垎孌靛拰鍒嗛〉錛?span lang="EN-US">skelix</span>鍐呮牳涓兘鐢ㄥ埌浜嗐?a name="Memory_Addressing"></a> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">孌靛浜庢垜浠潵璇村啀鐔熸?zhèn)変笉杩囦簡锛屽厛鍥灆寰涓涓?span lang="EN-US">dos</span>鏃舵湡鐨勬鍚с傚畠鏄竴涓?span lang="EN-US">16</span>浣嶇殑瀵勫瓨鍣紝鎵浠ユ渶澶氬彲浠ョ洿鎺ヨ闂?span lang="EN-US">2^16</span>瀛楄妭鐨勫唴瀛橈紝鍗?span lang="EN-US">64K</span>銆傝繖瀵瑰簲鐢ㄧ▼搴忔潵璇村お灝戜簡錛屼簬鏄?span lang="EN-US">Intel</span>浣跨敤<span lang="EN-US">Segment:Offset</span>緇撳悎鏂瑰紡鏉ヨ〃紺轟竴涓櫄鎷熷湴鍧銆傛瀵勫瓨鍣ㄥ乏縐?span lang="EN-US">4</span>浣嶅姞涓婂亸縐誨氨寰楀埌瀹為檯鐨勭墿鐞嗗湴鍧浜嗐備緥濡傦紝<span lang="EN-US">0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>00:0x0189</span>琛ㄧず鐗╃悊鍦板潃<span lang="EN-US">0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>189</span>錛岃屼笉鏄?span lang="EN-US">0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>000189</span>銆傝綆楄繃紼嬪涓嬶細(xì)<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7C</st1:chmetcnv>000<br> + 0189<br> -------<br>  <st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7C</st1:chmetcnv>189<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪鎴戜滑鏉ヨ綆楁渶澶у彲浠ヨ闂殑鍦板潃錛?span lang="EN-US">FFFF:FFFF<br> <br>  FFFF0<br> + FFFF<br> -------<br> 10FFEF<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪欎釜鑼冨洿鏄?st1:chmetcnv unitname="m" sourcevalue="1" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"><span lang="EN-US">1M</span></st1:chmetcnv><span lang="EN-US"> + 65519 bytes, </span>鍥犱負(fù)鍦?span lang="EN-US">80386</span>涓嬌鐢ㄤ簡<span lang="EN-US">20</span>浣嶅湴鍧綰匡紝鎵浠ュ彲浠ラ澶栧璁塊棶<span lang="EN-US">65519</span>涓瓧鑺傝櫄鎷熷湴鍧錛屼緥濡傚湴鍧<span lang="EN-US">0x100010</span>琚槧灝勫埌鍦板潃<span lang="EN-US">0x10</span>錛岃闂繖涓や釜鍦板潃鏄瓑浠風(fēng)殑銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">琛ㄧず鍚屼竴涓墿鐞嗗湴鍧鏈夊縐嶆柟寮忥紝渚嬪<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"><span lang="EN-US">07C</span></st1:chmetcnv><span lang="EN-US">0:0000</span>鍜?span lang="EN-US">0000:<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7C</st1:chmetcnv>00 </span>灝辨槸涓鏍風(fēng)殑銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍙︿竴涓蹇墊槸綰挎у湴鍧錛岃繖涓槸<span lang="EN-US">32</span>浣嶅湴鍧錛屽彧鏈夊綋鍒嗛〉鏈哄埗寮鍚椂鎵嶆湁鏁堬紝鏂囩珷鍚庨潰浼?xì)鎻愬埌瀹冦?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">寮曞榪囩▼</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">褰撶郴緇熶笂鐢墊垨<span lang="EN-US">RESET</span>鏃訛紝澶勭悊鍣ㄥ皢鎵ц涓浜涘垪鐨勫垵濮嬪寲錛屽瘎瀛樺櫒琚緗垚闈為鐭ョ姸鎬侊紝騫朵笖<span lang="EN-US">cpu</span>澶勪簬瀹炴ā寮忋備篃璁鎬綘鎯崇煡閬?span lang="EN-US">cpu</span>鏄庢牱璁劇疆<span lang="EN-US">segment:offset</span>涓虹墿鐞嗗湴鍧<span lang="EN-US">FFFF0</span>鐨勶紙<span lang="EN-US">0xf000:0xfff0</span>灝辨槸<span lang="EN-US">bios</span>鍏ュ彛鍦板潃錛夛紝榪欐槸鍥犱負(fù)<span lang="EN-US">cs</span>瀵勫瓨鍣ㄦ湁涓涓潪鍙閮ㄥ垎錛屽畠淇濆瓨浜?span lang="EN-US">ffff:0000</span>鍦板潃錛屽茍涓?span lang="EN-US">cs</span>鍦ㄥ垵濮嬪寲鏃朵細(xì)琚鍏?span lang="EN-US">f000</span>鍊箋傛鍚庝互姝e父鏂瑰紡浣跨敤瀹冦傚綋<span lang="EN-US">bois</span>鍙栧緱鎺у埗鏉冨悗錛屾牴鎹敤鎴烽厤緗紙浠庤蔣椹憋紝紜洏錛屾垨<span lang="EN-US">cdrom</span>錛変腑璇誨彇絎竴涓?span lang="EN-US">sector</span>鍒?st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"><span lang="EN-US">00007C</span></st1:chmetcnv><span lang="EN-US">00</span>錛屽茍璺寵漿鍒拌鍦板潃鎵ц錛堝氨鏄紩瀵肩▼搴?span lang="EN-US">bootstrap</span>錛夈傚湪<span lang="EN-US">bootstrap</span>涓垜浠彲浠ヤ嬌鐢?span lang="EN-US">bios</span>涓柇錛屼絾鏄繘鍏?span lang="EN-US">kernel</span>鍚庡氨涓嶈兘鍐嶄嬌鐢ㄤ簡銆?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> </span><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">紼嬪簭涓錛氫嬌鐢?span lang="EN-US">as</span>鍜?span lang="EN-US">ld</span>鐨勮寖渚?/span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">浣犲彲浠ュ湪涓嬭澆婧愮▼搴忕殑<span style="color: red;" lang="EN-US">01/first.cry/bootsect.s</span><span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">        .text              .text</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">琛ㄧず浠g爜孌?span lang="EN-US"><br>         .globl             start</span>琛ㄧず<span lang="EN-US">start</span>鍙互鐢ㄤ綔澶栭儴絎﹀彿<span lang="EN-US"><br>         .code16            GCC</span>榛樿浣跨敤<span lang="EN-US">32</span>浣嶅湴鍧鍜屾搷浣滄暟錛岃繖閲屽憡璇夊畠浣跨敤<span lang="EN-US">16</span>浣?span lang="EN-US"><br> start:<br>         jmp      start     </span>姝誨驚鐜?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">.org    0x1fe,   0x90      <span style="color: blue;">.org NEW-LC, FILL</span></span><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">錛?/span><span style="font-size: 12pt; font-family: 瀹嬩綋; color: black;">璇存槑錛氳繖閲屽~鍏?span lang="EN-US">0x90</span>錛屾槸<span lang="EN-US">nop</span>鎸囦護(hù)鐨勬満鍣ㄧ爜<span lang="EN-US"><br> </span></span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">.word   0xaa55<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁茶В錛?span lang="EN-US">.org</span>鎸囦護(hù)鎸囩ず涓嬩竴涓暟鎹湴鍧錛屼負(fù)浜嗙紪璇戣繖涓▼搴忥紝鎴戜滑鍐欎簡涓涓?span lang="EN-US">Makefile</span>錛屾諱笉鑳借佹槸鏁插懡浠ゅ惂錛屽懙鍛點(diǎn)?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">緗戠粶涓婂彲浠ユ壘鍒板緢澶氬啓<span lang="EN-US">Makefile</span>鐨勮祫鏂欙紝緙栬瘧閫夐」鎵嶆槸鎴戜滑鍏蟲敞鐨勭劍鐐廣?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><br> <span style="color: red;">01/first.cry/Makefile</span><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">AS=as                     gcc</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">姹囩紪宸ュ叿<span lang="EN-US"><br> LD=ld                     gcc</span>榪炴帴鍣?span lang="EN-US"><br> <br> .s.o:<br>     ${AS} -a $< -o $*.o >$*.map<br> <br> all: final.img<br> <br> final.img: bootsect<br>     mv bootsect final.img<br> <br> bootsect: bootsect.o<br>     ${LD} --oformat binary -N -e start -Ttext 0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>00 -o bootsect $<<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">璁茶В錛?span lang="EN-US">ld</span>鍙互琚厤緗負(fù)鏀寔澶氫簬涓縐嶇殑鐩爣鏂囦歡<span lang="EN-US">. binary</span>琛ㄧず娌℃湁紼嬪簭澶村拰鍏朵粬淇℃伅錛屼粎浠呮槸涓浜涜8鏁版嵁銆傚鏋滄病鏈夎繖涓夐」錛屽皢琚粯璁ら摼鎺ヤ負(fù)<span lang="EN-US">elf</span>鏍煎紡銆?span lang="EN-US">-N</span>鎶?span lang="EN-US">text</span>鍜?span lang="EN-US">data</span>鑺傝緗負(fù)鍙鍐欍?span lang="EN-US">-Ttext</span>灝?span lang="EN-US">text</span>鑺傝搗濮嬪湴鍧璁劇疆涓?span lang="EN-US">0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>00</span>錛堝湪<span lang="EN-US">jmp</span>鍜屾暟鎹紩鐢ㄧ瓑閲嶅畾浣嶉摼鎺ユ椂浼?xì)鐢ㄥ埌杩欎釜鍙傝冨鹼級錛屾墍鏈夌殑寮曠敤鍦板潃閮芥槸鍦?st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"><span lang="EN-US">7c</span></st1:chmetcnv><span lang="EN-US">00</span>榪欎釜鍦板潃涓婂姞鍑烘潵鐨勩?span lang="EN-US">-e</span>閫夐」鎸囧畾紼嬪簭鍏ュ彛鐐?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪鎴戜滑榪愯<span lang="EN-US">make</span>鎸囦護(hù)緙栬瘧涓涓嬶細(xì)<span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">[root@root~/source/os/skelix/01/first.cry]$ ls<br> <span style="color: green;">bootsect.s  COPYING  Makefile</span><br> [root@root~/source/os/skelix/01/first.cry]$ make<br> as -a bootsect.s -o bootsect.o >bootsect.map<br> ld --oformat binary -N -e start -Ttext 0x<st1:chmetcnv unitname="C" sourcevalue="7" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">7c</st1:chmetcnv>00 -o bootsect bootsect.o<br> mv bootsect final.img<br> [root@root~/source/os/skelix/01/first.cry]$ ls<br> <span style="color: green;">bootsect.map  bootsect.o </span> bootsect.s  COPYING  <span style="color: green;">final.img</span>  Makefile<br> [root@root~/source/os/skelix/01/first.cry]$<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">鐜板湪錛屾垜浠惎鍔?span lang="EN-US">vmware</span>錛岃繍琛岋紝杞藉叆杞┍鏄犺薄鏂囦歡<span lang="EN-US">"final.img"</span>錛屾垜浠緱鍒頒竴涓粦灞忥紝榪欐槸姝g‘鐨勶紝鍥犱負(fù)鎴戜滑浠涔堜篃娌℃湁鍋氥?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: blue;">紼嬪簭涓錛氭樉紺?<span lang="EN-US">Hello World!</span></span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;">濂戒簡錛屼笂闈㈢殑榛戝睆紼嬪簭騫朵笉鏄お濂界帺錛岀幇鍦ㄦ垜浠皾璇曞湪涓婇潰鎵撳嵃<span lang="EN-US">"Hello World!"<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋; color: red;" lang="EN-US">01/hello.world/bootsect.s</span><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">        .text<br>         .globl  start<br>         .code16<br> start:<br>         jmp     code<br> msg:                                   </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">浣跨敤<span lang="EN-US">jmp</span>鎸囦護(hù)璺寵繃璇ュ彉閲忥紝榪欐槸鎴戜滑涓轟粈涔堝湪<span lang="EN-US">Makefile</span>浣跨敤<span lang="EN-US">-N</span>閾炬帴閫夐」浜?span lang="EN-US"><br>         .string "Hello World!\x0"<br> code:<br>         movw    $0xb800,%ax<br>         movw    %ax,    %es            es</span>孌佃緗垚<span lang="EN-US">B800</span>錛屽鍓嶆墍榪幫紝<span lang="EN-US">segment:offset</span>鍦板潃鏄犲皠鏂瑰紡錛屽畠鎸囧悜<span lang="EN-US">B8000</span>錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">                                       </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">榪欐剰鍛崇潃絎竴涓瓧鑺傚湴鍧鏄?span lang="EN-US">0</span>錛堟槧灝勫埌<span lang="EN-US">B8000</span>錛夛紝灞炴у瓧鑺傛槸<span lang="EN-US">1</span>錛堟槧灝勫埌<span lang="EN-US">B8001</span>錛?span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">                                       B8001</span><span style="font-size: 12pt; font-family: 瀹嬩綋;">鍊艱緗負(fù)<span lang="EN-US">0x07</span>鍙互灝嗚繖涓?span lang="EN-US">byte</span>棰滆壊璁劇疆涓洪粦搴曠櫧瀛椼?span lang="EN-US"><br>         xorw    %ax,    %ax<br>         movw    %ax,    %ds<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US">        movw    $msg,   %si            </span><span style="font-size: 12pt; font-family: 瀹嬩綋;">涓?span lang="EN-US">movsb</span>鎸囦護(hù)璁劇疆姝g‘鐨?span lang="EN-US">si</span>鍜?span lang="EN-US">di<br>         xorw    %di,    %di<br>         cld<br>         movb    $0x07,  %al            </span>瀛楃殑棰滆壊<span lang="EN-US"><br> <br> 1:<br>         cmp     $0,    (%si)<br>         je      <st1:chmetcnv unitname="F" sourcevalue="1" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">1f</st1:chmetcnv>    <br>         movsb<br>         stosb<br>         jmp     1b<br> 1:      jmp     1b<br> <br> .org    0x1fe,  0x90<br> .word   0xaa55<o:p></o:p></span></span></p> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 12pt; font-family: 瀹嬩綋;" lang="EN-US"> <o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> </span></p><img src ="http://www.shnenglu.com/jinglexy/aggbug/23597.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:34 <a href="http://www.shnenglu.com/jinglexy/archive/2007/05/08/23597.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙鐜綃囷級錛堝師鍒涳級 http://www.shnenglu.com/jinglexy/archive/2007/05/08/23596.html澶╄。鏈夌紳澶╄。鏈夌紳Mon, 07 May 2007 23:32:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/05/08/23596.htmlhttp://www.shnenglu.com/jinglexy/comments/23596.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/05/08/23596.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/23596.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/23596.html絎?span lang="EN-US">0璇撅細(xì)鐜闇姹?span lang="EN-US">

澹版槑錛氳漿杞借淇濈暀錛?/span>

璇戣?/span>錛?/span>http://www.shnenglu.com/jinglexy

鍘熶綔鑰咃細(xì)xiaoming.mo at skelix dot org

MSN & Email: jinglexy at yahoo dot com dot cn

GCC
Skelix
浣跨敤c璇█緙栧啓錛屽綋鐒朵篃鐢ㄤ簡姹囩紪璇█錛?span lang="EN-US">at&t椋庢牸錛夛紝鍦?span lang="EN-US">linux涓嬩嬌鐢?span lang="EN-US">gcc緙栬瘧銆?span lang="EN-US">

[root@root ~]$ gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux
Thread model: posix
gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)

鍦ㄦ瘡綃囨暀紼嬩腑閮界粰鍑轟簡婧愮▼搴忓拰杞洏鏄犺薄鏂囦歡錛屼綘鍙互鐩存帴浣跨敤瀹冧滑銆傚鏋滀綘闇瑕佺紪璇戣繖浜涙簮紼嬪簭錛岀紪璇戠幆澧冨繀欏繪紜傛垜浠帹鑽愮殑鐜鏄?span lang="EN-US">linux2.6.x鍐呮牳錛?span lang="EN-US">gcc3.x緙栬瘧鍣ㄣ?span lang="EN-US">

鐢變簬鍦ㄦ簮紼嬪簭涓嬌鐢ㄤ簡__asm__, __attribute__, __extention__錛屼互鍙?span lang="EN-US">gcc鍐呭祵姹囩紪錛岃繕鏈?span lang="EN-US">unsigned long long(鐩村埌C99鎵嶅紑濮嬫敮鎸?span lang="EN-US">)錛涘鏋滀綘浣跨敤浜嗗叾浠栫紪璇戝櫒錛岄渶瑕佷慨鏀瑰搴旂殑婧愮▼搴忋備笖緙栬瘧鍣ㄥ繀欏繪槸32浣嶏紝榪欐牱鍋氱殑鐩殑鏄繚鎸佹簮紼嬪簭綆媧佹竻鏅般?span lang="EN-US">

瀵逛簬windows鐢ㄦ埛鍙互浣跨敤 cygwin錛屽畠鎻愪緵浜?span lang="EN-US">windows涓嬬殑linux鐜銆備笉榪囨垜娌℃湁灝濊瘯浣跨敤瀹冿紝鍥犱負(fù)鎴戠殑鐢?shù)鑴戜笂娌℃湁瀹夎?span lang="EN-US">windows鎿嶄綔緋葷粺銆備篃鍙互鍦ㄤ綘鐨?span lang="EN-US">windows緋葷粺涓婂畨瑁呬竴涓櫄鎷熸満涓婄殑linux錛屽鏋滀綘鐨勭數(shù)鑴戣凍澶熷揩鐨勮瘽銆?span lang="EN-US">


VMWARE

涓轟簡榪愯鏁欑▼涓殑鑼冧緥錛屼竴涓櫄鎷熸満蹇呬笉鍙皯錛?span lang="EN-US">virtual pc2007宸茬粡鍙互鍏嶈垂浣跨敤浜嗭紝鍦?span lang="EN-US">M$鐨勫畼鏂圭綉绔欎笂鍙互鎵懼埌涓嬭澆銆傚綋鐒朵篃鍙互浣跨敤qemu鍜?span lang="EN-US">bochs涔嬬被鐨勮櫄鎷熸満銆傛帹鑽愮殑铏氭嫙鏈烘槸VMWARE銆?span lang="EN-US">

Things Are Good To Know

濡傛灉鑳界湅鎳?/span>Makefile鏈濂戒簡錛岃繖鏄?/span>*nix紼嬪簭鍛樺繀欏繪帉鎻$殑涓欏瑰熀鏈煡璇嗐傚彟澶栵紝濡傛灉浣犵啛鎮(zhèn)夊唴瀛樺湴鍧鏄犲皠錛屼腑鏂紝寮傚父錛?/span>GDT錛?/span>LDT錛?/span>IDT錛屽垎欏墊満鍒訛紝鑼冨洿绔彛灝辨洿濂戒簡銆傚綋鐒朵笉鎳備篃娌″叧緋伙紝Intel鐨勪笁鍗鋒墜鍐屾槸妗堝ご蹇呭錛?/span>http://www.intel.com

IA-32 Intel Architecture Software Developer's Manual Volume1: Basic Architecture
IA-32 Intel Architecture Software Developer's Manual Volume2A: Instruction Set Reference: A-M
IA-32 Intel Architecture Software Developer's Manual Volume2B: Instruction Set Reference: N-Z
IA
-32 Intel Architecture Software Developer's Manual Volume3A: System Programming Guide Part1
IA-32 Intel Architecture Software Developer's Manual Volume3B: System Programming Guide Part2

璇昏呭榪欎簺涓滆タ涓嶅繀绱у紶錛屾垜鍦ㄦ暀紼嬩腑浼?xì)瑙i噴鐩稿叧鐨勭煡璇嗐?span lang="EN-US">c璇█鍜屾眹緙栨槸鏈鍩烘湰鐨勮姹傦紝鑳藉寰堟竻妤氱殑浜嗚В浠涔堟槸鍫嗗拰鏍堛傚叧浜?span lang="EN-US">c璇█鐨勬暟鎹垚鍗冧笂涓囷紝浣嗘槸淇濇姢妯″紡鏂歸潰鐨勪功綾嶆瘮鍝堥浄鎱ф槦榪樺皯錛屾嵁璇存瘡76騫村彲浠ヤ拱鍒頒竴鏈紝濡傛灉浣犺凍澶熷垢榪愮殑璇濓細(xì)錛?a name="Color_Pattern">

椋庢牸綰﹀畾

 

鍘熸枃涓殑鏍煎紡琚搮鑷幓鎺変簡錛岀炕璇戝悗鐨勯鏍煎簲璇ュ彲浠ヤ竴鐪嬪氨鎳傘?/span>

 

 



澶╄。鏈夌紳 2007-05-08 07:32 鍙戣〃璇勮
]]>
鑷繁鍔ㄦ墜鍐欏唴鏍革紙搴忥級錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/05/08/23595.html澶╄。鏈夌紳澶╄。鏈夌紳Mon, 07 May 2007 23:30:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/05/08/23595.htmlhttp://www.shnenglu.com/jinglexy/comments/23595.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/05/08/23595.html#Feedback8http://www.shnenglu.com/jinglexy/comments/commentRss/23595.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/23595.html
鍚庢潵錛屾垜鎵懼埌浜?skelix", 涓涓猳s鍐呮牳錛岃繍琛屽湪i386鏈哄櫒涓婏紝鏀寔澶氫換鍔★紝鍒嗛〉鏈哄埗錛岃櫄鎷熷唴瀛橈紝鏂囦歡緋葷粺絳夈傝繖涓猼utorial鏁欎綘鎬庢牱涓姝ヤ竴姝ュ疄鐜皊kelix錛岃櫧鐒跺畠鐪嬭搗鏉ヨ薄涓涓帺鍏楓傝繖鏍峰仛鐨勫ソ澶勬槸鐪嬭搗鏉ユ洿娓呮櫚涓浜涖傚鏋滀綘鍙戠幇bug鎴栧ソ鐨勫緩璁彲浠ュ憡璇夊師浣滆咃細(xì)xiaoming.mo at skelix dot org銆傝瘧鑰咃細(xì)jinglexy at yahoo dot com dot cn錛坋mail and msn both錛夛紝涓婃搗浣撹偛棣嗐傞璁?鏈堜喚緲昏瘧瀹屾垚錛?007騫達(dá)級錛屽洜涓鴻嚜宸辯殑浜嬫儏姣旇緝澶氾紝鍙兘鍋跺皵璇戣瘧錛岃繘搴﹀ぇ綰?鍛ㄨ瘧1璇懼惂錛屼篃鍙兘蹇簺錛屽鏋滄湁甯繖鐨勫氨鏇存榪庝簡銆傛渶緇堟暣鐞嗙殑鏂囨。浼?xì)鍋氭垚涓涓猚hm鎴杙df鏂囦歡鍙戝竷鍦╤ttp://www.shnenglu.com/jinglex  闃呰鍏ㄦ枃

澶╄。鏈夌紳 2007-05-08 07:30 鍙戣〃璇勮
]]>
浣跨敤grub涓殑鍐呮牳demo錛堝師鍒涳級http://www.shnenglu.com/jinglexy/archive/2007/04/20/22392.html澶╄。鏈夌紳澶╄。鏈夌紳Fri, 20 Apr 2007 09:30:00 GMThttp://www.shnenglu.com/jinglexy/archive/2007/04/20/22392.htmlhttp://www.shnenglu.com/jinglexy/comments/22392.htmlhttp://www.shnenglu.com/jinglexy/archive/2007/04/20/22392.html#Feedback0http://www.shnenglu.com/jinglexy/comments/commentRss/22392.htmlhttp://www.shnenglu.com/jinglexy/services/trackbacks/22392.html
2. 寤虹珛testos.lds閾炬帴鑴氭湰錛?
  闃呰鍏ㄦ枃

澶╄。鏈夌紳 2007-04-20 17:30 鍙戣〃璇勮
]]>
浣跨敤grub鍔犺澆鑷繁鐨刼s鍙?qiáng)bochs絳夋潅涔辯瑪璁幫紙鍘熷垱錛?/title><link>http://www.shnenglu.com/jinglexy/archive/2007/04/20/22391.html</link><dc:creator>澶╄。鏈夌紳</dc:creator><author>澶╄。鏈夌紳</author><pubDate>Fri, 20 Apr 2007 09:29:00 GMT</pubDate><guid>http://www.shnenglu.com/jinglexy/archive/2007/04/20/22391.html</guid><wfw:comment>http://www.shnenglu.com/jinglexy/comments/22391.html</wfw:comment><comments>http://www.shnenglu.com/jinglexy/archive/2007/04/20/22391.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/jinglexy/comments/commentRss/22391.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jinglexy/services/trackbacks/22391.html</trackback:ping><description><![CDATA[     鎽樿: 絎竴鑺傦細(xì)浣跨敤minix紜洏鏄犺薄 <br>bochs涓婚〉錛坔ttp://sourceforge.net/projects/bochs錛変笂鏈変釜minix2.0鏄犺薄錛?<br>緙栬瘧鍣ㄥ拰婧愪唬鐮佹槧璞℃枃浠墮兘宸茬粡鏈変簡錛屽鏋滆mount鍒頒綘鑷繁鐨勬満鍣ㄤ笂緙栬緫婧愮▼搴忥紝 <br>鍙互浣跨敤涓嬮潰鐨刲inux鎸囦護(hù)錛屼負(fù)浠涔堟槸1024鍜?669888錛屽垎鏋愪笅紜洏鍒嗗尯琛ㄥ氨鐭ラ亾浜嗐?<br>錛?024 錛?512 * 2錛?5669888 = 512 * 11074錛?1074鍗?B42錛?<br>/sbin/losetup /dev/loop6 a.img -o 1024 <br>mount -t minix -o loop /dev/loop6 mnt1 <br>ls mnt1  <a href='http://www.shnenglu.com/jinglexy/archive/2007/04/20/22391.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/jinglexy/aggbug/22391.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-04-20 17:29 <a href="http://www.shnenglu.com/jinglexy/archive/2007/04/20/22391.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://www-s8.com" target="_blank">91久久精品久久国产性色也91</a>| <a href="http://xxxsxx.com" target="_blank">亚洲第一色中文字幕</a>| <a href="http://by2565.com" target="_blank">久久综合福利</a>| <a href="http://qiezi2vip.com" target="_blank">欧美黑人在线播放</a>| <a href="http://799858.com" target="_blank">中文无字幕一区二区三区</a>| <a href="http://www-44442.com" target="_blank">日韩视频免费大全中文字幕</a>| <a href="http://765409.com" target="_blank">午夜日韩在线观看</a>| <a href="http://caihongie.com" target="_blank">免费在线欧美黄色</a>| <a href="http://xxmh686.com" target="_blank">夜夜嗨av色一区二区不卡</a>| <a href="http://sao320.com" target="_blank">久久国内精品视频</a>| <a href="http://yjsp8888.com" target="_blank">欧美极品欧美精品欧美视频</a>| <a href="http://www-44442.com" target="_blank">欧美成人久久</a>| <a href="http://gzpurefaith.com" target="_blank">亚洲桃色在线一区</a>| <a href="http://223tt.com" target="_blank">玖玖在线精品</a>| <a href="http://zzmzit.com" target="_blank">国产麻豆午夜三级精品</a>| <a href="http://xiaocao-av.com" target="_blank">最新亚洲电影</a>| <a href="http://www-n77.com" target="_blank">欧美怡红院视频</a>| <a href="http://wy77777.com" target="_blank">亚洲精品乱码久久久久久蜜桃91</a>| <a href="http://dgxinshidai.com" target="_blank">亚洲欧美视频在线观看视频</a>| <a href="http://1069024.com" target="_blank">欧美刺激性大交免费视频</a>| <a href="http://9585865.com" target="_blank">国产小视频国产精品</a>| <a href="http://mauhorng.com" target="_blank">99国产精品99久久久久久粉嫩 </a>| <a href="http://3597777.com" target="_blank">亚洲午夜国产一区99re久久</a>| <a href="http://k91cm.com" target="_blank">国产精品国产三级国产a</a>| <a href="http://023nszz.com" target="_blank">蜜臀av在线播放一区二区三区</a>| <a href="http://gx2020.com" target="_blank">欧美日韩综合久久</a>| <a href="http://ooonefteprompellets.com" target="_blank">狠狠做深爱婷婷久久综合一区</a>| <a href="http://226600b.com" target="_blank">在线亚洲欧美</a>| <a href="http://avicpharm.com" target="_blank">欧美成人综合一区</a>| <a href="http://993934.com" target="_blank">欧美一区二区成人6969</a>| <a href="http://www308eee.com" target="_blank">欧美日韩亚洲综合</a>| <a href="http://coerverbeijing.com" target="_blank">亚洲色无码播放</a>| <a href="http://9e67.com" target="_blank">久久久久久网站</a>| <a href="http://dh03.com" target="_blank">国产精品亚洲а∨天堂免在线</a>| <a href="http://o10669.com" target="_blank">亚洲理伦在线</a>| <a href="http://1616mz.com" target="_blank">牛人盗摄一区二区三区视频</a>| <a href="http://327099.com" target="_blank">欧美性色综合</a>| <a href="http://373336.com" target="_blank">欧美电影免费观看</a>| <a href="http://1390555.com" target="_blank">黄色成人av</a>| <a href="http://jjy891.com" target="_blank">欧美淫片网站</a>| <a href="http://www-06654.com" target="_blank">亚洲婷婷综合久久一本伊一区</a>| <a href="http://34ak.com" target="_blank">欧美第十八页</a>| <a href="http://1616mz.com" target="_blank">亚洲第一主播视频</a>| <a href="http://354eee.com" target="_blank">久久综合久久久久88</a>| <a href="http://www-666638.com" target="_blank">一本色道久久综合亚洲精品小说 </a>| <a href="http://dd8uau0ncu.com" target="_blank">久久五月天婷婷</a>| <a href="http://123lifenet.com" target="_blank">亚洲私人影院在线观看</a>| <a href="http://3990033.com" target="_blank">欧美精品日本</a>| <a href="http://ruichengxiang.com" target="_blank">免费永久网站黄欧美</a>| <a href="http://spardec.com" target="_blank">欧美+亚洲+精品+三区</a>| <a href="http://www33779.com" target="_blank">国模大胆一区二区三区</a>| <a href="http://www24668.com" target="_blank">欧美与欧洲交xxxx免费观看</a>| <a href="http://phitris.com" target="_blank">亚洲视频综合</a>| <a href="http://hjersqc.com" target="_blank">国产精品成人一区二区三区吃奶</a>| <a href="http://10669p.com" target="_blank">一本大道av伊人久久综合</a>| <a href="http://ycgg008.com" target="_blank">亚洲第一福利在线观看</a>| <a href="http://951738.com" target="_blank">久久综合免费视频影院</a>| <a href="http://dlwansheng.com" target="_blank">精品成人免费</a>| <a href="http://www559955.com" target="_blank">久久色中文字幕</a>| <a href="http://www-401313.com" target="_blank">久久av红桃一区二区小说</a>| <a href="http://hnspygxjscyfwzx.com" target="_blank">国产精品中文字幕欧美</a>| <a href="http://www497171a.com" target="_blank">午夜视频久久久</a>| <a href="http://xianqyd.com" target="_blank">亚洲一二区在线</a>| <a href="http://337795.com" target="_blank">国产精品伦子伦免费视频</a>| <a href="http://caihongie.com" target="_blank">国产中文一区</a>| <a href="http://www48929.com" target="_blank">久久亚洲综合色</a>| <a href="http://53xxxx.com" target="_blank">欧美成人蜜桃</a>| <a href="http://www77vcd.com" target="_blank">国产精品欧美久久久久无广告</a>| <a href="http://ss2ssc.com" target="_blank">亚洲午夜一级</a>| <a href="http://caoav8.com" target="_blank">亚洲无线视频</a>| <a href="http://114499com.com" target="_blank">国产精品一区二区三区观看</a>| <a href="http://www979vv.com" target="_blank">欧美日韩国内自拍</a>| <a href="http://oo853kj.com" target="_blank">亚洲电影中文字幕</a>| <a href="http://www38ccc.com" target="_blank">欧美大片18</a>| <a href="http://sese912.com" target="_blank">欧美国产日韩一二三区</a>| <a href="http://8332777.com" target="_blank">99精品视频一区二区三区</a>| <a href="http://s3yx.com" target="_blank">亚洲精品之草原avav久久</a>| <a href="http://shght.com" target="_blank">欧美三区免费完整视频在线观看</a>| <a href="http://yjdm296.com" target="_blank">亚洲婷婷综合久久一本伊一区</a>| <a href="http://www-18873.com" target="_blank">99视频+国产日韩欧美</a>| <a href="http://sygxjt.com" target="_blank">国产精品久久久久高潮</a>| <a href="http://www205sihu.com" target="_blank">小处雏高清一区二区三区</a>| <a href="http://yimeimc.com" target="_blank">午夜精品久久久久久久白皮肤 </a>| <a href="http://www123hao.com" target="_blank">国产综合色产</a>| <a href="http://xxxxxdywvip18.com" target="_blank">久久综合中文</a>| <a href="http://378682.com" target="_blank">欧美va天堂va视频va在线</a>| <a href="http://78757a.com" target="_blank">99国产精品久久</a>| <a href="http://9511331.com" target="_blank">久久久久网站</a>| <a href="http://05511253.com" target="_blank">久久亚洲综合网</a>| <a href="http://www-yh6.com" target="_blank">亚洲精品一线二线三线无人区</a>| <a href="http://44368com.com" target="_blank">亚洲精品视频在线看</a>| <a href="http://2jjzz.com" target="_blank">国产精品美女一区二区在线观看</a>| <a href="http://zhiuh.com" target="_blank">欧美一区二区三区四区视频</a>| <a href="http://05511253.com" target="_blank">久久国产日韩欧美</a>| <a href="http://687673.com" target="_blank">亚洲精品国产欧美</a>| <a href="http://360cabin.com" target="_blank">国产一区二区三区无遮挡</a>| <a href="http://www-888593.com" target="_blank">久久亚洲色图</a>| <a href="http://335848.com" target="_blank">欧美精品情趣视频</a>| <a href="http://87ssyy.com" target="_blank">欧美一级欧美一级在线播放</a>| <a href="http://imaben.com" target="_blank">久久久久国产精品厨房</a>| <a href="http://www993997.com" target="_blank">亚洲精品一区二区三</a>| <a href="http://pp88qq.com" target="_blank">亚洲一区在线观看免费观看电影高清</a>| <a href="http://fuwu56.com" target="_blank">欧美性猛片xxxx免费看久爱</a>| <a href="http://avtaobao7788.com" target="_blank">性欧美xxxx大乳国产app</a>| <a href="http://91mase.com" target="_blank">久久久久久久久蜜桃</a>| <a href="http://91mase.com" target="_blank">日韩午夜视频在线观看</a>| <a href="http://carboarm.com" target="_blank">亚洲一区观看</a>| <a href="http://78757a.com" target="_blank">亚洲国内高清视频</a>| <a href="http://junhuatesu.com" target="_blank">在线午夜精品</a>| <a href="http://994745.com" target="_blank">在线观看福利一区</a>| <a href="http://zyjzz.com" target="_blank">一本久久青青</a>| <a href="http://baoyu1313.com" target="_blank">一区二区三区在线免费观看</a>| <a href="http://zyjdxx.com" target="_blank">亚洲人成人99网站</a>| <a href="http://45z6.com" target="_blank">久久久亚洲国产天美传媒修理工</a>| <a href="http://www-88899.com" target="_blank">亚洲精品日产精品乱码不卡</a>| <a href="http://www-787788.com" target="_blank">亚洲天堂视频在线观看</a>| <a href="http://91mdtv.com" target="_blank">在线成人激情视频</a>| <a href="http://www90aaa.com" target="_blank">在线综合亚洲</a>| <a href="http://apap77.com" target="_blank">亚洲春色另类小说</a>| <a href="http://free18teen.com" target="_blank">亚洲图片激情小说</a>| <a href="http://211186.com" target="_blank">久久亚洲欧美</a>| <a href="http://julong-ads.com" target="_blank">永久域名在线精品</a>| <a href="http://uu774.com" target="_blank">国产精品99久久久久久有的能看</a>| <a href="http://8847m.com" target="_blank">伊人久久大香线蕉av超碰演员</a>| <a href="http://wwwzmcc1.com" target="_blank">亚洲精品中文字幕在线观看</a>| <a href="http://17ang.com" target="_blank">国产一区二区三区日韩</a>| <a href="http://t3gg.com" target="_blank">日韩图片一区</a>| <a href="http://wxsanyuan.com" target="_blank">亚洲高清成人</a>| <a href="http://4bbbbb.com" target="_blank">午夜精品久久久久久久久久久久</a>| <a href="http://www-3844444.com" target="_blank">亚洲精品免费在线播放</a>| <a href="http://56718ca.com" target="_blank">欧美怡红院视频</a>| <a href="http://ctmhotel.com" target="_blank">亚洲小说欧美另类婷婷</a>| <a href="http://www94816.com" target="_blank">久久夜精品va视频免费观看</a>| <a href="http://beeperagain.com" target="_blank">午夜精品久久久久久久久久久</a>| <a href="http://yc7878.com" target="_blank">男人的天堂成人在线</a>| <a href="http://86808a.com" target="_blank">久久国产欧美日韩精品</a>| <a href="http://990288.com" target="_blank">欧美日韩精品高清</a>| <a href="http://www9ckk1.com" target="_blank">欧美成在线视频</a>| <a href="http://qq666qq.com" target="_blank">国产日韩一区</a>| <a href="http://hnautos.com" target="_blank">欧美在线视频免费播放</a>| <a href="http://yyds16.com" target="_blank">亚洲午夜在线视频</a>| <a href="http://sese750.com" target="_blank">久久精品在线播放</a>| <a href="http://aqxiangtai.com" target="_blank">欧美揉bbbbb揉bbbbb</a>| <a href="http://www-76577c.com" target="_blank">欧美成人久久</a>| <a href="http://ggg4444.com" target="_blank">好男人免费精品视频</a>| <a href="http://www1122fu.com" target="_blank">一区二区三区视频在线播放</a>| <a href="http://choaoxing.com" target="_blank">最新日韩在线视频</a>| <a href="http://scqike.com" target="_blank">久久视频国产精品免费视频在线</a>| <a href="http://tao62bao.com" target="_blank">久久国产精品电影</a>| <a href="http://wwwmm131.com" target="_blank">羞羞视频在线观看欧美</a>| <a href="http://gzw33.com" target="_blank">欧美日韩三级一区二区</a>| <a href="http://wxtarena.com" target="_blank">欧美激情在线有限公司</a>| <a href="http://cqjk120.com" target="_blank">精品成人一区</a>| <a href="http://787282.com" target="_blank">久久www成人_看片免费不卡</a>| <a href="http://3990033.com" target="_blank">午夜精品视频网站</a>| <a href="http://avtb2068.com" target="_blank">国产精品成人午夜</a>| <a href="http://www672hh.com" target="_blank">亚洲人午夜精品</a>| <a href="http://www-699603.com" target="_blank">亚洲国产三级在线</a>| <a href="http://muwendada.com" target="_blank">久久久久成人精品免费播放动漫</a>| <a href="http://78gde.com" target="_blank">欧美一级视频精品观看</a>| <a href="http://aass22.com" target="_blank">国产精品videosex极品</a>| <a href="http://gykfqzgpt.com" target="_blank">亚洲精品一区二区三区福利</a>| <a href="http://youminwang.com" target="_blank">亚洲精品视频在线观看免费</a>| <a href="http://nagebbs.com" target="_blank">久久综合狠狠综合久久激情</a>| <a href="http://lfxhfh.com" target="_blank">久久久青草婷婷精品综合日韩</a>| <a href="http://www-78733.com" target="_blank">国产精品中文字幕欧美</a>| <a href="http://www-787788.com" target="_blank">亚洲一区三区在线观看</a>| <a href="http://74w4.com" target="_blank">亚洲免费综合</a>| <a href="http://wwwby113.com" target="_blank">久久国产主播</a>| <a href="http://tareandshare.com" target="_blank">久久嫩草精品久久久久</a>| <a href="http://854277.com" target="_blank">国户精品久久久久久久久久久不卡</a>| <a href="http://342889.com" target="_blank">亚洲欧美日韩成人高清在线一区</a>| <a href="http://9y1111.com" target="_blank">亚洲欧美日韩一区二区三区在线</a>| <a href="http://www-222kkk.com" target="_blank">欧美日韩综合在线免费观看</a>| <a href="http://susan5.com" target="_blank">日韩午夜电影</a>| <a href="http://327099.com" target="_blank">亚洲专区一区二区三区</a>| <a href="http://842332.com" target="_blank">国产精品久久久久久av福利软件 </a>| <a href="http://yd3399.com" target="_blank">欧美ed2k</a>| <a href="http://eeii33.com" target="_blank">亚洲高清二区</a>| <a href="http://zj-jufeng.com" target="_blank">美女亚洲精品</a>| <a href="http://simextec.com" target="_blank">久久精品日韩欧美</a>| <a href="http://irongxun.com" target="_blank">亚洲精品影院</a>| <a href="http://www-67499.com" target="_blank">欧美日韩成人精品</a>| <a href="http://by4672.com" target="_blank">一本色道久久综合</a>| <a href="http://xprinter3d.com" target="_blank">亚洲欧美日韩一区二区在线 </a>| <a href="http://www-772773.com" target="_blank">亚洲天堂av在线免费观看</a>| <a href="http://www-777324.com" target="_blank">亚洲欧美另类国产</a>| <a href="http://www-888690.com" target="_blank">国产精品永久免费观看</a>| <a href="http://moonshile.com" target="_blank">亚洲电影在线看</a>| <a href="http://345fz.com" target="_blank">99精品欧美一区二区三区综合在线 </a>| <a href="http://511caifu.com" target="_blank">9人人澡人人爽人人精品</a>| <a href="http://www66617.com" target="_blank">欧美日产一区二区三区在线观看</a>| <a href="http://mes-dvd.com" target="_blank">亚洲另类视频</a>| <a href="http://k82net.com" target="_blank">欧美一级视频精品观看</a>| <a href="http://www-tk3333.com" target="_blank">国产一区清纯</a>| <a href="http://0061366.com" target="_blank">久久久久亚洲综合</a>| <a href="http://bjayj.com" target="_blank">国产一区二区三区观看</a>| <a href="http://ym5571.com" target="_blank">久久午夜色播影院免费高清</a>| <a href="http://69xxx6.com" target="_blank">亚洲第一久久影院</a>| <a href="http://mauhorng.com" target="_blank">在线一区欧美</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>