΢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ£¨Ç®Ïþ½Ý1°æ£©¿ÎºóϰÌâ´ð°¸ ÏÂÔØ±¾ÎÄ

¡²Ï°Ìâ3.27¡³

±à³Ì½«Ò»¸ö64λÊý¾ÝÂß¼­×óÒÆ3룬¼ÙÉèÕâ¸öÊý¾ÝÒѾ­±£´æÔÚEDX.EAX¼Ä´æÆ÷¶ÔÖС£ ¡²½â´ð¡³

again:

; ´úÂë¶Î mov ecx,3 shl eax,1 rcl edx,1 loop again

¡²Ï°Ìâ3.28¡³

±à³Ì½«Ò»¸öѹËõBCDÂë±äÁ¿£¨ÀýÈç92H£©×ª»»Îª¶ÔÓ¦µÄASCIIÂ룬Ȼºóµ÷ÓÃDISPC×Ó³ÌÐò£¨ÔÚÊäÈëÊä³ö×Ó³ÌÐò¿âÖУ©ÏÔʾ¡£ ¡²½â´ð¡³

bcd

; Êý¾Ý¶Î byte 92h ; ´úÂë¶Î mov al,bcd shr al,4 add al,30h call dispc mov al,bcd and al,0fh add al,30h call dispc

¡²Ï°Ìâ3.29¡³

ÒÔMOVSÖ¸ÁîΪÀý£¬ËµÃ÷´®²Ù×÷Ö¸ÁîµÄÑ°Ö·ÌØµã£¬²¢ÓÃMOVºÍADDµÈÖ¸ÁîʵÏÖMOVSDµÄ¹¦ÄÜ£¨¼ÙÉèDF£½0£©¡£ ¡²½â´ð¡³

MOVSÖ¸ÁîµÄ¹¦ÄÜÊÇ£º

ES:[EDI]¡ûDS:[ESI]£»ESI¡ûESI¡À1/2/4£¬EDI¡ûEDI¡À1/2/4 Óɴ˿ɿ´³ö´®²Ù×÷Ö¸ÁîµÄÑ°Ö·ÌØµã£º

Ô´²Ù×÷ÊýÓüĴæÆ÷ESI¼ä½ÓѰַ£¬Ä¬ÈÏÔÚDSÖ¸ÏòµÄÊý¾Ý¶Î£¬µ«¿ÉÒԸı䣻ĿµÄ²Ù×÷ÊýÓüĴæÆ÷EDI¼ä½ÓѰַ£¬Ö»ÄÜÔÚESÖ¸ÏòµÄ¸½¼ÓÊý¾Ý¶Î£»Ã¿Ö´ÐÐÒ»´Î´®²Ù×÷£¬Ô´Ö¸ÕëESIºÍÄ¿µÄÖ¸ÕëEDI½«×Ô¶¯Ð޸ģº¡À1£¨×Ö½Ú£©£¬¡À2£¨×Ö£©»ò¡À4£¨Ë«×Ö£©¡£Ö¸ÕëµÄÔöÁ¿ºÍ¼õÁ¿¿ØÖÆÓÉDF±ê־ȷ¶¨£¬DF£½0£¬½øÐÐÔöÁ¿£»DF£½1£¬½øÐмõÁ¿¡£

push eax

mov eax,[esi] mov es:[edi],eax add esi,4 add edi,4

¡²Ï°Ìâ3.30¡³

˵Ã÷ÈçϳÌÐòÖ´ÐкóµÄÏÔʾ½á¹û£º

msg

; Êý¾Ý¶Î

byte 'WELLDONE',0 ; ´úÂë¶Î

mov ecx,(lengthof msg)-1

£­ £­17

again: mov ebx,offset msg mov al,[ebx] add al,20h mov [ebx],al add ebx,1 loop again

mov eax,offset msg call dispmsg

Èç¹û½«ÆäÖÐÓï¾ä¡°mov ebx,offset msg¡±¸ÄΪ¡°xor ebx,ebx¡±£¬ÔòÀûÓÃEBX¼ä½ÓѰַµÄÁ½¸öÓï¾äÈçºÎÐ޸ijÉEBX¼Ä´æÆ÷Ïà¶ÔѰַ£¬¾Í¿ÉÒÔʵÏÖͬÑù¹¦ÄÜ£¿ ¡²½â´ð¡³

ÏÔʾ½á¹û£ºwelldone EBX¼Ä´æÆ÷Ïà¶ÔѰַ£º

mov al,msg[ebx] mov msg[ebx],al

¡²Ï°Ìâ3.31¡³

ÏÂÃæ³ÌÐòµÄ¹¦ÄÜÊǽ«Êý×éARRAY1µÄÿ¸öÔªËØ¼Ó¹Ì¶¨Öµ£¨8000H£©£¬½«ºÍ±£´æÔÚÊý×éARRAY2¡£ÔÚ¿Õ°×´¦ÌîÈëÊʵ±µÄÓï¾ä»òÓï¾äµÄÒ»²¿·Ö¡£

