汇编语言能不能够被编译器优化
① 同样需要编译器为什么汇编语言比较快
绝大多数情况下,并不是。
事实上除了对CPU工作模式极端熟悉的人,一般人是很难用汇编写出更高效的代码的。
编译器虽然智商比不了人,但是它更精通优化。生成高效的代码需要透彻地掌握硬件的工作模式,每个细节都要考虑清楚。而且这很大程度上是软件更擅长但人并不擅长的繁重无脑又要求极高精确性的机械化工作。
当然专业搞优化的人还是能打败编译器的,因为编译器能做到的人终究还是可以做到。而人要比编译器聪明得多。编译器只能遵循一些规定好的模式进行优化,人可以创造编译器根本不知道的优化方法。某些逻辑靠编译器是没办法生成出来的,只能由人直接用汇编写。汇编语言虽然也要编译,但是一般会和机器指令直接对应,相当于要求CPU在细节上严格按人的思路工作,而高级语言并不能控制太多细节。
② 解释 编译和编译 汇编的区别是什么
解释和编译针对的是高级语言的。是高级语言转换成机器代码的方式。编译指的是一次性将程序代码给转换成机器代码,这样做好处是编译之后的可执行程序方便移植,可以优化程序代码,并且执行效率要比解释语言的高!解释是指边解释边运行,解释一条语句便执行一条。显然这样的程序执行效率是比较低的。比如C/C++用的是编译,而basic用的是解释。java既用到解释,又用到编译。而汇编是一种低级程序设计语言,直接操纵底层硬件。是在机器语言(0,1代码串)的基础上采用助记符的方式发展而来的。很多病毒都是通过汇编语言写的。用汇编编写的程序执行效率非常高!只是不方便写程序。汇编语言是低级语言,没有语法,就是一条条机器指令的助记符而已,所以汇编的时候不需要语法分析。编译时把高级语言处理成机器指令的过程,编译的时候需要做词法分析和语法分析,然后是代码生成。
③ 姹囩紪璇瑷绋嫔簭鏄浠涔
闂棰树竴锛氢粈涔堟槸姹囩紪璇瑷锛 璁$畻链虹▼搴忚捐¤瑷镄勫彂灞曪纴缁忓巻浜嗕粠链哄櫒璇瑷銆佹眹缂栬瑷鍒伴珮绾ц瑷镄勫巻绋嬨
1. 链哄櫒璇瑷
鐢靛瓙璁$畻链烘墍浣跨敤镄勬槸鐢扁0钬濆拰钬1钬濈粍鎴愮殑浜岃繘鍒舵暟锛屼簩杩涘埗鏄璁$畻链虹殑璇瑷镄勫熀纭銆傝$畻链哄彂鏄庝箣鍒濓纴浜轰滑鍙鑳介檷璐电骸灏婏纴鐢ㄨ$畻链虹殑璇瑷铡诲懡浠よ$畻链哄共杩椤共闾o纴涓鍙ヨ瘽锛屽氨鏄鍐椤嚭涓涓蹭覆鐢扁0钬濆拰钬1钬濈粍鎴愮殑鎸囦护搴忓垪浜ょ敱璁$畻链烘墽琛岋纴杩欑嶈瑷锛屽氨鏄链哄櫒璇瑷銆备娇鐢ㄦ満鍣ㄨ瑷鏄鍗佸垎䦅涜嫤镄勶纴鐗瑰埆鏄鍦ㄧ▼搴忔湁阌欓渶瑕佷慨鏀规椂锛屾洿鏄濡傛ゃ傝屼笖锛岀敱浜庢疮鍙拌$畻链虹殑鎸囦护绯荤粺寰寰钖勪笉鐩稿悓锛屾墍浠ワ纴鍦ㄤ竴鍙拌$畻链轰笂镓ц岀殑绋嫔簭锛岃佹兂鍦ㄥ彟涓鍙拌$畻链轰笂镓ц岋纴蹇呴’鍙︾紪绋嫔簭锛岄犳垚浜嗛吨澶嶅伐浣溿备絾鐢变簬浣跨敤镄勬槸阍埚圭壒瀹氩瀷鍙疯$畻链虹殑璇瑷锛屾晠钥岃繍绠楁晥鐜囨槸镓链夎瑷涓链楂樼殑銆傛満鍣ㄨ瑷锛屾槸绗涓浠h$畻链鸿瑷銆
2. 姹囩紪璇瑷
涓轰简鍑忚交浣跨敤链哄櫒璇瑷缂栫▼镄勭棝鑻︼纴浜轰滑杩涜屼简涓绉嶆湁鐩婄殑鏀硅繘锛氱敤涓浜涚亩娲佺殑鑻辨枃瀛楁瘝銆佺﹀彿涓叉潵镟夸唬涓涓鐗瑰畾镄勬寚浠ょ殑浜岃繘鍒朵覆锛屾瘆濡傦纴鐢ㄢ淎 D D钬濅唬琛ㄥ姞娉曪纴钬淢 O V钬濅唬琛ㄦ暟鎹浼犻掔瓑绛夛纴杩欐牱涓𨱒ワ纴浜轰滑寰埚规槗璇绘哕骞剁悊瑙g▼搴忓湪骞蹭粈涔堬纴绾犻敊鍙婄淮鎶ら兘鍙桦缑鏂逛究浜嗭纴杩欑岖▼搴忚捐¤瑷灏辩О涓烘眹缂栬瑷锛屽嵆绗浜屼唬璁$畻链鸿瑷銆傜劧钥岃$畻链烘槸涓嶈よ瘑杩欎簺绗﹀彿镄勶纴杩椤氨闇瑕佷竴涓涓挞棬镄勭▼搴忥纴涓挞棬璐熻矗灏呜繖浜涚﹀彿缈昏疟鎴愪簩杩涘埗鏁扮殑链哄櫒璇瑷锛岃繖绉岖炕璇戠▼搴忚绉颁负姹囩紪绋嫔簭銆
姹囩紪璇瑷钖屾牱鍗佸垎渚濊禆浜庢満鍣ㄧ‖浠讹纴绉绘嶆т笉濂斤纴浣嗘晥鐜囦粛鍗佸垎楂桡纴阍埚硅$畻链虹壒瀹氱‖浠惰岀紪鍒剁殑姹囩紪璇瑷绋嫔簭锛岃兘鍑嗙‘鍙戞尌璁$畻链虹‖浠剁殑锷熻兘鍜岀壒闀匡纴绋嫔簭绮剧偧钥岃川閲忛珮锛屾墍浠ヨ呖浠娄粛鏄涓绉嶅父鐢ㄨ屽己链夊姏镄勮蒋浠跺紑鍙戝伐鍏枫
3. 楂樼骇璇瑷
浠庢渶鍒濅笌璁$畻链轰氦娴佺殑䦅涜嫤缁忓巻涓锛屼汉浠镒忚瘑鍒帮纴搴旇ヨ捐′竴绉嶈繖镙风殑璇瑷锛岃繖绉嶈瑷鎺ヨ繎浜庢暟瀛﹁瑷鎴栦汉镄勮嚜铹惰瑷锛屽悓镞跺张涓崭緷璧栦簬璁$畻链虹‖浠讹纴缂栧嚭镄勭▼搴忚兘鍦ㄦ墍链夋満鍣ㄤ笂阃氱敤銆傜粡杩囧姫锷涳纴1 9 5 4骞达纴绗涓涓瀹屽叏鑴辩绘満鍣ㄧ‖浠剁殑楂樼骇璇瑷钬旻 O RT R A N闂涓栦简锛4 0澶氩勾𨱒ワ纴鍏辨湁鍑犵栌绉嶉珮绾ц瑷鍑虹幇锛屾湁閲嶈佹剰涔夌殑链夊嚑鍗佺嶏纴褰卞搷杈冨ぇ銆佷娇鐢ㄨ缉鏅阆岖殑链塅 O RT R A N銆丄 L G O L銆丆 O B O L銆丅 A S I C銆丩 I S P銆丼 N O B O L銆丳 L / 1銆丳 a s c a l銆丆銆丳 R O L O G銆丄 d a銆丆 + +銆乂 C銆乂 B銆丏 e l p h i銆丣 AVA 绛夈
楂樼骇璇瑷镄勫彂灞曚篃缁忓巻浜嗕粠镞╂湡璇瑷鍒扮粨鏋勫寲绋嫔簭璁捐¤瑷锛屼粠闱㈠悜杩囩▼鍒伴潪杩囩▼鍖栫▼搴忚瑷镄勮繃绋嬨傜浉搴斿湴锛岃蒋浠剁殑寮鍙戜篃鐢辨渶鍒濈殑涓浣撴坠宸ヤ綔鍧婂纺镄勫皝闂寮忕敓浜э纴鍙戝𪾢涓轰骇涓氩寲銆佹祦姘寸嚎寮忕殑宸ヤ笟鍖栫敓浜с
6 0骞翠唬涓钖庢湡锛岃蒋浠惰秺𨱒ヨ秺澶氾纴瑙勬ā瓒婃潵瓒婂ぇ锛岃岃蒋浠剁殑鐢熶骇锘烘湰涓婃槸浜鸿嚜涓烘垬锛岀己涔忕戝﹁勮寖镄勭郴缁熻勫垝涓庢祴璇曘佽瘎浼版爣鍑嗭纴鍏舵伓鏋沧槸澶ф壒钥楄垂宸ㄨ祫寤虹珛璧锋潵镄勮蒋浠剁郴缁燂纴鐢变簬钖链夐敊璇钥屾棤娉曚娇鐢锛岀敋镊冲甫𨱒ュ法澶ф崯澶憋纴杞浠剁粰浜虹殑镒熻夋槸瓒婃潵瓒娄笉鍙闱狅纴浠ヨ嚧鍑犱箮娌℃湁涓嶅嚭阌欑殑杞浠躲傝繖涓鍒囷纴鏋佸ぇ鍦伴渿锷ㄤ简璁$畻链虹晫锛屽彶绉扳滆蒋浠跺嵄链衡濄备汉浠璁よ瘑鍒帮细澶у瀷绋嫔簭镄勭紪鍒朵笉钖屼簬鍐椤皬绋嫔簭锛屽畠搴旇ユ槸涓椤规柊镄勬妧链锛屽簲璇ュ儚澶勭悊宸ョ▼涓镙峰勭悊杞浠剁爷鍒剁殑鍏ㄨ繃绋嬨傜▼搴忕殑璁捐″簲鏄扑簬淇濊瘉姝g‘镐э纴涔熶究浜庨獙璇佹g‘镐с1 9 6 9骞达纴鎻愬嚭浜嗙粨鏋勫寲绋嫔簭璁捐℃柟娉曪纴1 9 7 0骞达纴绗涓涓缁撴瀯鍖栫▼搴忚捐¤瑷钬昉 a s c a l璇瑷鍑虹幇锛屾爣蹇楃潃缁撴瀯鍖栫▼搴忚捐℃椂链熺殑寮濮嬨
8 0骞翠唬鍒濆紑濮嬶纴鍦ㄨ蒋浠惰捐℃濇兂涓婏纴鍙堜骇鐢熶简涓娆¢潻锻斤纴鍏舵垚鏋滃氨鏄闱㈠悜瀵硅薄镄勭▼搴忚捐°傚湪姝や箣鍓岖殑楂樼骇璇瑷锛屽嚑涔庨兘鏄闱㈠悜杩囩▼镄勶纴绋嫔簭镄勬墽琛屾槸娴佹按绾夸技镄勶纴鍦ㄤ竴涓妯″潡琚镓ц屽畬鎴愬墠锛屼汉浠涓嶈兘骞插埆镄勪簨锛屼篃镞犳硶锷ㄦ佸湴鏀瑰彉绋嫔簭镄勬墽琛屾柟钖戙傝繖鍜屼汉浠镞ュ父澶勭悊浜嬬墿镄......>>
闂棰树簩锛氢粈涔堟槸姹囩紪璇瑷 姹囩紪璇瑷瀹冩槸璁$畻链鸿瑷锛岃$畻链鸿瑷璇撮氢织镣瑰氨鏄浜虹被涓庤$畻链猴纸CPU锛夋矡阃氱殑妗ユ侊纴璁$畻链哄畠涓嶈よ瘑浜虹被镄勮瑷锛屽惉涓嶆哕涔熻讳笉镍傦纴瑕佽╄$畻链烘浛鎴戜滑铡诲畬鎴愭垜浠镄勫伐浣滐纴灏遍渶瑕佹垜浠灏呜佷氦缁栾$畻链哄畬鎴愮殑浠诲姟缈昏疟涓鸿$畻链鸿瑷銆傛眹缂栬瑷鏄钖勭嶈瑷涓镄勪竴绉嶏纴瀹冨睘浜庝绠绾х殑璁$畻链鸿瑷锛岃繖鏄鐩稿逛簬闱㈠悜杩囩▼镄凛璇瑷锛屼互鍙婇溃钖戝硅薄镄凛++,java钥岃█銆傚畠鏄闄ゆ満鍣ㄨ瑷浠ュ栨渶鎺ヨ繎纭浠剁殑璁$畻链鸿瑷锛岃屼笖鍙浠ラ氲繃瀛︿範姹囩紪璇瑷娣卞叆镄勪简瑙f搷浣灭郴缁熺殑搴曞眰杩愯屾満鍒讹纴骞朵互CPU镄勮掑害镐濊冮梾棰樸傝繖镙峰彲浠ヨ╀綘鍦ㄧ紪鍐欓珮绾ц瑷镄勭▼搴忕殑镞跺欓伩鍏嶅緢澶氶敊璇锛屽苟涓旇兘镟存繁鍏ョ悊瑙i珮绾ц瑷镄勬墽琛 铡熺悊銆傚洜涓烘眹缂栬瑷灞炰簬浣庣骇璇瑷锛屾墍浠ユ棦铹朵绠绾у氨镶瀹氢笉瀹规槗琚鏅阃氱敤鎴疯よ瘑锛岃繖闇瑕佷竴瀹氱殑纭浠跺熀纭鐭ヨ瘑鍜屼竴浜涜$畻链哄伐浣滃师鐞嗙殑鐭ヨ瘑銆备互鍓嶅湪澶у﹂桩娈靛﹁繃姹囩紪璇瑷锛屼絾娌℃湁褰揿洖浜嫔効锛岃繛浣滀笟閮芥槸澶嶅埗锷犵矘璐村畬鎴愮殑锛埚儚杩欐牱镄勪笉鍦ㄥ皯鏁板惂锛氾级锛夈傚伐浣滀互钖庢墠鍙戠幇杩欎釜璇瑷鏄涓濂戒笢瑗匡纴瀹冨叾瀹炴槸涓闱炲父閲嶈佺殑锘虹璇剧▼銆傛墍浠ョ幇鍦ㄦ湁镞堕棿灏辨妸涔︽墦寮澶氱湅涓镣癸纴瀛︿竴镣广傛眹缂栬瑷鐩鍓嶅父瑙佺殑链変袱绉嶏细涓涓鏄锘轰簬8086/88鏋舵瀯镄凞OS涓嬬殑16浣嶆眹缂栬瑷锛岃缮链夊氨鏄锘轰簬80386鏋舵瀯鍙婂叾浠ュ悗鍨嫔彿镄剋indows涓32浣嶆眹缂栬瑷銆傛垜涓岖煡阆搇inux涓嬫湁娌℃湁姹囩紪璇瑷銆傞‘渚胯翠竴涓嬶纴涓岖′粈涔堟眹缂栬瑷瀹冩墍缂栧嚭𨱒ョ殑绋嫔簭閮藉睘浜庤蒋浠讹纴镓浠ヤ笉绠′粈涔堣蒋浠堕兘闇瑕佷緷璧栨搷浣灭郴缁熻繖涓锘虹骞冲彴锛屽畠镓嶅彲浠ヨ纭浠禖PU镓镓ц岋纴锲犱负镎崭綔绯荤粺灏辨槸鎻愪緵纭浠朵笌鐢ㄦ埛涔嬮棿镄勬帴鍙o纴镓链夎蒋浠堕兘瑕侀氲繃瀹冩潵鍒嗛厤鍒扮‖浠惰祫婧愶纸涓岖煡阆揿逛笉瀵瑰搱锛氾级镓嶅彲浠ヨ镓ц岋级銆备竴鑸鍏埚︿範16浣岖殑DOS姹囩紪锛岀劧钖庡啀瀛32浣岖殑windows姹囩紪銆傛墍浠ユ垜浠鍏堣皥璋16浣岖殑DOS姹囩紪鍝堛傝佸︽眹缂栬瑷棣栧厛灏辨槸瑕佷简瑙CPU锛屼綘鍙链変简瑙d简CPU镓嶈兘浜呜В姹囩紪璇瑷镄勬墽琛岋纴锲犱负瀹冨熀链灏辨槸鐩存帴鍦ㄦ搷浣淐PU镄勫悇涓缁勬垚鍗曞厓锛埚儚瀵勫瓨鍣锛夈傚湪 *** 涓婃垒浜呜繖涓锲撅纴濡备笅锛氢笂闱㈣繖涓狢PU镄勯昏緫缁撴瀯锲炬槸8088镄勶纴8088鍜8086澶х殑鏋舵瀯宸涓嶅氾纴镓浠ュ氨浠ヨ繖涓涓轰緥浠嬬粛涓嫔悇涓缁勬垚閮ㄥ垎镄勪綔鐢ㄣ备富瀵勫瓨鍣锛欰X(AH,AL)绱锷犲瘎瀛桦櫒,涓鑸鐢ㄤ綔𨱌傚瓨鏁版嵁锛汢X(BH,BL)锘哄潃瀵勫瓨鍣,涓鑸鐢ㄤ綔锅忕Щ鍦板潃瀛樻斁锛汣X(CH,CL)璁℃暟瀵勫瓨鍣,涓鑸鐢ㄥ湪寰鐜鎺у埗娆℃暟锛汥X(DH,DL)鏁版嵁瀵勫瓨鍣锛屽ソ镀忓拰AX宸涓嶅氩惂锛汼P鍫嗘爤鎸囬拡瀵勫瓨鍣锛屾爤鎸囬拡锛汢P锘哄潃鎸囬拡瀵勫瓨鍣锛屽彲浣沦P浣跨敤锛汼I婧愬彉鍧瀵勫瓨鍣ㄥ拰DI鐩镄勫彉鍧瀵勫瓨鍣锛岃繖涓や釜锅氢负BX镓╁𪾢鐢ㄤ簬锅忕Щ鍦板潃瀛樻斁銆傛靛瘎瀛桦櫒锛 CS锛氢唬镰佹靛瘎瀛桦櫒锛屼换浣曚竴涓绋嫔簭閮芥槸浠庝唬镰佹靛紑濮嬫墽琛岀殑锛孋S瀵勫瓨鍣ㄦ寚鏄庝简浠g爜娈电殑娈靛湴鍧銆侱S锛氭暟鎹娈靛瘎瀛桦櫒锛屽瓨鏀剧▼搴忎腑鏁版嵁閮ㄥ垎镄勬靛湴鍧銆係S锛氩爢镙堟靛瘎瀛桦櫒锛屽爢镙堟槸鍐呭瓨涓鐗规畩镄勫唴瀛桦潡锛屽爢涓庢爤涓嶅悓锛岀洰鍓嶆垜鍙鐭ラ亾镙堟槸灏婂惊钬滃厛杩涘悗鍑猴纴钖庤繘鍏埚嚭钬濈殑铡熷垯钥屼娇鐢ㄣ侲S锛氶梼锷犳靛瘎瀛桦櫒锛屽簲璇ユ槸浣滀负DS鏁版嵁娈靛瘎瀛桦櫒镄勬墿鍏呭惂銆傚湴鍧锷犳硶鍣锛 杩欐槸鐢ㄥ湪瀵瑰唴瀛桦诲潃镞舵墍浣跨敤锛屽畠阃氲繃灏嗘靛瘎瀛桦櫒涓镄勬靛湴鍧涓嶣X銆丼I銆丏I绛夊瘎瀛桦櫒涓镄勫亸绉诲湴鍧浣滀竴瀹氩勭悊浠庤岃緭鍑虹墿鐞嗗湴鍧锛岀劧钖庡氨鍙浠ヨ块梾鍐呭瓨鍗曞厓浜嗐傛眹缂栫▼搴忎腑镄勫湴鍧鍙鏄阃昏緫鍦板潃锛屽苟涓嶆槸鐪熷疄镄勫唴瀛树笂镄勫湴鍧銆傚湪绋嫔簭瀹为檯杩愯屾椂姣忔¤块梾鍐呭瓨閮戒细鍏埚皢阃昏緫鍦板潃杞鎹㈡垚鐗╃悊鍦板潃镓嶅彲浠ヨ块梾鍒扮墿鐞嗗唴瀛樸傚叧浜嶤PU瀵诲潃锛岄昏緫鍦板潃锛岀墿鐞嗗湴鍧鎴戜篃浼氩啀鍐欑瘒鏂囩珷𨱒ヨㄨ恒傞昏緫杩愮畻鍗曞厓鍜屾带鍒跺崟鍏冿细杩欐槸CPU链镙稿绩镄勫崟鍏冿纴鎴戜滑𨱌傚彧璁颁綇瀹冧滑鏄璐熻矗镓ц屼笌鎺у埗灏卞ソ浜嗐傚唴閮ㄦ暟鎹锛屽湴鍧镐荤嚎锛欳PU鍐呴儴钖勯儴浠朵箣闂撮氢俊镄勯氶亾銆傚栭儴鍦板潃镐荤嚎锛氱敤𨱒ヤ紶杈揅PU𨱍宠佽诲彇/鍐椤叆鍐呭瓨鍗曞厓镄勭墿鐞嗗湴鍧銆傚畠镄勫藉害灏卞喅瀹氢简CPU鑳藉熻块梾镄勫唴瀛樼殑链澶у归噺銆傚栭儴鏁版嵁鍜屾带鍒舵......>>
闂棰树笁锛氱亩杩扮敤姹囩紪璇瑷杩涜岀▼搴忚捐$殑姝ラゃ 姹囩紪璇瑷绋嫔簭璁捐℃ラわ细
(1)鍒嗘瀽闂棰桡细宸茬煡𨱒′欢銆佽佽В鍐崇殑闂棰樸佸姛鑳/镐ц兘瑕佹眰绛夈
(2)寤虹珛鏁板︽ā鍨嬶细鎶婇梾棰樻暟瀛﹀寲銆佸叕寮忓寲锛屼究浜庤$畻链哄勭悊銆
(3)纭瀹氱畻娉曪细绠鍗曘侀熷害蹇銆佺簿搴﹂珮銆佷唬镰侀噺灏忋佺紪绋嫔规槗銆
(4)缁桦埗绋嫔簭娴佺▼锲撅细鐢ㄧ澶淬佹嗗浘銆佽彵褰㈠浘绛夎〃绀虹▼搴忕粨鏋勚
(5)鍐呭瓨绌洪棿鍒嗛厤锛氢负绋嫔簭鎴栨暟鎹鍒嗛厤鍐呭瓨绌洪棿銆
(6)缂栧埗绋嫔簭涓庨润镐佹镆ワ细绋嫔簭缁撴瀯灞傛$亩鍗曘佹竻妤氥佹槗镍伞
(7)绋嫔簭璋冭瘯锛氩埄鐢ㄨ皟璇曡蒋浠禗EBUG杩涜岃皟璇曘
闂棰桦洓锛1銆佹眹缂栫▼搴忎笌姹囩紪璇瑷婧愮▼搴忕殑鍖哄埆锛 姹囩紪绋嫔簭鏄姹囩紪璇瑷婧愮▼搴忕粡杩囩紪璇戝悗镄勭粨鏋
鐢ㄦ爣鍙锋槸涓轰简镙囱扮▼搴忔碉纴鍐呭瓨娈碉纴璺宠浆浣岖疆绛夌瓑
loop p ov add1鍙浠
闂棰树簲锛氱紪绋嬭瑷鍜屾眹缂栬瑷链変粈涔埚尯鍒鍟 璁$畻链鸿瑷浠庝绠绾у埌楂樼骇鍙浠ュ垎涓猴细
链哄櫒璇瑷锛屽嵆鐢0銆1缁勬垚镄勬満鍣ㄧ‖浠跺彲浠ヨ瘑鍒镄勮瑷锛
浣庣骇璇瑷锛屽嵆姹囩紪璇瑷
涓绾ц瑷锛屽侰璇瑷
楂樼骇璇瑷锛屽侰++,JAVA,C#绛夈
姹囩紪璇瑷鏄灏嗙敱0銆1缁勬垚镄勬満鍣ㄨ瑷鐢ㄥ叿链夌亩鍗曡涔夌殑鑻辨枃浠g爜琛ㄧず锛屼互渚夸簬鐞呜В鍜岀▼搴忓憳缂栫▼銆傛眹缂栬瑷阃氩父鐢ㄤ簬瀵圭‖浠剁殑鐩存帴镎嶆带銆傜敱浜庢眹缂栬瑷缂栧啓镄勭▼搴忓緢灏忥纴镓浠ラ氩父鍦ㄧ▼搴忎腑链镙稿绩镄勚佹带鍒剁‖浠剁殑浠g爜鍙浠ラ噰鐢ㄦ眹缂栬瑷缂栧啓锛屼竴鏂归溃鏄瀹夊叏锛屽彟涓鏂归溃鎻愰珮杩愯岄熷害銆
瀵逛簬璁$畻链虹殑鍒濆﹁咃纴搴旇ヤ粠涓楂樼骇璇瑷瀛﹁捣锛屽俢璇瑷锛寁b,java绛夛纴濡傛灉浣犳槸𨱍宠佸︿範濡备綍缂栫▼锛屽︿範涓鍒颁袱闂ㄩ珮绾ц瑷宸茬粡澶熺敤浜嗐
濡傛灉浣犲凡缁忔帉鎻′简锘烘湰镄勭紪绋嬫妧鑳斤纴链濂芥槸鍙浠ュ︿範鏁版嵁缁撴瀯鍜屾搷浣灭郴缁熶互鍙婅$畻链虹‖浠剁殑锘烘湰宸ヤ綔铡熺悊锛屼互渚夸紭鍖栦綘缂栧啓镄勭▼搴忥纴鎻愰珮瀹夊叏镐у拰杩愯屾晥鐜囥
濡傛灉浣犳兂瑕佷粠浜嬫洿楂樼骇镄勫紑鍙戝伐浣滐纴鍒椤彲鑳介渶瑕佸︿範姹囩紪璇瑷銆
鍦ㄩ珮镙′腑锛岃$畻链虹戞妧涓扑笟镄勫︾敓姹囩紪璇瑷鏄蹇呬慨璇撅纴钥岃蒋浠跺伐绋嬩笓涓氱殑瀛︾敓鍒椤规眹缂栬瑷涓嶅仛瑕佹眰銆
镊充簬姹囩紪涓庣紪绋嬬殑鍖哄埆鏄鏄捐屾槗瑙佺殑锛屾眹缂栬瑷鏄涓绉岖敤浜庣紪鍐欐煇浜涚▼搴忕殑璇瑷銆傝岀紪绋嫔垯鏄绋嫔簭锻樼敤镆愮嶈瑷缂栧啓绋嫔簭镄勮繃绋嬨
闂棰桦叚锛氭眹缂栬瑷鏄浠涔堟墿灞曞悕 .ASM镄勬墿灞曞悕
闂棰树竷锛氭眹缂栬瑷绋嫔簭镄勫紑鍙戞湁鍝4涓姝ラ 缂栬緫锛氢娇鐢ㄨ颁簨链锛岀敓鎴愶细*锛峣SM 鏂囦欢銆 缂栬疟锛氢娇鐢 MASM锛嶦XE 锛岀敓鎴愶细*锛嶰BJ 鏂囦欢銆 杩炴帴锛氢娇鐢 LINK锛嶦XE锛岀敓鎴愶细*锛嶦XE 鏂囦欢銆 镓ц岋细浣跨敤 *锛嶦XE 鏂囦欢銆
闂棰桦叓锛氭眹缂栬瑷瀛愮▼搴忔槸濡备綍瀹氢箟镄? 鐩存帴jmp璺宠浆杩囧幓锛岀劧钖巖et锲炴潵銆
call xxx
xxx proc uses eax,esi,edi,var:ddword......
xxx endp
涔熷彲浠ュ甫鍙傛暟镄勚傜浜岀嶆柟寮忔牸寮忓氨鏄杩欐牱锛岃寸槠浜嗕篃鏄痡mp璺宠浆銆傚彧鏄缁忚繃浜嗙紪璇戝櫒浼桦寲銆傞槻姝㈢▼搴忓憳璺宠浆锛屽艰嚧鍫嗘爤鍓嶅悗涓嶅归绨銆
闂棰树节锛氭眹缂栬瑷链変粈涔堢壒镣 姹囩紪璇瑷镄勬讳綋鐗圭偣1锛庢満鍣ㄧ浉鍏虫
杩欐槸涓绉嶉溃钖戞満鍣ㄧ殑浣庣骇璇瑷锛岄氩父鏄涓虹壒瀹氱殑璁$畻链烘垨绯诲垪璁$畻链轰笓闂ㄨ捐$殑銆傚洜涓烘槸链哄櫒鎸囦护镄勭﹀彿鍖栬〃绀猴纴鏁呬笉钖岀殑链哄櫒灏辨湁涓嶅悓镄勬眹缂栬瑷銆备娇鐢ㄦ眹缂栬瑷鑳介溃钖戞満鍣ㄥ苟杈冨ソ鍦板彂鎸ユ満鍣ㄧ殑鐗规э纴寰楀埌璐ㄩ噺杈冮珮镄勭▼搴忋
2锛庨珮阃熷害鍜岄珮鏁堢巼
姹囩紪璇瑷淇濇寔浜嗘満鍣ㄨ瑷镄勪紭镣癸纴鍏锋湁鐩存帴鍜岀亩鎹风殑鐗圭偣锛屽彲链夋晥鍦拌块梾銆佹带鍒惰$畻链虹殑钖勭岖‖浠惰惧囷纴濡傜佺洏銆佸瓨鍌ㄥ櫒銆丆PU銆両/O绔鍙g瓑锛屼笖鍗犵敤鍐呭瓨灏戯纴镓ц岄熷害蹇锛屾槸楂樻晥镄勭▼搴忚捐¤瑷銆
3锛庣紪鍐椤拰璋冭瘯镄勫嶆潅镐
鐢变簬鏄鐩存帴鎺у埗纭浠讹纴涓旂亩鍗旷殑浠诲姟涔熼渶瑕佸緢澶氭眹缂栬瑷璇鍙ワ纴锲犳ゅ湪杩涜岀▼搴忚捐℃椂蹇呴’闱㈤溃淇卞埌锛岄渶瑕佽冭槛鍒颁竴鍒囧彲鑳界殑闂棰桡纴钖堢悊璋冮厤鍜屼娇鐢ㄥ悇绉嶈蒋銆佺‖浠惰祫婧愩傝繖镙凤纴灏变笉鍙阆垮厤鍦板姞閲崭简绋嫔簭锻樼殑璐熸媴銆备笌姝ょ浉钖岋纴鍦ㄧ▼搴忚皟璇曟椂锛屼竴镞︾▼搴忕殑杩愯屽嚭浜嗛梾棰桡纴灏卞緢闅惧彂鐜般
浼樼偣
1銆佸洜涓虹敤姹囩紪璇瑷璁捐$殑绋嫔簭链缁堣杞鎹㈡垚链哄櫒鎸囦护锛屾晠鑳藉熶缭鎸佹満鍣ㄨ瑷镄勪竴镊存э纴鐩存帴銆佺亩鎹凤纴骞惰兘镀忔満鍣ㄦ寚浠や竴镙疯块梾銆佹带鍒惰$畻链虹殑钖勭岖‖浠惰惧囷纴濡傜佺洏銆佸瓨鍌ㄥ櫒銆丆PU銆両/O绔鍙g瓑銆备娇鐢ㄦ眹缂栬瑷锛屽彲浠ヨ块梾镓链夎兘澶熻璁块梾镄勮蒋銆佺‖浠惰祫婧愩
2銆佺洰镙囦唬镰佺亩鐭锛屽崰鐢ㄥ唴瀛桦皯锛屾墽琛岄熷害蹇锛屾槸楂樻晥镄勭▼搴忚捐¤瑷锛岀粡甯镐笌楂樼骇璇瑷閰嶅悎浣跨敤锛屼互鏀瑰杽绋嫔簭镄勬墽琛岄熷害鍜屾晥鐜囷纴寮ヨˉ楂樼骇璇瑷鍦ㄧ‖浠舵带鍒舵柟闱㈢殑涓嶈冻锛屽簲鐢ㄥ崄鍒嗗箍娉涖
缂虹偣
1銆佹眹缂栬瑷鏄闱㈠悜链哄櫒镄勶纴澶勪簬鏁翠釜璁$畻链鸿瑷灞傛$粨鏋勭殑搴曞眰锛屾晠琚瑙嗕负涓绉崭绠绾ц瑷锛岄氩父鏄涓虹壒瀹氱殑璁$畻链烘垨绯诲垪璁$畻链轰笓闂ㄨ捐$殑銆备笉钖岀殑澶勭悊鍣ㄦ湁涓嶅悓镄勬眹缂栬瑷璇娉曞拰缂栬疟鍣锛岀紪璇戠殑绋嫔簭镞犳硶鍦ㄤ笉钖岀殑澶勭悊鍣ㄤ笂镓ц岋纴缂轰箯鍙绉绘嶆э绂
2銆侀毦浜庝粠姹囩紪璇瑷浠g爜涓婄悊瑙g▼搴忚捐℃剰锲撅纴鍙缁存姢镐у樊锛屽嵆浣挎槸瀹屾垚绠鍗旷殑宸ヤ綔涔熼渶瑕佸ぇ閲忕殑姹囩紪璇瑷浠g爜锛屽緢瀹规槗浜х敓bug锛岄毦浜庤皟璇曪绂
3銆佷娇鐢ㄦ眹缂栬瑷蹇呴’瀵规煇绉嶅勭悊鍣ㄩ潪甯镐简瑙o纴钥屼笖鍙鑳介拡瀵圭壒瀹氱殑浣撶郴缁撴瀯鍜屽勭悊鍣ㄨ繘琛屼紭鍖栵纴寮鍙戞晥鐜囧緢浣庯纴锻ㄦ湡闀夸笖鍗曡皟銆
闂棰桦崄锛氩井绋嫔簭鍜屾眹缂栬瑷镄勫尯鍒鏄浠涔堛 5鍒 寰浠g爜鍜屾眹缂栭兘鏄浣庣骇璇瑷锛屼絾鏄寰浠g爜姣旀眹缂栨洿搴曞眰銆傚井浠g爜鍜屾眹缂栭兘鍜岀‖浠舵湁镌绱у瘑镄勮仈绯伙纴浣嗘槸瀵逛簬钖屼竴浜у搧绯诲垪镄勪笉钖屼唬浜у搧𨱒ヨ达纴姹囩紪鍙浠ュ畬鍏ㄧ浉钖岋纴寰浠g爜鍙鑳芥湁镌宸ㄥぇ镄勫尯鍒锛屽洜涓哄井浠g爜鏄瀹屽叏渚濊禆浜庤姱鐗囧唴閮ㄧ殑纭浠惰繛鎺ャ
瀵逛簬钖屾牱涓鍙C璇瑷锛屽湪涓嶅悓镄勫勭悊鍣ㄤ笂浼氱敓鎴愪笉钖岀殑姹囩紪璇瑷銆傛疮涓𨱒℃眹缂栬瑷镄勬墽琛屾椂闂翠篃璁告槸涓涓鎴栬呬袱涓镞堕挓锻ㄦ湡锛岀敋镊虫洿澶氥傚井浠g爜鍜屾眹缂栫殑鍏崇郴锛屽氨镀廋 涓庢眹缂栫殑鍏崇郴锛屼篃灏辨槸璇翠竴𨱒℃眹缂栦篃璁镐细鐢熸垚涓𨱒℃垨澶氭浔寰浠g爜銆傛墍璋揿井浠g爜锛屾垨钥呭井鎸囦护锛屾槸澶勭悊鍣ㄥ唴閮ㄦ渶灏忕殑镎崭綔铡熻锛屾带鍒剁潃璇稿傞棬鐢佃矾(gates)寮鍏崇瓑涓挞棬锷ㄤ綔锛屽拰缁勬垚涓𨱒℃寚浠ょ殑寰镎崭綔镄勫簭鍒椼备緥濡傦纴瀵逛簬涓涓锷犳硶ADD镄勭亩鍗曞姩浣滐纴寰浠g爜鍙浠ュ喅瀹氭帴鍙楀摢涓や釜瀵勫瓨鍣ㄦ垨镐荤嚎涓鸿緭鍏ワ纴杈揿嚭鍒颁粈涔堟荤嚎鎴栬呭瘎瀛桦櫒閲岋纴镙囧织瀵勫瓨鍣ㄨ佷缭瀛樿缮鏄涓㈠纯锛屾牴鎹𨱒′欢杩涜岃烦杞鎴栬呯洿鎺ユ墽琛屼笅涓𨱒″井浠g爜銆备竴涓鍐呴儴鍙链8浣嶅界殑鏁版嵁镐荤嚎瀹屽叏鍙浠ユ敮鎸32浣嶆暣鏁扮殑姹囩紪镎崭綔锛屽氨鏄锲犱负链夊井浠g爜銆
寰浠g爜铡熸潵鍙鏄鐢ㄦ潵寮鍙戣$畻链虹殑阃昏緫鎺у埗銆傚彜钥佺殑CPU寰寰閮芥槸钬灭‖杩炵嚎钬濓纴姣忎釜链哄櫒鎸囦护锛埚姞娉曪纴绉诲姩锛夐兘鏄鐢辩数璺瀹炵幇锛岃槠铹舵湁镌楂樻ц兘镄勪紭镣癸纴浣嗛殢镌鎸囦护澶嶆潅搴︾殑澧为暱锛屼篃甯︽潵浜嗙爷鍙戝拰DEBUG镄勫汹闅撅纴浠ュ强鐢佃矾镄勫嶆潅镐с傚井浠g爜镄勫嚭鐜拌〤PU镄勮捐¤呭彲浠ラ氲繃鍐欎竴涓寰绋嫔簭镄勬柟寮忔潵瀹炵幇涓𨱒℃満鍣ㄦ寚浠わ纴钥屼笉鏄璁捐$数璺𨱒ュ疄鐜板畠銆傚湪灏嗘潵镄勫紑鍙戣捐¤繃绋嬩腑锛屽井浠g爜鍙浠ュ緢瀹规槗鍦版敼鍙桡纴纭浠剁数璺鍗翠笉鍙镟存敼锛屽惁鍒椤甫𨱒ョ殑灏嗘槸宸ㄥぇ镄勫晢涓氭崯澶便傝繖绉岖伒娲荤殑CPU璁捐″艰嚧浜嗕粖澶╂棩鐩婂嶆潅镄勬寚浠ら泦銆