锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美资源在线观看,欧美另类专区,欧美乱大交xxxxxhttp://m.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://m.shnenglu.com/jinglexy/archive/2009/01/06/71371.html澶╄。鏈夌紳澶╄。鏈夌紳Tue, 06 Jan 2009 11:46:00 GMThttp://m.shnenglu.com/jinglexy/archive/2009/01/06/71371.htmlhttp://m.shnenglu.com/jinglexy/comments/71371.htmlhttp://m.shnenglu.com/jinglexy/archive/2009/01/06/71371.html#Feedback1http://m.shnenglu.com/jinglexy/comments/commentRss/71371.htmlhttp://m.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鍘繪帀錛岄噷闈㈡湁涓浜涙枃浠跺悕涓鏍鳳紙澶у皬鍐欎笉涓鏍鳳級(jí)錛宨pv6涔熷幓鎺夛紝緙栬瘧鐨別lf鏂囦歡姝e父銆?br>
涓婃搗婕曟渤娉?br>2009.01.06




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

澶╄。鏈夌紳 2007-11-21 20:23 鍙戣〃璇勮
]]>
jinix鍐呮牳铏氭嫙鎺у埗鍙板疄鐜幫紙鍘熷垱錛?/title><link>http://m.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://m.shnenglu.com/jinglexy/archive/2007/07/10/27828.html</guid><wfw:comment>http://m.shnenglu.com/jinglexy/comments/27828.html</wfw:comment><comments>http://m.shnenglu.com/jinglexy/archive/2007/07/10/27828.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/jinglexy/comments/commentRss/27828.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/jinglexy/services/trackbacks/27828.html</trackback:ping><description><![CDATA[     鎽樿: jinix鏄皬寮熸鍦ㄥ疄鐜扮殑涓涓猚++ kernel錛屽洜涓鴻皟璇曠紭鏁咃紝鎵浠ユ棭鏃╃殑鎶婃帶鍒跺彴閮ㄥ垎璋冨嚭鏉ヤ簡錛屼互渚夸簬鍚庢潵鐨勮皟璇曘備唬鐮佷嬌鐢╟++鍐欑殑錛屽鏋滀嬌鐢╟鍐欏唴鏍鎬篃寰堝鏄撶Щ妞嶈繃鍘匯傝漿杞借淇濈暀鍘?鍒涳細(xì)http://m.shnenglu.com/jinglexy錛宮ail & msn: jinglexy at yahoo dot com dot cn銆傝繖閮ㄥ垎浠g爜鏄湪鍐呭瓨綆$悊涔嬪墠瀹炵幇鐨勶紝鎵浠ユ病鏈夊仛鍒頒換...  <a href='http://m.shnenglu.com/jinglexy/archive/2007/07/10/27828.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/jinglexy/aggbug/27828.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-07-10 20:15 <a href="http://m.shnenglu.com/jinglexy/archive/2007/07/10/27828.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>OS璋冭瘯鐩稿叧鐨勫伐鍏鳳紙闄勫浘錛屽師鍒涳級(jí)http://m.shnenglu.com/jinglexy/archive/2007/06/28/27133.html澶╄。鏈夌紳澶╄。鏈夌紳Thu, 28 Jun 2007 03:02:00 GMThttp://m.shnenglu.com/jinglexy/archive/2007/06/28/27133.htmlhttp://m.shnenglu.com/jinglexy/comments/27133.htmlhttp://m.shnenglu.com/jinglexy/archive/2007/06/28/27133.html#Feedback6http://m.shnenglu.com/jinglexy/comments/commentRss/27133.htmlhttp://m.shnenglu.com/jinglexy/services/trackbacks/27133.html
濡傛灉緋葷粺澶勪簬浠跨湡鐨勫垵鏈熻妭鐐癸紝渚嬪鎿嶄綔緋葷粺鐨勫垵濮嬪寲錛岃皟璇曡繕鏄緢鏈夊繀瑕佺殑銆傝繖閲屾槸鎴戝湪linux鐜璋冭瘯鎿嶄綔緋葷粺鐨勭浉鍏沖伐鍏鳳紝os寮鍙戣呭彲鍙傝冿紝嬈㈣繋鎸囨錛氾級(jí)
錛?錛夊伐鍏峰畨瑁咃細(xì)
linux瀹夎錛歜ochs-2.3錛宨nsight-6.6錛実cc-3.4錛堜嬌鐢╣++鍜宎s錛坆inutils鍖呬腑錛夛級(jí)
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錛屾榪庡弬涓庯級(jí)鎷瘋礉鍒發(fā)inux涓繪満錛岄厤緗畇amba鍏變韓錛岃繖鏍峰彲浠ュ湪windows涓婂紑鍙戯紙鎺ㄨ崘浣跨敤slickedit 2007錛屽摢浣嶆湁linux涓婄殑2007鐗堟湰鍙惁鍙戜竴涓粰鎴戯級(jí)銆?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://m.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://m.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://m.shnenglu.com/jinglexy/archive/2007/06/25/26940.html</guid><wfw:comment>http://m.shnenglu.com/jinglexy/comments/26940.html</wfw:comment><comments>http://m.shnenglu.com/jinglexy/archive/2007/06/25/26940.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/jinglexy/comments/commentRss/26940.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/jinglexy/services/trackbacks/26940.html</trackback:ping><description><![CDATA[鍐呮牳褰撶劧鍙敤鐢╟++鏉ヤ簺錛屼絾鏄浉瀵筩鏉ヨ鏈夎澶氳娉ㄦ剰鐨勫湴鏂癸紝鎴戜滑涓嶅緱涓嶅叧鎺変竴浜涚壒鎬с傝繖閲屽彧鎻愪竴浜沢cc鐩稿叧鐨勫唴瀹癸紝Microsoft VC鎴戞病鏈夊皾璇曘傝漿杞借娉ㄦ槑鍘熷垱錛氬ぉ琛f湁緙濓紙http://m.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://m.shnenglu.com/jinglexy/aggbug/26940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-06-25 21:19 <a href="http://m.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://m.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://m.shnenglu.com/jinglexy/archive/2007/06/11/26021.html</guid><wfw:comment>http://m.shnenglu.com/jinglexy/comments/26021.html</wfw:comment><comments>http://m.shnenglu.com/jinglexy/archive/2007/06/11/26021.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://m.shnenglu.com/jinglexy/comments/commentRss/26021.html</wfw:commentRss><trackback:ping>http://m.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> 鑷繁鍔ㄦ墜鍐欏唴鏍革紙搴忥級(jí)......................... 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://m.shnenglu.com/jinglexy/aggbug/26021.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-06-11 10:00 <a href="http://m.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://m.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://m.shnenglu.com/jinglexy/archive/2007/06/08/25801.html</guid><wfw:comment>http://m.shnenglu.com/jinglexy/comments/25801.html</wfw:comment><comments>http://m.shnenglu.com/jinglexy/archive/2007/06/08/25801.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/jinglexy/comments/commentRss/25801.html</wfw:commentRss><trackback:ping>http://m.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://m.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: 瀹嬩綋;">濡傛灉瀹為檯鐗╃悊欏典笉瀛樺湪錛堝彲鑳戒氦鎹㈠埌紜洏涓幓浜嗭級(jí)錛屽垯寮曞彂寮傚父錛屽彲浠ュ湪榪欎釜寮傚父閲岄潰鍋氭兂瑕佸仛鐨勪簨鎯咃紙鍔犺澆紜洏涓殑浜ゆ崲欏碉紝鎴栬?span lang="EN-US">kill</span>榪欎釜紼嬪簭錛?span lang="EN-US">Segment Fault</span>錛岀瓑絳夛級(jí)<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>浣嶏級(jí)錛屽嵆<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://m.shnenglu.com/jinglexy/aggbug/25801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-06-08 08:44 <a href="http://m.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://m.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://m.shnenglu.com/jinglexy/archive/2007/05/19/24377.html</guid><wfw:comment>http://m.shnenglu.com/jinglexy/comments/24377.html</wfw:comment><comments>http://m.shnenglu.com/jinglexy/archive/2007/05/19/24377.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://m.shnenglu.com/jinglexy/comments/commentRss/24377.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/jinglexy/services/trackbacks/24377.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細(xì)鏂囦歡緋葷粺    涓嬭澆婧愪唬鐮?澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細(xì)http://m.shnenglu.com/jinglexy 鍘熶綔鑰咃細(xì)xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn     鐩爣   榪欎竴璇句腑錛?..  <a href='http://m.shnenglu.com/jinglexy/archive/2007/05/19/24377.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/jinglexy/aggbug/24377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-19 11:35 <a href="http://m.shnenglu.com/jinglexy/archive/2007/05/19/24377.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙絎?璇撅細(xì)澶氫換鍔★級(jí)錛堝師鍒涳級(jí)http://m.shnenglu.com/jinglexy/archive/2007/05/15/24158.html澶╄。鏈夌紳澶╄。鏈夌紳Tue, 15 May 2007 08:55:00 GMThttp://m.shnenglu.com/jinglexy/archive/2007/05/15/24158.htmlhttp://m.shnenglu.com/jinglexy/comments/24158.htmlhttp://m.shnenglu.com/jinglexy/archive/2007/05/15/24158.html#Feedback3http://m.shnenglu.com/jinglexy/comments/commentRss/24158.htmlhttp://m.shnenglu.com/jinglexy/services/trackbacks/24158.html闃呰鍏ㄦ枃

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

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

 

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

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://m.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://m.shnenglu.com/jinglexy/archive/2007/05/08/23600.html</guid><wfw:comment>http://m.shnenglu.com/jinglexy/comments/23600.html</wfw:comment><comments>http://m.shnenglu.com/jinglexy/archive/2007/05/08/23600.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/jinglexy/comments/commentRss/23600.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/jinglexy/services/trackbacks/23600.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細(xì)涓柇鍜屽紓甯? 澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細(xì)http://m.shnenglu.com/jinglexy 鍘熶綔鑰咃細(xì)xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn 鐩爣        &nb...  <a href='http://m.shnenglu.com/jinglexy/archive/2007/05/08/23600.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/jinglexy/aggbug/23600.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:37 <a href="http://m.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://m.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://m.shnenglu.com/jinglexy/archive/2007/05/08/23599.html</guid><wfw:comment>http://m.shnenglu.com/jinglexy/comments/23599.html</wfw:comment><comments>http://m.shnenglu.com/jinglexy/archive/2007/05/08/23599.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/jinglexy/comments/commentRss/23599.html</wfw:commentRss><trackback:ping>http://m.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://m.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>榪欐牱涓涓嚱鏁拌璋冪敤鏃訛紝瀹冩眹緙栧悗鐨勬寚浠ゅ簲璇ュ涓嬶紙鎵鏈変粠宸﹀悜鍙沖叆鏍堢殑緙栬瘧鍣ㄥ簲璇ヤ粠鍦扮悆涓婂交搴曟秷澶憋級(jí)錛?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>涓瓧鑺傦紝涓涓瓧鑺傛槸瀛楃鍊鹼紝鍙︿竴涓瓧鑺傛槸瀛楃灞炴э紙鍗抽鑹詫級(jí)銆傚睘鎬у瓧鑺傚畾涔夊涓嬶細(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://m.shnenglu.com/jinglexy/aggbug/23599.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:36 <a href="http://m.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://m.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://m.shnenglu.com/jinglexy/archive/2007/05/08/23598.html</guid><wfw:comment>http://m.shnenglu.com/jinglexy/comments/23598.html</wfw:comment><comments>http://m.shnenglu.com/jinglexy/archive/2007/05/08/23598.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.shnenglu.com/jinglexy/comments/commentRss/23598.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/jinglexy/services/trackbacks/23598.html</trackback:ping><description><![CDATA[     鎽樿: 絎?璇撅細(xì)淇濇姢妯″紡 澹版槑錛氳漿杞借淇濈暀錛?璇戣咃細(xì)http://m.shnenglu.com/jinglexy 鍘熶綔鑰咃細(xì)xiaoming.mo at skelix dot org MSN & Email: jinglexy at yahoo dot com dot cn 鐩爣        涓嬭澆婧愮▼搴?..  <a href='http://m.shnenglu.com/jinglexy/archive/2007/05/08/23598.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/jinglexy/aggbug/23598.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:35 <a href="http://m.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://m.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://m.shnenglu.com/jinglexy/archive/2007/05/08/23597.html</guid><wfw:comment>http://m.shnenglu.com/jinglexy/comments/23597.html</wfw:comment><comments>http://m.shnenglu.com/jinglexy/archive/2007/05/08/23597.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://m.shnenglu.com/jinglexy/comments/commentRss/23597.html</wfw:commentRss><trackback:ping>http://m.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://m.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ì)鐢ㄥ埌杩欎釜鍙傝冨鹼級(jí)錛屾墍鏈夌殑寮曠敤鍦板潃閮芥槸鍦?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://m.shnenglu.com/jinglexy/aggbug/23597.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-05-08 07:34 <a href="http://m.shnenglu.com/jinglexy/archive/2007/05/08/23597.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷繁鍔ㄦ墜鍐欏唴鏍革紙鐜綃囷級(jí)錛堝師鍒涳級(jí) http://m.shnenglu.com/jinglexy/archive/2007/05/08/23596.html澶╄。鏈夌紳澶╄。鏈夌紳Mon, 07 May 2007 23:32:00 GMThttp://m.shnenglu.com/jinglexy/archive/2007/05/08/23596.htmlhttp://m.shnenglu.com/jinglexy/comments/23596.htmlhttp://m.shnenglu.com/jinglexy/archive/2007/05/08/23596.html#Feedback0http://m.shnenglu.com/jinglexy/comments/commentRss/23596.htmlhttp://m.shnenglu.com/jinglexy/services/trackbacks/23596.html絎?span lang="EN-US">0璇撅細(xì)鐜闇姹?span lang="EN-US">

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

