¡²Ï°Ìâ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