΢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ(Ç®Ïþ½Ý°æ)¿ÎºóϰÌâ´ð°¸

array word 2005,2008,98 dup (1394) ; ¼ÙÉè100¸ö16λÕýÕûÊý wordsum word ?

error byte 'Overflow !',0 ; ´úÂë¶Î and ebx,0 mov ecx,100 xor ax,ax

again: add ax,array[ebx*2] jc over inc ebx loop again mov wordsum,ax

over: mov eax,offset error call dispmsg ¡²Ï°Ìâ4.15¡³

ÔÚÒ»¸öÒÑÖª³¤¶ÈµÄ×Ö·û´®ÖвéÕÒÊÇ·ñ°üº¬¡°BUG¡±×Ó×Ö·û´®¡£Èç¹û´æÔÚ£¬ÏÔʾ¡°Y¡±£¬·ñÔòÏÔʾ¡°N¡±¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î

string byte 'If you find any error in the program, you can DEBUG it.' count = sizeof string bug byte 'BUG' ; ´úÂë¶Î mov ecx,count mov edi,offset string L1: mov esi,offset bug push edi mov edx,sizeof bug LN: mov al,[esi] cmp [edi],al jne L2 inc esi inc edi dec edx jne LN pop edi mov al,'Y' jmp L3 L2: pop edi inc edi loop L1 mov al,'N' L3: call dispc ¡²Ï°Ìâ4.16¡³

Ö÷´æÖÐÓÐÒ»¸ö8λѹËõBCDÂëÊý¾Ý£¬±£´æÔÚÒ»¸öË«×Ö±äÁ¿ÖС£ÏÖÔÚÐèÒª½øÐÐÏÔʾ£¬µ«ÒªÇó²»ÏÔʾǰµ¼0¡£ÓÉÓÚλÊý½Ï¶à£¬ÐèÒªÀûÓÃÑ­»·ÊµÏÖ£¬µ«ÈçºÎ´¦Àíǰµ¼0ºÍÊý¾ÝÖмäµÄ0ÄØ£¿²»·ÁÉèÖÃÒ»¸ö±ê¼Ç¡£±à³ÌʵÏÖ¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î

bcd dword 00371002h ; ´úÂë¶Î mov esi,bcd cmp esi,0 jnz goon mov al,'0' call dispc jmp done

goon: mov ecx,8 xor ebx,ebx ; EBX£½0£¬±íʾ¿ÉÄÜÊÇǰµ¼0 again: rol esi,4 mov eax,esi and eax,0fh ; EAXµÍ4λ±£´æµ±Ç°ÒªÏÔʾµÄBCDÂë cmp ebx,0 ; EBX¡Ù0£¬ËµÃ÷²»ÊÇǰµ¼0£¬ÒªÏÔʾ jnz disp ; EBX£½0£¬ËµÃ÷¿ÉÄÜÊÇǰµ¼0 cmp eax,0 jz next ; EAX£½0£¬ËµÃ÷ÊÇǰµ¼0£¬²»ÏÔʾ mov ebx,1 ; EAX¡Ù0£¬Ã»ÓÐǰµ¼0ÁË£¬ÁîEBX£½1¡Ù0 disp: add al,30h call dispc

next: loop again done:

¡²Ï°Ìâ4.17¡³

ÒÑÖªÒ»¸ö×Ö·û´®µÄ³¤¶È£¬ÌÞ³ýÆäÖÐËùÓеĿոñ×Ö·û¡£Çë´Ó×Ö·û´®×îºóÒ»¸ö×Ö·û¿ªÊ¼Öð¸öÏòǰÅжϡ¢²¢½øÐд¦Àí¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î

string byte 'Let us have a try !',0dh,0ah,0 ; ´úÂë¶Î mov ecx,sizeof string cmp ecx,2 jb done lea eax,string ; ÏÔʾ´¦ÀíǰµÄ×Ö·û´® call dispmsg mov esi,ecx dec esi

outlp: cmp string[esi],' ' ; ¼ì²âÊÇ·ñÊǿոñ jnz next ; ²»Êǿոñ¼ÌÐøÑ­»· mov edi,esi ; Êǿոñ£¬½øÈëÌÞ³ý¿Õ¸ñ·ÖÖ§ dec ecx inlp: inc edi mov al,string[edi] ; Ç°ÒÆÒ»¸öλÖà mov string[edi-1],al cmp edi,ecx jb inlp

next: dec esi ; ¼ÌÐø½øÐÐ cmp esi,0 jnz outlp ; Ϊ0½áÊø

lea eax,string ; ÏÔʾ´¦ÀíºóµÄ×Ö·û´® call dispmsg done:

¡²Ï°Ìâ4.18¡³

µÚ3ÕÂϰÌâ3.14ÔÚÆÁÄ»ÉÏÏÔʾASCII±í£¬ÏÖ½öÔÚÊý¾Ý¶ÎÉèÖñí¸ñ»º³åÇø£¬±à³Ì½«ASCII´úÂëÖµÌîÈëÁô³öλÖõıí¸ñ£¬È»ºóµ÷ÓÃÏÔʾ¹¦ÄÜʵÏÖ£¨ÐèÒªÀûÓÃË«ÖØÑ­»·£©¡£ ¡²½â´ð¡³ include io32.inc .data

table byte ' |0 1 2 3 4 5 6 7 8 9 A B C D E F',13,10 byte '---+-------------------------------',13,10 tab1byte 6 dup(36 dup(?),13,10) byte 0 .code start: mov ebx,offset tab1 mov edx,'| 02' mov ax,2020h mov esi,6

again0: mov [ebx],edx add ebx,4 mov ecx,16

again1: mov word ptr [ebx],ax add ebx,2 inc al loop again1 add ebx,2 add edx,1 dec esi jnz again0 mov eax,offset table call dispmsg exit 0 end start ¡²Ï°Ìâ4.19¡³

Çë°´ÈçÏÂ˵Ã÷±àд×Ó³ÌÐò£º

×Ó³ÌÐò¹¦ÄÜ£º°ÑÓÃASCIIÂë±íʾµÄÁ½Î»Ê®½øÖÆÊýת»»ÎªÑ¹ËõBCDÂë Èë¿Ú²ÎÊý£ºDH£½Ê®Î»ÊýµÄASCIIÂ룬DL£½¸öλÊýµÄASCIIÂë ³ö¿Ú²ÎÊý£ºAL£½¶ÔÓ¦BCDÂë ¡²½â´ð¡³ asctob proc shl dh,4 mov al,dh and dl,0fh or al,dl

ret

asctob endp ¡²Ï°Ìâ4.20¡³

³Ë·¨µÄ·ÇѹËõBCDÂëµ÷ÕûÖ¸ÁîAAMÖ´ÐеIJÙ×÷ÊÇ£ºAH¡ûAL¡Â10µÄÉÌ£¬AL¡ûAL¡Â10µÄÓàÊý¡£ÀûÓÃAAM¿ÉÒÔʵÏÖ½«ALÖеÄ100ÄÚÊý¾Ýת»»ÎªASCIIÂ룬³ÌÐòÈçÏ£º xor ah,ah aam add ax,3030h

ÀûÓÃÕâ¶Î³ÌÐò£¬±àдһ¸öÏÔʾALÖÐÊýÖµ£¨0¡«99£©µÄ×Ó³ÌÐò¡£ ¡²½â´ð¡³ disp99 proc xor ah,ah aam add ax,3030h push ax mov al,ah call dispc pop ax call dispc ret

disp99 endp ¡²Ï°Ìâ4.21¡³

±àдһ¸öÔ´³ÌÐò£¬ÔÚ¼üÅÌÉϰ´Ò»¸ö¼ü£¬½«Æä·µ»ØµÄASCIIÂëÖµÏÔʾ³öÀ´£¬Èç¹û°´ÏÂESC¼ü£¨¶ÔÓ¦ASCIIÂëÊÇ1BH£©Ôò³ÌÐòÍ˳ö¡£Çëµ÷ÓÃÊéÖеÄHTOASC×Ó³ÌÐò¡£ ¡²½â´ð¡³ ; ´úÂë¶Î£¬Ö÷³ÌÐò again: call readc cmp al,1bh jz done mov bl,al mov al,':' call dispc mov al,bl rol al,4 call htoasc ; µ÷ÓÃ×Ó³ÌÐò call dispc ; ÏÔʾһ¸ö×Ö·û mov al,bl call htoasc ; µ÷ÓÃ×Ó³ÌÐò call dispc ; ÏÔʾһ¸ö×Ö·û call dispcrlf jmp again done:

¡²Ï°Ìâ4.22¡³

±àдһ¸ö×Ó³ÌÐò£¬ËüÒÔ¶þ½øÖÆÐÎʽÏÔʾEAXÖÐ32λÊý¾Ý£¬²¢Éè¼ÆÒ»¸öÖ÷³ÌÐòÑéÖ¤¡£ ¡²½â´ð¡³ ; ´úÂë¶Î£¬Ö÷³ÌÐò mov eax,8F98FF00H call dispbd ; µ÷ÓÃ×Ó³ÌÐò

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)