array1 array2

again:

; Êý¾Ý¶Î

dword 1,2,3,4,5,6,7,8,9,10 dword 10 dup(?) ; ´úÂë¶Î

mov ecx,lengthof array1 mov ebx,0

mov eax,array1[ebx*4] add eax,8000h

mov ______________ add ebx,__________ loop again

mov array2[ebx*4],eax add ebx,1

¡²½â´ð¡³

¡²Ï°Ìâ3.32¡³

ÉÏ»úʵÏÖ±¾ÕµÄÀýÌâ³ÌÐò£¬±à³ÌʵÏÖ±¾ÕµÄϰÌâ³ÌÐò¡£

µÚ4Õ »ã±àÓïÑÔ³ÌÐòÉè¼Æ

¡²Ï°Ìâ4.1¡³¼ò´ðÌâ

¡²½â´ð¡³

¢Ù µ±Í¬Ò»¸ö³ÌÐò±»²Ù×÷ϵͳ°²Åŵ½²»Í¬µÄ´æ´¢ÇøÓòÖ´ÐÐʱ£¬Ö¸Áî¼äµÄÎ»ÒÆÃ»Óиı䣬Ŀ±êµØÖ·²ÉÓÃÏà¶ÔѰַ¿É·½±ã²Ù×÷ϵͳµÄÁé»îµ÷¶È¡£

¢Ú Êý¾ÝͨÐÅʱ£¬Êý¾ÝµÄijһλÓÃ×ö´«ÊäÊý¾ÝµÄÆæÅ¼Ð£Ñé룬Êý¾ÝÖаüÀ¨Ð£ÑéλÔÚÄڵġ°1¡±µÄ¸öÊýºãÎªÆæÊý£¬¾ÍÊÇÆæÐ£Ñ飻ºãΪżÊý£¬¾ÍÊÇżУÑé¡£

¢Û ÎÞ·ûºÅÊýºÍÓзûºÅÊýµÄ²Ù×÷Ó°ÏìÁ½×鲻ͬµÄ±ê־״̬룬¹ÊÅжÏÁ½¸öÎÞ·ûºÅÊýºÍÓзûºÅÊýµÄ´óС¹ØÏµÒªÀûÓò»Í¬µÄ±ê־λ×éºÏ£¬ËùÒÔÓжÔÓ¦µÄÁ½×éÖ¸Áî¡£

¢Ü Ë«·ÖÖ§½á¹¹ÖÐÁ½¸ö·ÖÖ§ÌåÖ®¼äµÄJMPÖ¸ÁÓÃÓÚʵÏÖ½áÊøÇ°Ò»¸ö·ÖÖ§»Øµ½¹²Í¬µÄ

£­ £­18

³ö¿Ú×÷Óá£

¢Ý ÍêÕûµÄ×Ó³ÌÐò×¢ÊͿɷ½±ã³ÌÐòÔ±µ÷ÓøÃ×Ó³ÌÐò£¬×Ó³ÌÐò×¢ÊͰüÀ¨×Ó³ÌÐòÃû¡¢×Ó³ÌÐò¹¦ÄÜ¡¢Èë¿Ú²ÎÊýºÍ³ö¿Ú²ÎÊý¡¢µ÷ÓÃ×¢ÒâÊÂÏîºÍÆäËû˵Ã÷µÈ¡£

¢Þ ×Ó³ÌÐò±£³Ö¶Ñջƽºâ£¬²ÅÄܱ£Ö¤Ö´ÐÐRETÖ¸Áîʱµ±Ç°Õ»¶¥µÄÄÚÈÝÊÇÕýÈ·µÄ·µ»ØµØÖ·¡£Ö÷³ÌÐòÒ²Òª±£³Ö¶Ñջƽºâ£¬ÕâÑù²ÅÄÜÊÍ·Å´«µÝ²ÎÊýÕ¼ÓõĶÑÕ»¿Õ¼ä£¬·ñÔò¶à´Îµ÷ÓøÃ×Ó³ÌÐò¿ÉÄܾÍÖÂʹ¶ÑÕ»Òç³ö¡£

¢ß ¡°´«Öµ¡±ÊÇ´«µÝ²ÎÊýµÄÒ»¸ö¿½±´£¬±»µ÷ÓóÌÐò¸Ä±äÕâ¸ö²ÎÊý²»Ó°Ïìµ÷ÓóÌÐò£»¡°´«Ö·¡±Ê±£¬±»µ÷ÓóÌÐò¿ÉÄÜÐÞ¸Äͨ¹ýµØÖ·ÒýÓõıäÁ¿ÄÚÈÝ¡£

¢à INCLUDEÓï¾ä°üº¬µÄÊÇÎı¾Îļþ¡¢ÊÇÔ´³ÌÐòÎļþµÄÒ»²¿·Ö£»INCLUDELIBÓï¾ä°üº¬µÄÊÇ×Ó³ÌÐò¿âÎļþ¡£

