΢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ(µÚËİæ)¿ÎºóϰÌâ´ð°¸

¡²Ï°Ìâ4.13¡³±à³ÌÖо­³£Òª¼Ç¼ij¸ö×Ö·û³öÏֵĴÎÊý¡£ÏÖ±à³Ì¼Ç¼ij¸ö×Ö·û´®Öпոñ³öÏֵĴÎÊý£¬½á¹û±£´æÔÚSPACEµ¥Ôª¡£

¡²½â´ð¡³ ; Êý¾Ý¶Î

string byte 'Do you have fun with Assembly ?',0 ;ÒÔ0½áβµÄ×Ö·û´® space dword ? ; ´úÂë¶Î mov esi,offset string xor ebx,ebx ;EBXÓÃÓڼǼ¿Õ¸ñÊý again: mov al,[esi] cmp al,0 jz done cmp al,20h ;¿Õ¸ñµÄASCIIÂëÊÇ20H jne next ;²»ÏàµÈ¡¢²»Êǿոñ£¬×ªÒÆ inc bx ;ÏàµÈ¡¢Êǿոñ£¬¿Õ¸ñ¸öÊý¼Ó1 next: inc esi jmp again ;¼ÌÐøÑ­»· done: mov space,ebx ;±£´æ½á¹û

¡²Ï°Ìâ4.14¡³±àд¼ÆËã100¸ö16λÕýÕûÊýÖ®ºÍµÄ³ÌÐò¡£Èç¹ûºÍ²»³¬¹ý16λ×ֵķ¶Î§£¨65535£©£¬Ôò±£´æÆäºÍµ½WORDSUM£¬È糬¹ýÔòÏÔʾ¡®Overflow !¡¯¡£ ¡²½â´ð¡³ ; Êý¾Ý¶Î

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 again: rol esi,4 mov eax,esi and eax,0fh cmp ebx,0 jnz disp cmp eax,0 jz next mov ebx,1 disp: add al,30h call dispc next: loop again done:

; EBX£½0£¬±íʾ¿ÉÄÜÊÇǰµ¼0

; EAXµÍ4λ±£´æµ±Ç°ÒªÏÔʾµÄBCDÂë ; EBX¡Ù0£¬ËµÃ÷²»ÊÇǰµ¼0£¬ÒªÏÔʾ ; EBX£½0£¬ËµÃ÷¿ÉÄÜÊÇǰµ¼0

; EAX£½0£¬ËµÃ÷ÊÇǰµ¼0£¬²»ÏÔʾ

; EAX¡Ù0£¬Ã»ÓÐǰµ¼0ÁË£¬ÁîEBX£½1¡Ù0

¡²Ï°Ìâ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 ; Êǿոñ£¬½øÈëÌÞ³ý¿Õ¸ñ·ÖÖ§

inlp:

next:

done:

dec ecx inc edi

mov al,string[edi] ; Ç°ÒÆÒ»¸öλÖà mov string[edi-1],al cmp edi,ecx jb inlp dec esi ; ¼ÌÐø½øÐÐ cmp esi,0 jnz outlp ; Ϊ0½áÊø lea eax,string ; ÏÔʾ´¦ÀíºóµÄ×Ö·û´® call dispmsg

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

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