璇戣?/span>錛?/span>http://m.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 鍙戣〃璇勮
]]>
鑷繁鍔ㄦ墜鍐欏唴鏍革紙搴忥級(jí)錛堝師鍒涳級(jí)http://m.shnenglu.com/jinglexy/archive/2007/05/08/23595.html澶╄。鏈夌紳澶╄。鏈夌紳Mon, 07 May 2007 23:30:00 GMThttp://m.shnenglu.com/jinglexy/archive/2007/05/08/23595.htmlhttp://m.shnenglu.com/jinglexy/comments/23595.htmlhttp://m.shnenglu.com/jinglexy/archive/2007/05/08/23595.html#Feedback8http://m.shnenglu.com/jinglexy/comments/commentRss/23595.htmlhttp://m.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á)級(jí)錛屽洜涓鴻嚜宸辯殑浜嬫儏姣旇緝澶氾紝鍙兘鍋跺皵璇戣瘧錛岃繘搴﹀ぇ綰?鍛ㄨ瘧1璇懼惂錛屼篃鍙兘蹇簺錛屽鏋滄湁甯繖鐨勫氨鏇存榪庝簡銆傛渶緇堟暣鐞嗙殑鏂囨。浼?xì)鍋氭垚涓涓猚hm鎴杙df鏂囦歡鍙戝竷鍦╤ttp://m.shnenglu.com/jinglex  闃呰鍏ㄦ枃

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

