| ²é¿´: 881 | »Ø¸´: 10 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
| µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû | |||
sdlj8051½ð³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
[תÌù]»ã±àÒÕÊõ
|
||
|
»ã±àÓïÑÔ¿ÉÒÔ˵ÊÇδ¾ÕûÀíµÄ¡¢ÔʼµÄ¼ÆËã»úÓïÑÔ£¬¶ÁÕßÃÇ´ó¿ÉÏÂÒ»·¬¹¦·ò£¬ÕÒ³ö ÆäÓ¦ÓõĹæÔò£¬ÒÔ·¢»Ó×î¸ßµÄЧÂÊ¡£ÔÚÏÂÃæ£¬ÎÒ½ö¾Í¸öÈ˵ľÑ飬ÌṩһЩdz¼û£¬ÒÔ¹© ÇдèÑÐÌÖ¡£ ҪдºÃ³ÌÐò£¬Ê×ÏÈÓ¦Êì¼Ç8088Ö¸ÁîµÄʱÖÓÂö³å£¨Clock £©¼°Ö¸Á¶È£¬Ò»°ã»ã±àÓï ÑÔÊÖ²áÖУ¬¶¼ÏêÁÐÁËÓë¸÷Ö¸ÁîÏà¹ØµÄÊý¾Ý¡£¡¸¹¤ÓûÉÆÆäÊ£¬±ØÏÈÀûÆäÆ÷¡¹£¬´Ë֮νҲ¡£ ±¾½ÚËùÌÖÂ۵ģ¬ÊÇÒ»°ã³ÌÐòÔ±ÈÝÒ׺öÂÔµÄϸ½Ú£¬ËùÓеÄÀý×Ó¶¼ÊÇ´ÓÎÒËù¿´¹ýµÄһЩ ³ÌÐòÖÐժ¼ÏÂÀ´µÄ¡£¿´À´Ã»Ê²Ã´´óÁ˲»Æð£¬¿ÉÊdzÌÐòµÄЧÂÊ£¬Êܵ½ÕâЩСµØ·½µÄÓ°ÏìºÜ ´ó¡£¸üÖØÒªµÄÊÇ£¬ÈκÎÒ»¸öÈË£¬Ö»ÒªÓС¸Ð¡Ê²»×ö£¬Ð¡ÉƲ»Îª¡¹µÄϰ¹ß£¬ÎÒ¸Ò¶ÏÑÔ£¬Õâ ¸öÈ˲»»áÓÐʲô´ó³É¾Í£¡ ÎÒ×î½ü²Å²éµ½ Effective Address (EA) µÄʱÖÓÖµ£¬ÎÒ¾õµÃûÓбØÒªËÀ¼Ç¡£ÔÔòÉÏ£¬ ÒԼĴæÆ÷Ϊ±äÁ¿£¬×ö¼ä½ÓѰַʱΪ£µ¸öʱÖÓ£¬ÓÃÖ±½ÓѰַÔòΪ£¶¸ö£»ÈôÓÃÁËÁ½×é±äÁ¿£¬ ÔòΪ£·ÖÁ£¹¸ö£¬Èý×éÔòΪ11»ò12¸ö¡£ ΪÁ˱ãÓÚÐðÊö£¬ÏÂÃæÒÔ"£Ô"±í¡¸Ê±ÖÓÂö³å¡¹; "£Â"±í×Ö·û¡£ÆäÖРʱÖÓÂö³åT = 1 / Õñµ´ÆµÂÊ Ò»¡¢±ÜÃâÀË·ÑËٶȼ°¿Õ¼ä »ã±àÓïÑÔµÄЧÂʽ¨Á¢ÔÚÖ¸ÁîµÄÔËÓÃÉÏ£¬Èç¹û²»ÓÃÐÄÌå»áÏÂÁÐÖ¸ÁîµÄÓÐЧÓ÷¨£¬»ã±à ÓïÑÔµÄÓŵã¾ÍÄÑÒÔ·¢»Ó¡£ 1, CALL ABCD RET ÕâÖÖд·¨£¬ÊÇûÓÐÓÃÐĵĽá¹û£¬¹²ÏíÁË 4B£¬23T+20T£¬ÍêÈ«ÏàͬµÄ¹¦ÄÜ£¬È磺 JMP ABCD »ò JMP SHORT ABCD È´Ö»Òª 2-3B£¬15T¡£ ´ËÍ⣬ÉÏÊöµÄCALL XXXX Êǵ÷ÓÃ×Ó³ÌÐòµÄ¸ñʽ£¬ÔÚÖ±¾õÈÏÖªÉÏ£¬ÓëJMP XXXXÍê È«²»Í¬¡£¶ÔÕûÌåÉè¼Æ¶øÑÔ£¬ÊDz»¿ÉÔÁµĴíÎó£¬Õì´íµÄʱºò£¬Ò²ºÜÄÑÕÆÎÕÈ«Å̵ÄÀíÄî¡£ ÓÈÆäÊÇÔÚ¾«¼ò³ÌÐòµÄʱºò£¬ºÜ¿ÉÄÜ»áÓöµ½ ABCD Õâ¸ö×Ó³ÌÐòÍêÈ«¶ÀÁ¢£¬ÊÇÔò°Ñ Õâ¶Î³ÌÐòÖ±½ÓÒÆµ½ ABCD ǰ£¬²»½öÄܽÚÊ¡¿Õ¼ä£¬¶øÇÒʹ³ÌÐò¾ßÓÐÁ¬¹áÐÔ£¬Ò×¶ÁÒ×Óᣠ2, MOV AX,0 ͬÑù£¬ÕâÌõÖ¸ÁîÒª 3B£¬4T,Èç¹ûÓ㺠SUB AX,AX »ò XOR AX,AX Ö»Òª 2B£¬3T£¬ ΨһҪעÒâµÄÊÇ£¬ºóÕß»áÓ°ÏìÆìºÅ£¬ËùÒÔ²»ÒªÓÃÔÚÓÐÆìºÅÅжϵÄÖ¸ ÁîÇ°Ãæ¡£ ÔÚ³ÌÐòд×÷ÖУ¬¾³£ÐèÒª½«¼Ä´æÆ÷»ò»º³åÆ÷ÇåΪ£°£¬ÓÐЧµÄ·½·¨£¬ÊÇʹij¼Ä´æ Æ÷±£³ÖΪ£°£¬ÒÔ±ãËæÊ±Ó¦ÓᣠÒòΪ£¬MOV [ÔÝ´æÆ÷]£¬[ÔÝ´æÆ÷] Ö»Òª 2B,2T£¬ ¼´Ê¹ÊÇÇ建³åÆ÷£¬Ò²±ÈÖ±½ÓÌî £°Îª¼Ñ¡£ Ö»ÊÇ£¬ÈçºÎÁî¼Ä´æÆ÷±£³Ö£°£¬ÔòÒªÏÂÒ»·¬¹¦·òÁË¡£ »¹ÓÐÒ»ÖÖÇé¿ö£¬¾ÍÊÇÔÚÒ»»ØÂ·ÖУ¬Ã¿´Î¶¼ÐèÒª½« AH Ç声£¬´Ëʱ¶ÔËÙ¶ÈÒªÇóºÜ ÑÏ£¬ÓÐÒ»¸öÖ¸Áî CBW ÔΪ½«Ò» ¸ö×Ö·ûת»»ÎªË«×Ö·û£¬Ö»Ðè 1B£¬2T ×îÓÐЧÂÊ¡£¿ÉÊÇÓ¦ ¸Ã×¢Ò⣬´Ëʱ AL ±ØÐëСÓÚ 80H£¬·ñÔò AH ½«³ÉΪ¸ºÊý¡£ 3, ADD AX,AX ÐèÒª 2B,3T²»ÈçÓ㺠SHL AX,1 Ö»Òª2B,2T¡£ 4, MOV AX,4 ³ý·ÇÕâʱ AH ±ØÎª£°£¬·ñÔò£¬Ó¦¸ÃÓ㺠MOV AL,4 ÕâÑù»áÉÙÒ»¸ö×Ö·û¡£ 5, MOV AL,46H MOV AH,0FFH Ϊʲô²»Ð´³É£º MOV AX,0FF46H ²»½öÊ¡ÁËÒ»¸ö×Ö·û£¬ËĸöʱÖÓ£¬¶øÇÒÉÙ´ò¼¸¸ö×Öĸ£¡ 6, CMP CX,0 ÐèÒª 4B£¬4T£¬ µ«ÈôÓ㺠OR CX,CX ÍêÈ«ÏàͬµÄ¹¦ÄÜ£¬µ«Ö»Òª 2B£¬3T¡£ÔÙÈôÓ㺠JCXZ XXXX ÔòÒ»ÌõÖ¸Áî¿ÉÒÔÌæ´úÁ½Ìõ£¬Ê±¿Õ¶¼Ê¡¡£²»ÐÒÕâÌõÖ¸ÁîÏÞÓÃÓÚCX £¬¶ÔÆäËûÔÝÆ÷ÎÞЧ¡£ 7, SUB BX,1 Õâ¸ü²»ÄÜÔÁ£¬4B£¬4TÎÞ¶ËÀË·Ñ¡£ DEC BX ÏֳɵÄÖ¸Á1B£¬2TΪºÎ²»Óã¿ Èç¹ûÊÇ SUB BL,1 Ò²Ó¦¸Ã¿¼ÂÇ´Ëʱ BH µÄÇé¿ö£¬Èô¿ÉÒÔÓà DEC BX È¡´ú£¬ÇÒ²»Ó°Ïìºó¹û£¬Ò಻·ÁÓÃÖ®¡£ 8, MOV AX,[SI] INC SI INC SI Õâ¸Ã°¤ÂîÁË£¬Ò»¶¨ÊÇûÓмÇÊìÖ¸Áȫ²¿¹²4B£¬21T¡£ LODSW ÕýÊÇΪÕâ¸öÄ¿µÄÉè¼Æ£¬È´Ö»Òª 1B,16T¡£ 9, MOV CX,8 MUL CX дÕâ¶Î³ÌÐò֮ʱӦÏÈÑø³Éϰ¹ß£¬Ã¿Óöµ½³Ë¡¢³ý·¨£¬¾Í¸Ã´òÒ»ÏÂËãÅÌ¡£ÒòΪËüÃÇ Ì«ÀË·Ñʱ¼ä¡££¸Î»µÄÒªÆßÊ®¶à¸öʱÖÓ£¬16λÔòÒªÒ»°Ù¶à¡£ËùÒÔÈôÓпÉÄÜ£¬¾¡Á¿Éè·¨Óüò µ¥µÄÖ¸ÁîÈ¡´ú¡£ SHL AX,1 SHL AX,1 SHL AX,1 ÔÀ´Òª 5B£¬137T£¬ÏÖÔÚÖ»Òª 6B£¬6T¡£Èç¹ûCXÄܹ»¶¯Óõϰ£¬Ôòд³É£º MOV CL,3 SHL AX,CL ÕâÑù¸ü¼Ñ£¬¶øÇÒCLÖ®ÖµÔ½´óÔ½ÓÐÀû¡£ÓÃCL×÷Ϊ¼ÆÊýר ÓÃÔÝ´æÆ÷£¬²»½ö½ÚÊ¡¿Õ¼ä£¬ ÇÒÒòÖ¸ÁîϵÔÚ CPUÖÐÖ´ÐУ¬ËÙ ¶ÈÒ²¿ì¡£ ¿ÉÊǾ¿¾¹¿ìÁ˶àÉÙ? ÎÒÃÇ×öÁËЩ²âÊÔ£¬ÒÔ SHLΪÀý£¬ÔÚ10MHZ ƵÂʵĻúÆ÷ÉÏ£¬ ×÷ÁË3072 ¡Á14270´Î£¬Ëù²âµÃʱ¼äΪ£º Ö¸ Áî £ºSHL AX,CL SHL AX,n CL = 0 £¬ 23 Ãë n = 0 £¬ ÎÞЧ CL = 1 £¬ 27 Ãë n = 1 £¬ 14 Ãë CL = 2 £¬ 32 Ãë n = 2 £¬ 28 Ãë CL = 3 £¬ 36 Ãë n = 3 £¬ 42 Ãë CL = 4 £¬ 40 Ãë n = 4 £¬ 56 Ãë CL = 5 £¬ 44 Ãë n = 5 £¬ 71 Ãë CL = 6 £¬ 49 Ãë n = 6 £¬ 85 Ãë CL = 7 £¬ 54 Ãë n = 7 £¬ 99 Ãë ÓÉ´Ë¿ÉÖª£¬ÓÃCLÔÚ´óÓÚ£²Ê±¼´½Ï·Ö±ðÖ´ÐÐÓÐЧ¡£ ´ËÍ⣬Òà¿ÉÀûÓûØÂ·×ö¼Ó¼õ·¨£¬µ«ÒªËãËãÖµ²»ÖµµÃ£¬ÇÒӦעÒâÊÇ·ñÓе÷ÕûÓàÊý µÄÐèÒª¡£ 10, MOV WORD PTR BUF1,0 MOV WORD PTR BUF2,0 MOV WORD PTR BUF3,0 MOV BYTE PTR BUF4,0 .. ÎÒ¼û¹ýÌ«¶àÕâÖÖ³ÌÐò£¬Ò»¼û¾ÍÎÞÃû»ðÆð! ÔÚ³ÌÐòÖУ¬×îºÃ¾³£±£ÁôÒ»¸ö¼Ä´æÆ÷ Ϊ£°£¬ÒÔ±ãÓ¦¸¶ÕâÖÖÇé¿ö¡£¼´Ê¹Ã»ÓУ¬Ò²ÒªÉ跨ʹһ¼Ä´æÆ÷Ϊ£°£¬ÒÔ½Úʡʱ¡¢¿Õ¡£ SUB AX,AX MOV BUF1,AX MOV BUF2,AX MOV BUF3,AX MOV BUF4,AL 14B£¬59TÈ¡´úÁË 24B£¬76T,µ±È»ÖµµÃ¡£Ö»ÊÇ£¬»¹ÊDz» ÈçÊÂÏÈÓÐ×éÖ¯£¬¿¼ÂÇÇå³þ¸÷ ¸ö»º³åÆ÷¼äµÄÓ¦ÓùØÏµ¡£ÒÔÇ°Ãæ¾ÙµÄÀýÀ´Ëµ£¬¼Ù¶¨¸÷»º³åÆ÷ÄÚÊý×Ö£¬¼´ÎªÆäʵ¼ÊλÖÃ¹Ø Ïµ£¬Ôò¿ÉÒÔд³É£º MOV CX,3 ÈçÒÑÖª CH Ϊ£°£¬ÔòÓ㺠MOV CL,3 SUB AX,AX MOV DI,OFFSET BUF1 REP STOSW STOSB Õâ¶Î³ÌÐòÔ½³¤Ô½Õ¼±ãÒË£¬ÏÖÔÚÓÃ10B£¬37T£¬Ò»Ñù»®Ëã¡£ 11,×Ó³ÌÐòÖ®Á¬Ðøµ÷Ó㺠CALL ABCD CALL EFGH Èç¹û ABCD£¬EFGH ¶¼ÊÇ×Ó³ÌÐò£¬ÇÒµ÷ÓõĴÎÊýÉõ¶à£¬ÔòÉÏÊöµ÷Óõķ½Ê½¾ÍÓдý ÉÌȶÁË¡£ÒòΪÁ¬ÐøÁ½´Îµ÷Ó㬲»½öʱ¼äÉϲ»»®Ë㣬¿Õ¼äÒ²ÀË·Ñ¡£ ÈôABCDÒ»¶¨ÓëEFGHÁ¬Óã¬Ó¦½«ABCD·ÅÔÚEFGH֮ǰ£º ABCD: .. EFGH: .. ÏñÕâÑù£¬Ö»Òªµ÷ÓÃABCD¾Í¹»ÁË£¬µ«ÕâÖÖÇéÐζà°ëÊdzÌÐòÔ±µÄÊèºöËùÖ£¬ÈçÁ½¸ö ×Ó³ÌÐò±ØÐè¶ÀÁ¢Ê¹Ó㬶øÉÏÊöÁ¬Ðøµ÷ÓõĻú»á³¬¹ýÁ½´ÎÒÔÉÏ£¬ÔòÓ¦¸Ã¸ÄΪ£º CALL ABCDEF ¶øABCDEFÔòӦΪ£º ABCDEF: CALL ABCD EFGH: .. ÕâÑùµÄд·¨ËٶȲ»»á±äÂý£¬¶ø¿Õ¼äµÄ½ÚÊ¡ÔòÓëµ÷ÓõĴÎÊý³ÉÕý±È¡£ 12,³£ÓÐЩ³ÌÐò£¬µ±´Ó»º³åÆ÷ÖÐÈ¡Êý¾Ýʱ£¬±ØÐ뽫¼Ä´æÆ÷¸ßλÖÃΪ£°¡£È磺 SUB AH,AH MOV AL,BUFFER ÕâʱӦ¸Ã½« BUFFER ÏÈÉèΪ£º BUFFER DB ?,0 È»ºóÓ㺠MOV AX,WORD PTR BUFFER Èç´Ë£¬²»µ«ËÙ¶È¿ìÁË£¬¿Õ¼äҲʡÁË¡£ 13,ÓÐʱ¿´À´¶àÁËÒ»¸öÖ¸Áµ«ÒòΪָÁîµÄÌØÐÔ£¬·´¶ø¸üΪ¾«¼ò¡£È磺 OR ES:[DI],BH OR ES:[DI+1],BL ÕâÑùÐèÒª8B,32T£¬Èç¹û¸ÄÓÃÏÂÃæµÄÖ¸Á XCHG BL,BH OR ES:[DI],BX XCHG BH,BL ÔòÐè7B,28T¡£ 14,PUSH ¼° POP ÊDZ£´æ¼Ä´æÆ÷ÔÖµµÄÖ¸Á¶¼Ö»ÐèÒ»¸ö×Ö·û£¬µ«È´ºÜ·Ñʱ¼ä¡£ PUSH Õ¼ 15T£¬POP Õ¼12T,³ý·Ç²»µÃÒÑ£¬²»¿ÉËæ±ãʹÓá£ÓÐʱÓÉÓÚ×Ó³ÌÐò˵Ã÷ ²»Çå³þ£¬³ÌÐòԱΪÁ˰²È«£¬ÓÖÀÁµÃ¼ì²é£¬±ã°Ñ¼Ä´æÆ÷ͳͳ¶ÑÔÚ¶ÑÕ»ÉÏ¡£ÓÈÆäÊÇÔÚϵͳ³Ì Ðò»ò×Ó³ÌÐòÖУ¬¾³£Óе½¶ÑÕ»É϶ѡ¢È¡µÄ¶¯×÷¡£Êµ¼ÊÉÏ£¬»¨µã¹¦·ò£¬°Ñ¼Ä´æÆ÷Ó¦ÓòéÇå ³þ£¬¾Í¿ÉÒÔÔö½ø²»ÉÙЧÂÊ¡£ ÒªÖªµÀ£¬ÏµÍ³³ÌÐò¼°Ä³Ð©×Ó³ÌÐò³£³£Ó¦Óã¬ÓйØËٶȵÄЧÂÊÉõ´ó£¬Èç¹ûµôÒÔÇá ÐÄ£¬¾ÍÊDz»¸ºÔðÈΣ¡ ±£´æÔÖµµÄ·½·¨ºÜ¶à£¬ÆäÖнÏÓÐЧÂʵÄÊǷŵ½Ò»Ð©²»ÓõļĴæÆ÷Àï¡£ÒÔÎҵľ Ñ飬¶ÑÕ»Æ÷ÓÃ;×îÉÙ£¬ÕýºÃÓÃ×÷ÁÙʱ²Ö¿â¡£µ«×îºÃµÄ°ì·¨£¬»¹ÊǰѳÌÐòÖмĴæÆ÷µÄÓ¦Óà °²ÅŵúÏÇéºÏÀí£¬²»ÒªÀË·Ñ£¬ÒÔÃâ¶ÑµÃÌ«¶à¡£ »¹ÓÐÒ»ÖÖ·½·¨£¬ÊÇÔÚ¸Ã×Ó³ÌÐòÖУ¬²»ÓöÑÕ»µÄÊÖÐø£¬µ«ÁíÉèÒ»¸öÈë¿Ú£¬ÏȽ«¼Ä ´æÆ÷¶ÑÆð£¬ÔÙÀ´µ÷Óò»ÓöÑÕ»µÄ×Ó³ÌÐò¡£ÕâÁ½¸ö²»Í¬µÄÈë¿Ú£¬¿ÉÒÔ·Ö±ðÌṩ¸øÏ£Íû¿ìËÙ ´¦Àí£¬»òÐèÒª±£Áô¼Ä´æÆ÷ÔÖµÕßµ÷Óᣠµ±È»£¬¸ü¼òµ¥ÓÐЧµÄ·½·¨£¬ÔòÊÇ˵Ã÷±¾¶Î³ÌÐòÖÐijЩ¼Ä´æÆ÷½«±»ÆÆ»µ£¬¶øÓɵ÷ ÓÃÕß×ÔÐб£´æÖ®¡£ ¶þ¡¢³ÌÐòÒªÌõÀíͨ˳ 1,ÔڱȽÏÅжϵĹý³ÌÖУ¬ÁÚ½üÖµ²»±ØÁ¬±È¡£ CMP AL,0 JE ABCD0 CMP AL,1 JE ABCD1 CMP AL,2 JE ABCD2 .. ӦΪ£º CMP AL,1 JNE ABCD0 ABCD1: .. ÔÚ±êÌâΪABCD0 ÖУ¬ÔÙ×÷£º JA ABCD2 ÕâÖÖ×ö·¨¶ËÊÓʱ¼äÐ§Òæ¶ø¶¨£¬ËÆ´Ë ABCD1Ö®ËÙ¶È×î¿ì¡£ 2,δ¾É÷˼µÄÁ÷³Ì£º ADD AX,4 ABCD: STOSW ADD AX,4 ADD DI,2 LOOP ABCD .. ÉÔÉÔ¶¯µãÄԽ¾ÍºÃµÃ¶àÁË£º ABCD: ADD AX,4 STOSW INC DI INC DI LOOP ABCD .. 3,´íÎóµÄ´¦Àí·½Ê½£º MOV BX,SI ABCD: MOV BX,[BX] OR BX,BX JZ ABCD1 MOV SI,BX JMP ABCD ABCD1: LODSW .. ÉÏÀýÓ¦¸Ãд³É£º MOV BX,SI ABCD: LODSW OR AX,AX JZ ABCD1 MOV SI,BX JMP ABCD ABCD1: .. 4,´íÎóµÄÁ÷³Ì£º TEST AL,20H JNZ ABCD CALL CDEF[BX] JMP SHORT ABCD1 ABCD: CALL CDEF[BX+2] ABCD1: .. Ó¦¸Ãд³É£º TEST AL,20H JZ ABCD INC BX INC BX ABCD: CALL CDEF[BX] ABCD1: .. 5,ÏÂÃæÊÇʱ¼äµÄËðʧ£º PUSH DI MOV CX,BX REP STOSB POP DI PUSH£¬POP ºÜ·Ñʱ¼ä£¬Ó¦Îª£º MOV CX,BX REP STOSB SUB DI,BX ͬÀí£¬ºÜ¶àʱºòÉÔÉÔÏëһϣ¬¾Í¿ÉÊ¡ÏÂһЩָÁ PUSH CX REP MOVSB POP CX SUB DX,CX Ϊʲô²»¸É´àЩ? SUB DX,CX REP MOVSB 6,ÓжγÌÐò£¬ºÜÓйæÂÉ£¬µ«È´¼«ÎÞЧÂÊ£º X1: TEST AH,1 JZ X2 MOV BUF1,BL X2: TEST AH,2 JZ X3 MOV BUF2,DX ; ·²Ë«ÊýÓÃDX£¬µ¥ÊýÓÃBL X3: TEST AH,4 JZ X4 MOV BUF3,BL X4: .. ; ÒÔϸ÷¶ÎÓëÉÏÊö³ÌÐòÏàËÆ X8: .. ÕâÖÖ½ðÓñÆä±íµÄ³ÌÐò£¬×îûÓÐʵÓüÛÖµ£¬¸ÄµÄ·½·¨Ó¦ÓÉ»º³åÆ÷×ÅÊÖ£¬ÏȰ²ÅÅ³É ÐòÁУ¬ÓÉС¶ø´óÈ磺 BUF1 DB ? BUF2 DW ? BUF3 DB ? BUF4 DW ? .. È»ºó£¬³ÌÐò¸ÄΪ£º MOV DI,OFFSET BUF1 ; µÚÒ»¸ö»º³åÆ÷ MOV AL,BL MOV CX,4 X1: SHR AH,1 JZ X2 STOSB X2: SHR AH,1 JZ X3 MOV [DI],DX INC DI INC DI X3: LOOP X1 7,»ØÂ·×îÅÂǧ»Ø°Ùת£¬²»³©²»Ë³£¬È磺 SUB AH,AH ABCD: CMP AL,BL JB ABCD1 SUB AL,BL INC AH JMP ABCD ABCD1: .. ÒÔÉÏ ABCD1Õâ¸öÈë¿ÚÊǶàÓàµÄ£¬ÏÂÃæ¾ÍºÃµÃ¶à£º MOV AH,-1 ABCD: INC AH SUB AL,BL JA ABCD ADD AL,BL ; »¹Ô .. [ Last edited by sdlj8051 on 2007-2-10 at 10:01 ] |
» ²ÂÄãϲ»¶
276Çóµ÷¼Á¡£ÓаëÄêµç³ØºÍ°ëÄê¸ß·Ö×Óʵϰ¾Àú
ÒѾÓÐ10È˻ظ´
Ò»Ö¾Ô¸ÄϺ½²ÄÁÏר317·ÖÇóµ÷¼Á
ÒѾÓÐ4È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
ÉúÎïѧѧ˶Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
284Çóµ÷¼Á
ÒѾÓÐ10È˻ظ´
һ־Ըɽ¶«´óѧҩѧѧ˶Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
07»¯Ñ§280·ÖÇóµ÷¼Á
ÒѾÓÐ4È˻ظ´
298-Ò»Ö¾Ô¸Öйúũҵ´óѧ-Çóµ÷¼Á
ÒѾÓÐ12È˻ظ´
Çó²ÄÁÏ£¬»·¾³×¨Òµµ÷¼Á
ÒѾÓÐ3È˻ظ´
335Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
sdlj8051
½ð³æ (ÖøÃûдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.1
- ½ð±Ò: 1149.8
- ºì»¨: 3
- Ìû×Ó: 2254
- ÔÚÏß: 18.1Сʱ
- ³æºÅ: 71297
- ×¢²á: 2005-05-30
- רҵ: µç·Óëϵͳ
6Â¥2006-12-01 08:31:45
sdlj8051
½ð³æ (ÖøÃûдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.1
- ½ð±Ò: 1149.8
- ºì»¨: 3
- Ìû×Ó: 2254
- ÔÚÏß: 18.1Сʱ
- ³æºÅ: 71297
- ×¢²á: 2005-05-30
- רҵ: µç·Óëϵͳ
|
8,µ±´¦Àí×ÖÂëʱ£¬ÐèÒª×ÖĸµÄÐòÊý£¬ÓÐÕâÑùµÄд·¨£º CMP AL,60H JA ABCD1 SUB AL,40H ; ´óд×Öĸ ABCD: .. ABCD1: SUB AL,60H ; Сд×Öĸ JMP ABCD ÒªÖªµÀ×ÖĸÂëµÄÌØÉ«ÔÚÓÚ´óдΪ 40H ÖÁ4AH£¬Ð¡Ð´Îª60H ÖÁ6AH £¬ÒÔÉϳÌÐò£¬ ÆäʵֻҪһ¸öÖ¸Áî¾Í¿ÉÒÔÁË£º AND AL,1FH ¼òµ¥Ã÷ÁË£¡ 9,´ó¶àÊýµÄ³ÌÐòÔÚ³ÌÐòÔ±×Ô¼º²âÊÔϺÜÉÙ·¢Éú´íÎ󣬶øÒ»µ©»»Ò»Áí¸öÈËÖ´£¬¾Í»á·¢ÏÖ ´íÎó°Ù³ö¡£ ÆäÔÒòÔÚÓÚд³ÌÐòÕßÒѾ¼Ù¶¨ÁËÕýÈ·µÄÇé¿ö£¬µ±È»²»»áÒÔÃ÷֪Ϊ´íÎóµÄ·½Ê½²Ù ×÷¡£¿ÉÊÇ»»ÁËÒ»¸öÈË£¬Ã»ÓÐÏÈÈëΪÖ÷µÄ³É¼û£¬ºÜ¿ÉÄÜÊäÈëÁË¡¸²»ÕýÈ·¡¹µÄÊý¾Ý£¬½á¹ûÊÇ ÎÊÌâ´ÔÉú¡£ ÒªÖªµÀÕæÕýµÄʹÓÃÕߣ¬¾ø·ÇÉè¼ÆÕß±¾ÈË£¬ÔÚ²Ù×÷¹ý³ÌÖУ¬°´¼ü´íÎóÔÚËùÄÑÃâ¡£ ÕâÖÖ´íÎóÓ¦¸ÃÔÚ³ÌÐòÖÐÊÂÏȼÓÒÔ¼ì²é£¬·²ÊÇÊäÈëÊý¾ÝÓС¸ÕýÈ·¡¢´íÎó¡¹Ö®±ðÕߣ¬´íÎóÐÔ Êý¾ÝÒ»¶¨ÒªÊÂÏȼÓÒÔÅųý¡£ ÕâÑù×ö¿´ÆðÀ´Ëƺõ³ÌÐò²»¹»¾«¼ò£¬¿ÉÊÇÕýÈ·µÄÖØÒªÐÔÔ¶ÔÚ¾«¼òÖ®ÉÏ¡£Ò»µ©·¢Éú ÁË´íÎó£¬ÔÙ¾«¼òµÄ³ÌÐòҲûÓÐʹ ÓüÛÖµ¡£ ´ËÍ⣬ÔÚ³ÌÐòÖг£Óмӡ¢¼õµÄÔËË㣬ÕâʱҲӦ¸Ã×÷ÕýÈ·ÐÔ¼ì²é£¬·ñÔò»á·¢ÉúÉÏ ÊöͬÑùµÄÎÊÌâ¡£ Èý¡¢Ö¸ÁîÓ¦ÓÃÒªÁé»î ÓÐÒ»¶ÎºÜ¼òµ¥µÄ³ÌÐò£¬Æäд×÷µÄ·½·¨Éõ¶à£¬µ«ÊÇÖ¸ÁîÓ¦ÓõÄÁ¼ñÁ£¬»áʹµÃ³ÌÐòµÄЧ ÂÊÏàÈ¥ÌìÉϵØÏ£¬ÄÑÒÔ¹À¼Æ¡£ Õâ¶Î³ÌÐòµÄÓÃ;£¬ÊÇÒª½«Ò»¶ÎÊý¾ÝÖУ¬Ó¢ÎÄ×Ö·û´ó¡¢Ð¡Ð´Ï໥ת»»¡£µ±È»£¬×ª»»µÄ Ñ¡ÔñÒªÓÉʹÓÃÕß¾ö¶¨£¬ÔÚÏÂÃæ³ÌÐòÇÒÂÔȥʹÓýçÃæ£¬¼ÙÉèÒѵÃ֪ת»»µÄ·½Ê½¡£ ÉèÊý¾ÝÔÚ DS:SIÖУ¬Êý¾Ý³¤¶È=CX £¬´óдתСдʱBL=0£¬·´Ö®£¬ÔòBL=1¡£ ÎÒ¼û¹ýÒ»ÖÖд·¨£¬¼òÖ±ÎÞ·¨ÔÁ£º 1: LOOP1: 2: CALL CHANGE 3: JC LOOP11 4: ADD AL,20H 5: JMP SHORT LOOP12 6: LOOP11: 7: SUB AL,20H 8: LOOP12: 9: MOV [SI-1],AL 10: LOOP LOOP1 11: RET 12: CHANGE: 13: LODSB 14: OR BL,BL 15: JZ CHANGS 16: CMP AL,61H 17: JB CHARET 18: CMP AL,7AH 19: JA CHARET 20: STC 21: CHARET: 22: RET 23: CHANGS: 24: CMP AL,41H 25: JB CHARET 26: CMP AL,5AH 27: JA CHARET 28: CLC 29: RET ÕâÖÖ³ÌÐò´íÔÚ°ÑÓÉ12µ½29µÄ³ÌÐòдµÃÌ«³¤£¬¹² 25B£¬Óй²ÏíµÄ¼ÛÖµ£¬ÓÚÊÇ×÷Ϊ×Ó³Ì Ðòµ÷ÓᣠÊÔÏëһϣ¬Ã¿Ò»±ÊÊý¾Ý£¬¶¼Òªµ÷ÓÃÒ»´Î£¬ÀË·ÑËĸö×Ö·ûÊÂС£¬µ«Ã¿´ÎÒª·Ñ 23+20¸ö ʱÖÓÂö³å£¬Êý¾Ý¶àʱ£¬²»à´ÎªÌìÎÄÊý×Ö¡£¸üºÎ¿öÕâ¶Î³ÌÐòдµÃ¼«²î£¬ÔÚ»ØÂ·ÖУ¬ÓÖ¶àÀË ·ÑÁ˼¸Ê®¸öʱÖÓ¡£¹ØÓÚÕâÒ»µã£¬ÏÂÃæ»á¼ÌÐøÌÖÂÛ¡£ ÕÕÉÏÃæÕâ¶Î³ÌÐò£¬ÂԼӸĽø£¬Ð´·¨ÈçÏ£º 1: CHANGE: 2: LODSB 3: OR BL,BL 4: JZ CHANGS 5: CMP AL,61H 6: JB CHARET 7: CMP AL,7AH 8: JA CHARET 9: SUB AL,20H 10: CHANG0: 11: MOV [SI-1],AL 12: CHANG1: 13: LOOP CHANGE 14: RET 15: CHANGS: 16: CMP AL,41H 17: JB CHANG1 18: CMP AL,5AH 19: JA CHANG1 20: ADD AL,20H 21: JMP CHANG1 ÕâÑùµÄд·¨»¹ÊDz»¼Ñ£¬ÒòΪÔÚ»ØÂ·ÖУ¬Óó£ÊýÓë¼Ä´æÆ÷±È½Ï£¬ËٶȽϼĴæÆ÷Ïà±ÈΪ Âý¡£Ó¦¸ÃÏȽ«ÐèÒª±È½ÏµÄÖµ£¬·ÅÔÚÔÝ´æÆ÷DH£¬DL ÖУ¬¸Ä½øÈç´Î£º 1: MOV AH,20H 2: MOV DX,7A61H 3: OR BL,BL 4: JZ CHANGE 5: MOV DX,5A41H 6: CHANGE: 7: LODSB 8: CMP AL,DL 9: JB CHANG1 10: CMP AL,DH 11: JA CHANG1 12: XOR AL,AH 13: MOV [SI-1],AL 14: CHANG1: 15: LOOP CHANGE 16: RET ÒÔÉÏÕâ¶Î³ÌÐò£¬¿Õ¼äС£¬Ëٶȿ죬ÿ±ÊÊý¾Ý£¬Æ½¾ù½öÐè²»µ½40¸öʱÖÓÖµ£¬ÒÔ10 MHZ ¼Æ£¬Ê®Íò±ÊÊý¾Ý£¬Ô¼Ðè°ëÃëÖÓ£¡ Çë×¢Òâ³ÌÐòÖÐËùÓõļ¼ÇÉ£¬ÓÉ£²ÖÁ£¶µÄ·ÖÖ§·¨£¬¾Í±ÈÏÂÃæÕâÖÖд·¨Îª¼Ñ£º 1: OR BL,BL 2: JZ CHAN1 3: MOV DX,5A41H 4: JMP SHORT CHANGE 5: CHAN1: 6: MOV DX,7A61H 7: CHANGE: ÕâÖÖ·ÖÖ§Ò²¿ÉÒÔÓÉÁíÒ»ÖÖ¼¼ÇÉËùÈ¡´ú£¬¼´Ô¤Éè·¨¡£ÊÂÏȽ«ËùÐèÓõIJÎÊý·ÅÔڹ̶¨µÄ »º³åÇøÖУ¬´ËʱȡÓü´¿É£º MOV DX,BWCOM ; ±È½Ï֮ĬÈÏÖµ ÕâÑù³ÌÐòÓÖ¼òµ¥Ð©ÁË£º 1: MOV AH,20H 2: MOV DX,BWCOM 3: CHANGE: 4: LODSB 5: CMP AL,DL 6: JB CHANG1 7: CMP AL,DH 8: JA CHANG1 9: XOR AL,AH 10: MOV [SI-1],AL 11: CHANG1: 12: LOOP CHANGE 13: RET ÒÔÉϽéÉÜΪ±äÁ¿·¨¼¼ÇÉ£¬¼´½«ËùÒª±È½ÏµÄÖµ£¬·ÅÔڼĴæÆ÷ÖС£ÓÉÓڼĴæÆ÷¿ìËÙ¡¢½Ú Ê¡¿Õ¼ä£¬Òò´Ë³ÌÐòЧÂʸߡ£¸üÖØÒªµÄÒ»µã£¬ÊdzÌÐò±¾ÉíµÄµ¯ÐÔ´ó£¬Ö»ÒªÓ¦Ó÷½Ê½Í³Ò»£¬ ÊÂÏȰѲÎÊýÉèÍ×£¬¼´¿É¹²Ïí¡£ ËÄ¡¢»ØÂ·ÖеÄÖ¸Áî »ØÂ·×îÖØÒªµÄÊÇËÙ¶È£¬ÒòΪ±¾¶Î³ÌÐò£¬½«ÔÚ¼ÆÊýÆ÷µÄ·¶Î§Ö®ÄÚ£¬Á¬ÐøÖ´ÐÐÏÂÈ¥¡£Èç ¹û²»Ð¡ÐÄÀË·ÑÁ˼¸¸öʱÖÓÖµ£¬ÔÚ»ØÂ·µÄÀÛ»ýÏ£¬ºÜ¿ÉÄÜʹ³ÌÐò³ÉΪţ²½¡£ ÒªÏë°Ñ»ØÂ·Ð´ºÃ£¬Ò»¶¨Òª¼ÇÇå³þÿ¸öÖ¸ÁîµÄÖ´ÐÐʱÖÓ£¬ÒÔ±ãÑ¡ÔñЧÂÊ×î¸ßÕß¡£Í¬Ê±£¬ ÒªÖªµÀÄÄЩָÁî¿ÉÒÔ»ñµÃÏàͬµÄ´¦ÀíЧ¹û£¬²ÅÄÜÓиü¶àµÄÑ¡Ôñ¡£ Æä´Î£¬ÔÚ»ØÂ·ÖУ¬×î¼É»äÓûº³åÆ÷£¬²»½öÕ¼Óÿռä´ó£¬´¦ÀíËÙ¶ÈÂý£¬¶øÇÒ²»ÄÜÁé»î ÔËÓ㬹¦ÄÜÓÐÏÞ¡£ÁíÍâÒ²Ó¦¼«Á¦±ÜÃâ³£Êý£¬¾¡Á¿Éè·¨¾ÓɼĴæÆ÷Ö´ÐУ¬ÓõÃÇÉÃîʱ£¬³£ »á½«Õû¸ö³ÌÐòµÄЧÂÊÌá¸ß°ÙÊ®±¶¡£ »¹ÓбãÊÇÉÙÓà PUSH£¬POP£¬DIV£¬MULºÍ CALL µÈÀË·ÑʱÖÓµÄÖ¸Áî¡£³ý´ËÖ®Í⣬СÐÄ¡¢ ½÷É÷£¬Éî˼¡¢ÊìÂÇ£¬²ÅÊǰѻØÂ·Ð´ºÃµÄ²»¶þ·¨ÃÅ¡£ ÔÚǰÀýÖУ¬°Ñ±È½Ï³£ÊýµÄÖ¸ÁΪ±È½ÏÔÝ´æÆ÷£¬±ãÊǺܺõÄÖ¤Ã÷¡£Èç¹ûÓó£Êý£¬Á½ ¶Î³ÌÐò¾ö²»¿ÉÄܹ²Ïí£¬Ê±¡¢¿Õ¶¼ÎÞνµØÀË·ÑÁË¡£ ÒÔÏÂÔÙ¾ÙÊýÀý£¬Õ§¿´ÕâËÆºõÓÐЩ´µÃ«Çó´Ã£¬µ«ÊÇ×Ðϸ¼ÆËãÒ»ÏÂËùÀ˷ѵÄʱ¼ä£¬¿ÉÄÜ ¾ÍЦ²»³öÉùÁË¡£ ×ȼٶ¨ÒÔÏ»ØÂ·Ðè´¦ÀíÎåÍò×Ö·ûµÄÊý¾Ý£¬ÆµÂÊΪ 10MHZ£¬ÆäÇé¿öΪ£º 1: LOOP1: 2: LODSB 3: XOR AL,[DI] 4: STOSB 5: LOOP LOOP1 ±¾³ÌÐò¼ÆÊýÆ÷µÈÓÚ50,000£¬Ã¿´ÎÐè 12T+14T+11T+17T=55T ¸öʱÖÓÂö³å ÈôÒÔ50,000´Î¼Æ£¬Ðèʱ 47*50,000/10,000,000 Ã룬¼´Ô¼ËÄ·ÖÖ®Ò»Ãë¡£ Ö»ÒªÉÔÉÔ½«Ö¸Áîµ÷Õûһϣ¬Îª£º 1: LOOP1: 2: LODSW 3: XOR AX,[DI] 4: STOSW 5: LOOP LOOP1 ÕâÑù¼ÆÊýÆ÷Ö»Òª25,000´Î£¬Ã¿´Î 16T+18T+15T+17T=66T Ôò25,000´ÎÐèʱ 66*25,000/10,000,000 Ã룬ԼÁù·ÖÖ®Ò»Ã룬±ÈÇ°ÃæµÄ³ÌÐò¿ìÁ˶þ ·ÖÖ®Ò»¡£ ͬÀí£¬ÔÚ»ØÂ·ÖмӻØÂ·£¬¶øÃ¿¸ö»ØÂ·Ðè 17T£¬Ò²ÊǺܴóµÄÀË·Ñ¡£ÌÈÈô¼Óµ÷Óà CALL Ö¸ÁÔòÐè 23T+20T=43T£¬À˷ѵøü¶à£¬¶ÁÕß²»¿É²»É÷¡£ µ±Ä³Ò»¶Î³ÌÐòÓÃµÃºÜÆµ·±Ê±£¬ÀíÓ¦ÊÓ×÷×Ó³ÌÐò£¬ÀýÈçÏÂÃæµÄ LODAX£º 1: LOOP1: 2: CALL LODAX 3: LOOP LOOP1 4: RET 5: LODAX: 6: LODSW 7: XOR AX,[DI] 8: STOSW 9: RET ÆäʵÕâÊÇ̰Сʧ´ó£¬½öËĸö×Ö·ûµÄ³ÌÐò£¬¾¹ÓÃÈý¸ö×Ö·ûµÄµ÷ÓÃÖ¸ÁîÈ¥½»»»£¬ÊǾø¶Ô µÃ²»³¥Ê§µÄ¡£ ÔÙÈçͬÏÂÃæµÄ³ÌÐò£¬ÆÄÓÐÖµµÃÉÌȶ֮´¦¡£ 1: LOOP1: 2: MOV DX,NUMBER1 3: MOV CX,NUMBER2 4: LOOP2: 5: PUSH CX 6: MOV CX,DX 7: LOOP3: 8: LODSW 9: XOR AX,[DI] 10: STOSW 11: LOOP LOOP3 12: INC DI 13: INC DI 14: POP CX 15: LOOP LOOP2 16: RET µÚ¶þ¸ö»ØÂ·ÊǶàÓàµÄ£¬ÕâÊǸ߼¶ÓïÑÔ³£ÓõĹÛÄ¶Ô»ã±àÓïÑÔÍêÈ«²»ÊÊÓᣠÉԼӸ͝£¬²»ËðÉÏÃæ³ÌÐòÔÓеÄÌõ¼þ£¬µÃµ½£º 1: LOOP1: 2: MOV DX,NUMBER1 3: LOOP2: 4: MOV CX,NUMBER2 5: LOOP3: 6: LODSW 7: XOR AX,[DI] 8: STOSW 9: LOOP LOOP3 10: INC DI 11: INC DI 12: DEC DX 13: JNZ LOOP2 14: RET ÕâÑù»ØÂ·ÉÙÁËÒ»¸ö£¬³ÌÐòÖн«5,6,14,15 ¸÷ÌõÖÐÔÀ´Îª15T+2T+12T+17T=46TµÄʱ¼ä£¬Ê¡ Ϊ12,13,14ÌõµÄ2T+16T+17T=35T¡£ |
2Â¥2006-08-26 09:54:12
sirenshen
ľ³æ (ÕýʽдÊÖ)
- Ó¦Öú: 1 (Ó×¶ùÔ°)
- ½ð±Ò: 4952.1
- Ìû×Ó: 691
- ÔÚÏß: 165.3Сʱ
- ³æºÅ: 86685
- ×¢²á: 2005-08-16
- ÐÔ±ð: GG
- רҵ: È˹¤ÖÇÄÜÓë֪ʶ¹¤³Ì
5Â¥2006-11-17 15:06:47
7Â¥2006-12-25 14:15:57













»Ø¸´´ËÂ¥