¢á È¡³¤²¹¶Ì¡£

¢â Windows³ÌÐòÔÚÔËÐÐʱÐèÒª¼ÓÔØÆäÅäÌ׵Ķ¯Ì¬Á´½Ó¿âDLLÎļþ£¬µ±ÆäûÓб»ËÑË÷µ½Ê±¾Í»áÌáʾ²»´æÔÚ¡£ ¡²Ï°Ìâ4.2¡³ÅжÏÌâ ¡²½â´ð¡³

¢Ù ¶Ô ¢Þ ¶Ô

¢Ú ´í ¢ß ¶Ô

¢Û ´í ¢à ´í

¢Ü ´í ¢á ¶Ô

¢Ý ´í ¢â ´í

¡²Ï°Ìâ4.3¡³Ìî¿ÕÌâ

¡²½â´ð¡³

¢Ù Ïà¶ÔѰַ£¬¼ä½ÓѰַ£¬Ö±½ÓѰַ£¬¼ä½ÓѰַ ¢Ú 1256H£¬3280H ¢Û 3721H£¬1 ¢Ü EAH

¢Ý Ñ­»·³õʼ£¬Ñ­»·¿ØÖÆ ¢Þ REPT1±êºÅµÄµØÖ· ¢ß TEST ENDP£¬ENDM ¢à EBP

¢á PUBLIC£¬EXTERN ¢â 38H 0DH 0AH ¡²Ï°Ìâ4.4¡³

ΪÁËÑéÖ¤ÀýÌâ4-1³ÌÐòµÄÖ´Ðз¾¶£¬¿ÉÒÔÔÚÿ¸ö±êºÅǰºóÔö¼ÓÏÔʾ¹¦ÄÜ¡£ÀýÈçʹµÃ³ÌÐòÔËÐкóÏÔʾÊýÂë1234¡£ ¡²½â´ð¡³

labl1:

labl2:

jmp labl1 nop

mov eax,'?' call dispc mov eax,'1' call dispc

jmp near ptr labl2 nop

mov eax,'?' call dispc mov eax,'2'

; Ïà¶ÔѰַ

; Ïà¶Ô½ü×ªÒÆ

£­ £­19

labl3:

labl4: call dispc

mov eax,offset labl3 jmp eax ; ¼Ä´æÆ÷¼ä½ÓѰַ nop

mov eax,'?' call dispc mov eax,'3' call dispc

mov eax,offset labl4 mov nvar,eax jmp nvar ; ´æ´¢Æ÷¼ä½ÓѰַ nop

mov eax,'?' call dispc mov eax,'4' call dispc

¡²Ï°Ìâ4.5¡³

ʹÓá°SHR EAX,2¡±½«EAXÖеÄD1Î»ÒÆÈëCF±êÖ¾£¬È»ºóÓÃJC/JNCÖ¸ÁîÌæ´úJZ/JNZÖ¸ÁîÍê³ÉÀýÌâ4-3µÄ¹¦ÄÜ¡£ ¡²½â´ð¡³

mov eax,56h shr eax,2 jnc nom ...

; ¼ÙÉèÒ»¸öÊý¾Ý ; D1Î»ÒÆÈëCF±êÖ¾

; D1£½0Ìõ¼þ³ÉÁ¢£¬×ªÒÆ ; Óàͬԭ³ÌÐò

¡²Ï°Ìâ4.6¡³

Ö´ÐÐÈçϳÌÐòƬ¶Ïºó£¬CMPÖ¸Áî·Ö±ðʹµÃ5¸ö״̬±êÖ¾CF¡¢ZF¡¢SF¡¢OFºÍPFΪ0»¹ÊÇΪ1£¿Ëü»áʹµÃÄÄЩÌõ¼þ×ªÒÆÖ¸ÁîÖ¸ÁîJccµÄÌõ¼þ³ÉÁ¢¡¢·¢Éú×ªÒÆ£¿

mov eax,20h cmp eax,80h

¡²½â´ð¡³

CF£½1 ZF£½0 SF£½1 OF£½0 PF£½1

¿ÉÒÔʹµÃÌõ¼þ³ÉÁ¢¡¢·¢Éú×ªÒÆµÄÖ¸ÁîÓУºJC JS JP JNZ JNO ¡²Ï°Ìâ4.7¡³

½«ÀýÌâ4-4³ÌÐòÐÞ¸ÄΪʵÏÖżУÑé¡£½¨Òé½øÒ»²½Ôö¼ÓÏÔʾÓйØÌáʾÐÅÏ¢µÄ¹¦ÄÜ£¬Ê¹µÃ³ÌÐò¾ßÓиü¼ÓÁ¼ºÃµÄ½»»¥ÐÔ¡£ ¡²½â´ð¡³

include io32.inc .data

msg1 byte 'Please input a character: ',0

msg2 byte 'The ASCII code of the charater you entered is: ',0 msg3 byte 'The code with even parity is: ',0 .code start: mov eax,offset msg1 call dispmsg call readc

£­ £­20