΢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ¿ÎºóϰÌâ´ð°¸(¹ùÀ¼Ó¢) ÏÂÔØ±¾ÎÄ

dispa

dispa

dldisp

dldisp1:

dldisp ¢Ç

wdata

.exit 0 ; proc push cx push dx mov cl,4

mov dl,byte ptr wordtemp+1 shr dl,cl call dldisp

mov dl,byte ptr wordtemp+1 and dl,0fh call dldisp

mov dl,byte ptr wordtemp shr dl,cl call dldisp

mov dl,byte ptr wordtemp and dl,0fh call dldisp pop dx pop cx ret endp ; proc push ax or dl,30h cmp dl,39h jbe dldisp1 add dl,7 mov ah,2 int 21h pop ax ret endp end

.model small .stack .data dw 34abh .code .startup push wdata call dispa

17

pop ax ;add sp,2 .exit 0 ; dispa proc push bp mov bp,sp push ax push cx push dx mov ax,[bp+4] mov cl,4 mov dl,ah shr dl,cl call dldisp mov dl,ah and dl,0fh call dldisp mov dl,al shr dl,cl call dldisp mov dl,al and dl,0fh call dldisp pop dx pop cx pop ax pop bp ret dispa endp ; dldisp proc push ax or dl,30h cmp dl,39h jbe dldisp1 add dl,7 dldisp1: mov ah,2 int 21h pop ax ret dldisp endp end 3.36 ½â£º

Èç¹ûÀûÓù²Ïí±äÁ¿´«µÝº¯Êý£¬ÇÒ±äÁ¿¶¨ÒåºÍʹÓò»ÔÚͬһ¸öÔ´³ÌÐòÖУ¬ÐèÒªÀûÓÃ

18

PUBLIC¡¢EXTERNÉùÃ÷¡£

3.37 ½â£º

£¨1£©ºê¶¨ÒåÓÉÒ»¶Ôºê»ã±àαָÁîMACROºÍENDMÀ´Íê³É£¬¸ñʽÈçÏ£º ºêÃû MACRO [Ðβαí] ¡­¡­ £»ºê¶¨ÒåÌå ENDM ºê¶¨ÒåÖ®ºó¾Í¿ÉÒÔʹÓÃËü£¬¼´ºêµ÷Ó㺠ºêÃû [ʵ²Î±í]

£¨2£©ºêµ÷Óõĸñʽͬһ°ãÖ¸ÁîÒ»Ñù£ºÔÚʹÓúêÖ¸ÁîµÄλÖÃдϺêÃû£¬ºó¸úʵÌå²ÎÊý£»Èç¹ûÓжà¸ö²ÎÊý£¬Ó¦°´ÐβÎ˳ÐòÌîÈëʵ²Î£¬Ò²ÓöººÅ·Ö¸ô

£¨3£©ºêÕ¹¿ª£ºÔÚ»ã±àʱ£¬ºêÖ¸Áî±»»ã±à³ÌÐòÓöÔÓ¦µÄ´úÂëÐòÁÐÌæ´ú£¬Õâ¾ÍÊǺêÕ¹¿ª ºêÕ¹¿ªµÄ¾ßÌå¹ý³ÌÊÇ£ºµ±»ã±à³ÌÐòɨÃèÔ´³ÌÐòÓöµ½ÒÑÓж¨ÒåµÄºêµ÷ÓÃʱ£¬¼´ÓÃÏàÓ¦µÄºê¶¨ÒåÌåÍêÈ«Ìæ´úÔ´³ÌÐòµÄºêÖ¸ÁͬʱÓÃλÖÃÆ¥ÅäµÄʵ²Î¶ÔÐβνøÐÐÈ¡´ú

3.38 ½â£º