澶╄。鏈夌紳 2007-04-20 17:30 鍙戣〃璇勮
]]>
浣跨敤grub鍔犺澆鑷繁鐨刼s鍙?qiáng)bochs絳夋潅涔辯瑪璁幫紙鍘熷垱錛?/title><link>http://m.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://m.shnenglu.com/jinglexy/archive/2007/04/20/22391.html</guid><wfw:comment>http://m.shnenglu.com/jinglexy/comments/22391.html</wfw:comment><comments>http://m.shnenglu.com/jinglexy/archive/2007/04/20/22391.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/jinglexy/comments/commentRss/22391.html</wfw:commentRss><trackback:ping>http://m.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://m.shnenglu.com/jinglexy/archive/2007/04/20/22391.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/jinglexy/aggbug/22391.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/jinglexy/" target="_blank">澶╄。鏈夌紳</a> 2007-04-20 17:29 <a href="http://m.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://m.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://tristooges.com" target="_blank">日韩一区二区福利</a>| <a href="http://shanghaijiagu.com" target="_blank">午夜国产精品视频免费体验区</a>| <a href="http://y77778.com" target="_blank">国产欧美1区2区3区</a>| <a href="http://555134.com" target="_blank">久久在线免费观看视频</a>| <a href="http://baostat.com" target="_blank">国产精品都在这里</a>| <a href="http://g2000vip.com" target="_blank">欧美在线免费观看</a>| <a href="http://8x588.com" target="_blank">亚洲系列中文字幕</a>| <a href="http://499305.com" target="_blank">欧美1区免费</a>| <a href="http://www-77537.com" target="_blank">日韩一级网站</a>| <a href="http://www333444123.com" target="_blank">亚洲砖区区免费</a>| <a href="http://1194123.com" target="_blank">国产乱肥老妇国产一区二</a>| <a href="http://5599912.com" target="_blank">亚洲免费人成在线视频观看</a>| <a href="http://filmcameralibrary.com" target="_blank">亚洲男人的天堂在线观看 </a>| <a href="http://www-222kkk.com" target="_blank">一区二区激情</a>| <a href="http://16kkkk.com" target="_blank">欧美精品黄色</a>| <a href="http://785448.com" target="_blank">欧美精品一区二区精品网 </a>| <a href="http://wnboke.com" target="_blank">亚洲永久免费av</a>| <a href="http://477980.com" target="_blank">国产专区精品视频</a>| <a href="http://www11111111.com" target="_blank">1000精品久久久久久久久</a>| <a href="http://tongrenyaoye.com" target="_blank">免费国产自线拍一欧美视频</a>| <a href="http://by274.com" target="_blank">久久精品人人做人人爽</a>| <a href="http://www-893333.com" target="_blank">西西人体一区二区</a>| <a href="http://aqdw2021.com" target="_blank">欧美96在线丨欧</a>| <a href="http://www-4890.com" target="_blank">久久久久久九九九九</a>| <a href="http://www72227.com" target="_blank">亚洲一级高清</a>| <a href="http://haohetour.com" target="_blank">中文在线资源观看网站视频免费不卡 </a>| <a href="http://www-55655.com" target="_blank">欧美亚洲在线</a>| <a href="http://zzchanke.com" target="_blank">亚洲国产高清在线</a>| <a href="http://667939.com" target="_blank">国产视频精品网</a>| <a href="http://jorhom.com" target="_blank">欧美日韩免费高清</a>| <a href="http://689558.com" target="_blank">欧美阿v一级看视频</a>| <a href="http://zhouqie.com" target="_blank">欧美一区二区免费视频</a>| <a href="http://ncyy4.com" target="_blank">欧美一级夜夜爽</a>| <a href="http://susan5.com" target="_blank">欧美在线观看www</a>| <a href="http://605054.com" target="_blank">欧美大片免费看</a>| <a href="http://www-s8.com" target="_blank">欧美1区视频</a>| <a href="http://18cgh.com" target="_blank">欧美日韩一区二区三区免费</a>| <a href="http://tianxiantxtv.com" target="_blank">国产精品成人v</a>| <a href="http://765409.com" target="_blank">欧美日韩日日夜夜</a>| <a href="http://www1122fu.com" target="_blank">欧美日韩成人综合</a>| <a href="http://by2565.com" target="_blank">欧美日韩在线精品</a>| <a href="http://08xxxc.com" target="_blank">亚洲精品在线电影</a>| <a href="http://9511331.com" target="_blank">亚洲线精品一区二区三区八戒</a>| <a href="http://954k.com" target="_blank">亚洲欧美国产日韩中文字幕</a>| <a href="http://kk8586.com" target="_blank">久久精品综合网</a>| <a href="http://444398.com" target="_blank">最新高清无码专区</a>| <a href="http://tp112.com" target="_blank">久久人人爽人人爽</a>| <a href="http://psykoptic.com" target="_blank">免费久久精品视频</a>| <a href="http://787299.com" target="_blank">亚洲调教视频在线观看</a>| <a href="http://yngtxny.com" target="_blank">噜噜爱69成人精品</a>| <a href="http://yichenep.com" target="_blank">欧美激情视频一区二区三区在线播放</a>| <a href="http://yjjs20.com" target="_blank">欧美日本在线视频</a>| <a href="http://pktether.com" target="_blank">精品成人a区在线观看</a>| <a href="http://868482.com" target="_blank">国产精品99久久99久久久二8 </a>| <a href="http://p35cc.com" target="_blank">亚洲一区二区三区午夜</a>| <a href="http://894322.com" target="_blank">99国产精品视频免费观看</a>| <a href="http://czsanlin.com" target="_blank">国产精品羞羞答答</a>| <a href="http://y87b.com" target="_blank">国产综合色一区二区三区 </a>| <a href="http://wwwmiya728.com" target="_blank">国产精品久久二区二区</a>| <a href="http://cp3824.com" target="_blank">欧美日韩一区二区三区视频 </a>| <a href="http://3374com.com" target="_blank">国产精品久久</a>| <a href="http://www47343.com" target="_blank">激情视频一区二区</a>| <a href="http://345kt.com" target="_blank">欧美一区亚洲</a>| <a href="http://uuuu79.com" target="_blank">亚洲欧美在线x视频</a>| <a href="http://9955377.com" target="_blank">性色av一区二区怡红</a>| <a href="http://3838418.com" target="_blank">在线观看91精品国产入口</a>| <a href="http://605012.com" target="_blank">亚洲视屏在线播放</a>| <a href="http://www36633.com" target="_blank">中国日韩欧美久久久久久久久</a>| <a href="http://4439x9.com" target="_blank">欧美日韩一区二区免费视频</a>| <a href="http://xxav2121.com" target="_blank">午夜精品短视频</a>| <a href="http://chunhuigk.com" target="_blank">日韩图片一区</a>| <a href="http://p35cc.com" target="_blank">亚洲国产精彩中文乱码av在线播放</a>| <a href="http://devwang.com" target="_blank">欧美三级日本三级少妇99</a>| <a href="http://ym5571.com" target="_blank">国产日韩欧美精品在线</a>| <a href="http://1313js.com" target="_blank">亚洲一区二区三区精品在线观看</a>| <a href="http://zz9876.com" target="_blank">免费影视亚洲</a>| <a href="http://4379d.com" target="_blank">国产日韩专区</a>| <a href="http://26thb.com" target="_blank">亚洲国产精品一区二区www</a>| <a href="http://beeperagain.com" target="_blank">久久精品久久99精品久久</a>| <a href="http://yckjwb.com" target="_blank">欧美母乳在线</a>| <a href="http://j88866.com" target="_blank">日韩午夜高潮</a>| <a href="http://339505.com" target="_blank">国产精品美女视频网站</a>| <a href="http://339505.com" target="_blank">一区二区三区日韩欧美</a>| <a href="http://jzsp101.com" target="_blank">久久久999</a>| <a href="http://sdjinchuan.com" target="_blank">麻豆精品在线视频</a>| <a href="http://7467tom.com" target="_blank">一区二区高清在线</a>| <a href="http://126900.com" target="_blank">亚洲精品一区二区三</a>| <a href="http://shenduzhongcao.com" target="_blank">欧美国产日韩精品免费观看</a>| <a href="http://6868681.com" target="_blank">久久av红桃一区二区小说</a>| <a href="http://ourskycity.com" target="_blank">久久精品亚洲一区二区三区浴池</a>| <a href="http://guanghezixun.com" target="_blank">日韩视频在线播放</a>| <a href="http://www033459.com" target="_blank">蜜桃av久久久亚洲精品</a>| <a href="http://www249aaa.com" target="_blank">亚洲在线一区二区三区</a>| <a href="http://223533.com" target="_blank">午夜日韩在线</a>| <a href="http://ccc3636.com" target="_blank">欧美一区亚洲</a>| <a href="http://4008166177.com" target="_blank">国产精品成人免费视频</a>| <a href="http://wwwbaoyu66.com" target="_blank">一本色道久久88综合日韩精品 </a>| <a href="http://www-132377.com" target="_blank">欧美精品网站</a>| <a href="http://avse98.com" target="_blank">欧美伊人久久久久久久久影院</a>| <a href="http://www-232323.com" target="_blank">欧美日韩亚洲综合一区</a>| <a href="http://bocai4488.com" target="_blank">亚洲黄页一区</a>| <a href="http://www-333410.com" target="_blank">尤物网精品视频</a>| <a href="http://www49773.com" target="_blank">香蕉久久国产</a>| <a href="http://lexueit.com" target="_blank">久久人体大胆视频</a>| <a href="http://aijiaoji.com" target="_blank">亚洲久久成人</a>| <a href="http://cnlbogs.com" target="_blank">欧美日本高清</a>| <a href="http://77xyc77.com" target="_blank">性久久久久久久久久久久</a>| <a href="http://710691.com" target="_blank">欧美va日韩va</a>| <a href="http://www330849.com" target="_blank">亚洲第一精品在线</a>| <a href="http://131397.com" target="_blank">欧美一区国产二区</a>| <a href="http://gdvapar.com" target="_blank">麻豆精品精华液</a>| <a href="http://667939.com" target="_blank">日韩天天综合</a>| <a href="http://hakuihoso.com" target="_blank">欧美日韩 国产精品</a>| <a href="http://showrti.com" target="_blank">另类春色校园亚洲</a>| <a href="http://4186a.com" target="_blank">免费在线亚洲</a>| <a href="http://874805.com" target="_blank">永久91嫩草亚洲精品人人</a>| <a href="http://628155.com" target="_blank">亚洲精品1234</a>| <a href="http://56718ca.com" target="_blank">久久综合电影一区</a>| <a href="http://456985.com" target="_blank">一区二区三区高清</a>| <a href="http://2456yo.com" target="_blank">欧美电影免费观看高清完整版</a>| <a href="http://488f.com" target="_blank">亚洲盗摄视频</a>| <a href="http://www520590.com" target="_blank">国产精品国产三级国产aⅴ入口</a>| <a href="http://woaigougou.com" target="_blank">亚洲网站在线观看</a>| <a href="http://yw133777.com" target="_blank">亚洲精品一区在线</a>| <a href="http://xiyan88.com" target="_blank">欧美精品123区</a>| <a href="http://621765.com" target="_blank">久久久综合视频</a>| <a href="http://cnlbogs.com" target="_blank">一区二区三区日韩精品视频</a>| <a href="http://www308eee.com" target="_blank">久久精品国产精品</a>| <a href="http://bkf23.com" target="_blank">亚洲欧美在线一区</a>| <a href="http://avtt59999.com" target="_blank">一区二区三区精品久久久</a>| <a href="http://hicao32.com" target="_blank">国产精品日韩</a>| <a href="http://7234hh.com" target="_blank">欧美激情亚洲视频</a>| <a href="http://9a5x.com" target="_blank">老司机午夜免费精品视频</a>| <a href="http://ykk7.com" target="_blank">欧美freesex8一10精品</a>| <a href="http://taoseav8.com" target="_blank">国产精品久久久久影院色老大 </a>| <a href="http://maoshimh.com" target="_blank">亚洲午夜精品久久久久久浪潮</a>| <a href="http://22241com.com" target="_blank">欧美日韩免费在线观看</a>| <a href="http://ridenimbus.com" target="_blank">午夜一区不卡</a>| <a href="http://8xv0.com" target="_blank">一本色道88久久加勒比精品 </a>| <a href="http://wwwgay456.com" target="_blank">欧美一区二区三区四区在线观看</a>| <a href="http://9885888.com" target="_blank">亚洲激情视频在线观看</a>| <a href="http://lyminghang.com" target="_blank">嫩草伊人久久精品少妇av杨幂</a>| <a href="http://tubcup.com" target="_blank">亚洲国产一区二区视频</a>| <a href="http://91porn42.com" target="_blank">亚洲免费一区二区</a>| <a href="http://zd-jm.com" target="_blank">久久精品电影</a>| <a href="http://lucky5888.com" target="_blank">欧美成人按摩</a>| <a href="http://wwwby2232.com" target="_blank">99国产精品久久久久久久</a>| <a href="http://caoliu20.com" target="_blank">91久久精品国产</a>| <a href="http://689658.com" target="_blank">一区二区三区视频在线</a>| <a href="http://608u.com" target="_blank">欧美黄色免费网站</a>| <a href="http://nvpuwo22.com" target="_blank">欧美日韩国产成人在线91</a>| <a href="http://tinganji.com" target="_blank">午夜一区二区三区不卡视频</a>| <a href="http://710952.com" target="_blank">欧美女同在线视频</a>| <a href="http://52sougou.com" target="_blank">国产在线成人</a>| <a href="http://394141.com" target="_blank">亚洲欧美日韩国产一区</a>| <a href="http://2061826.com" target="_blank">欧美在线视频免费播放</a>| <a href="http://l5076.com" target="_blank">亚洲区国产区</a>| <a href="http://ganmabook.com" target="_blank">麻豆成人小视频</a>| <a href="http://dadepaimai.com" target="_blank">亚洲欧美影院</a>| <a href="http://9876666.com" target="_blank">久久乐国产精品</a>| <a href="http://yw8333.com" target="_blank">国产伦精品一区二区三区免费迷 </a>| <a href="http://maoming365.com" target="_blank">99re热这里只有精品免费视频</a>| <a href="http://wo6wo.com" target="_blank">亚洲性感激情</a>| <a href="http://hhh699.com" target="_blank">久久人人爽爽爽人久久久</a>| <a href="http://889644.com" target="_blank">亚洲一区二区三区精品视频</a>| <a href="http://www-988900.com" target="_blank">国产精品久久久久久久久久ktv</a>| <a href="http://ttmitch.com" target="_blank">免费av成人在线</a>| <a href="http://48655aa.com" target="_blank">国产乱码精品一区二区三区忘忧草</a>| <a href="http://xpj493.com" target="_blank">伊人久久久大香线蕉综合直播 </a>| <a href="http://ziwufuren.com" target="_blank">亚洲视频日本</a>| <a href="http://laoyewo.com" target="_blank">亚洲电影欧美电影有声小说</a>| <a href="http://epiegame.com" target="_blank">亚洲一区三区电影在线观看</a>| <a href="http://xjhzgy.com" target="_blank">国产精品久久福利</a>| <a href="http://7171152.com" target="_blank">亚洲欧美偷拍卡通变态</a>| <a href="http://quanfadq.com" target="_blank">亚洲男人的天堂在线aⅴ视频</a>| <a href="http://www-85489.com" target="_blank">欧美成年视频</a>| <a href="http://zhipiao998.com" target="_blank">亚洲人成在线播放</a>| <a href="http://119773.com" target="_blank">国产精品99久久久久久久vr </a>| <a href="http://gzpurefaith.com" target="_blank">亚洲人永久免费</a>| <a href="http://www-72794.com" target="_blank">嫩草影视亚洲</a>| <a href="http://85995m.com" target="_blank">亚洲天堂免费观看</a>| <a href="http://clwjbcxs.com" target="_blank">亚洲国产高清一区</a>| <a href="http://8xn66w.com" target="_blank">久久久久国产精品一区</a>| <a href="http://zhenhaozu.com" target="_blank">老鸭窝亚洲一区二区三区</a>| <a href="http://xshgwy.com" target="_blank">欧美一区二区三区免费视</a>| <a href="http://3dmh329.com" target="_blank">…久久精品99久久香蕉国产 </a>| <a href="http://hbdfgq.com" target="_blank">亚洲精品网站在线播放gif</a>| <a href="http://7776701.com" target="_blank">欧美va亚洲va日韩∨a综合色</a>| <a href="http://goutoujunshi.com" target="_blank">久久午夜精品一区二区</a>| <a href="http://gdvapar.com" target="_blank">亚洲国产日韩欧美在线图片</a>| <a href="http://598327.com" target="_blank">99国产精品久久久久久久久久 </a>| <a href="http://heyzo1031.com" target="_blank">久久综合给合久久狠狠狠97色69</a>| <a href="http://7c3e.com" target="_blank">欧美色偷偷大香</a>| <a href="http://hazymall.com" target="_blank">欧美一区2区视频在线观看</a>| <a href="http://xshgwy.com" target="_blank">国产综合欧美</a>| <a href="http://hnautos.com" target="_blank">亚洲成色www久久网站</a>| <a href="http://kasimcoal.com" target="_blank">麻豆精品在线视频</a>| <a href="http://wwwavtb2049.com" target="_blank">午夜精品久久久</a>| <a href="http://nztd20.com" target="_blank">国产精品久久久久毛片软件</a>| <a href="http://m72722.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>