ºêµ÷ÓõIJÎÊýͨ¹ýÐβΡ¢Êµ²Î½áºÏʵÏÖ´«µÝ£¬¼ò½ÝÖ±¹Û¡¢Áé»î¶à±ä¡£ºê»ã±àµÄÒ»´óÌØÉ«ÊÇËüµÄ²ÎÊý¡£ºê¶¨Òåʱ¼È¿ÉÒÔÎÞ²ÎÊý£¬Ò²¿ÉÒÔÓÐÒ»¸ö»ò¶à¸ö²ÎÊý£»ºêµ÷ÓÃʱʵ²ÎµÄÐÎʽҲ·Ç³£Áé»î£¬¿ÉÒÔÊdz£Êý¡¢±äÁ¿¡¢´æ´¢µ¥Ôª¡¢Ö¸Á²Ù×÷Â룩»òËüÃǵÄÒ»²¿·Ö£¬Ò²¿ÉÒÔÊDZí´ïʽ£»Ö»ÒªºêÕ¹¿ªºó·ûºÏ»ã±àÓïÑÔµÄÓï·¨¹æÔò¼´¿É¡£

3.39 ½â£º

ºê£º½öÊÇÔ´³ÌÐò¼¶µÄ¼ò»¯£ººêµ÷ÓÃÔÚ»ã±àʱ½øÐгÌÐòÓï¾äµÄÕ¹¿ª£¬²»ÐèÒª·µ»Ø£»²»¼õСĿ±ê³ÌÐò£¬Ö´ÐÐËÙ¶ÈûÓиıä

ͨ¹ýÐβΡ¢Êµ²Î½áºÏʵÏÖ²ÎÊý´«µÝ£¬¼ò½ÝÖ±¹Û¡¢Áé»î¶à±ä

×Ó³ÌÐò£º»¹ÊÇÄ¿±ê³ÌÐò¼¶µÄ¼ò»¯£º×Ó³ÌÐòµ÷ÓÃÔÚÖ´ÐÐʱÓÉCALLÖ¸ÁîתÏò¡¢RETÖ¸Áî·µ»Ø£»ÐγɵÄÄ¿±ê´úÂë½Ï¶Ì£¬Ö´ÐÐËٶȼõÂý ÐèÒªÀûÓüĴæÆ÷¡¢´æ´¢µ¥Ôª»ò¶ÑÕ»µÈ´«µÝ²ÎÊý

Ñ¡Ôñ£ººêÓë×Ó³ÌÐò¾ßÓи÷×ÔµÄÌØµã£¬³ÌÐòÔ±Ó¦¸Ã¸ù¾Ý¾ßÌåÎÊÌâÑ¡ÔñʹÓÃÄÇÖÖ·½·¨¡£Í¨³££¬µ±³ÌÐò¶Î½Ï¶Ì»òÒªÇó½Ï¿ìÖ´ÐÐʱ£¬Ó¦Ñ¡Óúꣻµ±³ÌÐò¶Î½Ï³¤»òΪ¼õСĿ±ê´úÂëʱ£¬ÒªÑ¡ÓÃ×Ó³ÌÐò

3.40 ±àдһ¸öºêÖ¸Áîmove doprnd,soprnd£¬ËüʵÏÖÈÎÒâѰַ·½Ê½µÄ×ÖÁ¿Ô´²Ù×÷ÊýsoprndË͵½Ä¿µÄ²Ù×÷Êýdoprnd£¬°üÀ¨´æ´¢µ¥Ôªµ½´æ´¢µ¥ÔªµÄ´«Ë͹¦ÄÜ¡£ ´ð£º move macro doprnd,soprnd mov ax,soprnd mov doprnd,ax endm

3.41 ¶¨ÒåÒ»¸öºêlogical£¬ÓÃËü´ú±í4ÌõÂß¼­ÔËËãÖ¸Áand/or/xor/test¡£×¢ÒâÐèÒªÀûÓÃ3¸öÐÎʽ²ÎÊý£¬²¢¸ø³öÒ»¸öºêµ÷ÓÃÒÔ¼°¶ÔÓ¦ºêÕ¹¿ªµÄÀý×Ó¡£ ´ð£º logical macro lcode,dopd,sopd

19

lcode dopd,sopd endm

ÀýÈ磬Èç¹ûʹÓá°and ax,[bx]¡±Ö¸Á¿ÉÒÔÀûÓøú궨Ò壬д³öºêÖ¸ÁîÈçÏ£º logical and,ax,[bx]

3.42 ½â£º utol macro local next cmp al,¡¯A¡¯ £»Ð¡ÓÚ¡°A¡±²»×ª»» jb next cmp al,¡¯Z¡¯ £»´óÓÚ¡°A¡±²»×ª»» ja next add al,20h £»ÊÇ´óд×ÖĸÔòת»»ÎªÐ¡Ð´×Öĸ next: endm

3.43 ¶¨ÒåÒ»¸öºêmovestr strn,dstr,sstr£¬Ëü½«strn¸ö×Ö·û´ÓÒ»¸ö×Ö·ûÇøsstr´«Ë͵½ÁíÒ»¸ö×Ö·ûÇødstr ½â£º£¨¼ÙÉèËüÃǶ¼ÔÚÊý¾Ý¶Î£© movestr macro strn,dstr,sstr mov cx,ds mov es,cx mov cx,strn mov di,offset dstr mov si,offset sstr cld rep movsb £»£»Öظ´´«ËÍES:[DI]¡ûDS:[SI] endm

µÚÎåÕÂ

5.1 ½â£º

Ö÷´æµÄ×÷Ó㺱£´æÕýÔÚʹÓõġ¢´¦Óڻ״̬µÄ³ÌÐòºÍÊý¾Ý¡£

¸¨´æµÄ×÷Ó㺳¤ÆÚ±£´æ³ÌÐòÎļþºÍÊý¾ÝÎļþ£¬ÔÚÐèҪʱ½«ÕâЩÎļþµ÷ÈëRAMÄÚ´æ²¢¼¤»îʹÓá£

cacheµÄ×÷ÓÃ:Ìá¸ß¶Ô´æ´¢Æ÷µÄ·ÃÎÊËÙ¶È¡£

ÐéÄâ´æ´¢£ºÓÉÈÝÁ¿½ÏСµÄÖ÷´æºÍÈÝÁ¿½Ï´óµÄ¸¨´æ¹¹³É£¬ÆäÄ¿±êÊÇÀ©´ó³ÌÐòÔ±ÑÛÖеÄÖ÷´æÈÝÁ¿¡£

Çø±ð£ºÍ¨¹ý´æ´¢Æ÷·ÃÎÊÖ¸ÁîÓû§¿É¶ÔÖ÷´æ½øÐÐËæ»ú·ÃÎÊ£»Óû§ÀûÓòÙ×÷ϵͳÌṩµÄÓû§ÃüÁîºÍ¹¦Äܵ÷ÓöԸ¨´æ½øÐзÃÎÊ¡£

5.2 ÔÚ°ëµ¼Ìå´æ´¢Æ÷ÖУ¬RAMÖ¸µÄÊÇ Ëæ»ú´æÈ¡´æ´¢Æ÷ £¬Ëû¿É¶Á¿Éд£¬µ«¶ÏµçºóÐÅÏ¢Ò»°ã»á ¶ªÊ§ £»¶øROMÖ¸µÄÊÇ Ö»¶Á´æ´¢Æ÷ £¬Õý³£¹¤×÷ʱֻÄÜ´ÓÖÐ ¶ÁÈ¡ ÐÅÏ¢£¬µ«¶ÏµçºóÐÅÏ¢ ²»»á¶ªÊ§ ¡£ÒÔEPROMоƬ2764ΪÀý£¬Æä´æ´¢ÈÝÁ¿Îª8K¡Á8룬¹²ÓÐ 8 ÌõÊý¾ÝÏß

20