µÚÆß´Î»ã±àÓïÑÔʵÑ鱨¸æ ÏÂÔØ±¾ÎÄ

»ã ±à Óï ÑÔ Êµ Ñé ±¨ ¸æ

Assembly Language Programming Lab Reports

______________________________________________________________________________ °à¼¶£º ____ ÐÕÃû£º__ __ ѧºÅ£º___ʵÑéÈÕÆÚ£º______ ѧԺ£º ______ _____ רҵ£º____ ______

ʵÑé˳Ðò£º_______ Ô­´´£º____ ___ ʵÑéÃû³Æ£º_____ÖжϳÌÐòÉè¼Æ_______ ʵÑé·ÖÊý£º_______ ¿¼ÆÀÈÕÆÚ:________ Ö¸µ¼½Ìʦ£º

______________________________________________________________________________

Ò»£®ÊµÑéÄ¿µÄ

1.ÕÆÎÕÖжϵÄÀàÐÍ£¬Èí¼þÖжϺÍÓ²¼þÖÕ¶Ë¡£

2.ÕÆÎÕÖжϴ¦ÀíµÄ¹ý³Ì£¬Àí½âÖжÏÀàÐÍ£¬ÖжÏÏòÁ¿¡£ 3.ÕÆÎÕϵϵͳÖжÏÒÔ¼°¹¦Äܵ÷Óᣠ4.¿ÉÒÔ×Ô¼ºÉè¼ÆÖжϳÌÐò¡£

______________________________________________________________________________

¶þ£®ÊµÑé»·¾³

²Ù×÷ϵͳ£ºwindows 8.1 ±àÒë³ÌÐò£ºmasm 5.0

______________________________________________________________________________

Èý£®ÊµÑéÔ­Àí

1.CPUÏìÓ¦ÖжϵÄÌõ¼þ£º

£¨1£©µ±Ç°µÄÖ¸ÁîÖÜÆÚ½áÊø£»

£¨2£©²ÉÑùµ½ÓÐЧµÄÖжÏÇëÇóÐźţ»

£¨3£©Èç¹ûÊÇ¿ÉÆÁ±ÎµÄÖжÏÇëÇóINTR£¬¼ì²éÖжÏÔÊÐí±êÖ¾IFÊÇ·ñΪ1£¬¼´ÖжÏ

¿ª·Å£»

£¨4£©CPUÕýÔÚÖ´ÐеijÌÐò²»ÊÇÖжϷþÎñ³ÌÐò£¬»òÕßÊÇÖжÏÓÅÏȼ¶½ÏµÍµÄÖжϷþ

Îñ³ÌÐò¡£ 2.ÖжÏÏìÓ¦¹ý³Ì£º

£¨1£©Ê×ÏȽ«±êÖ¾¼Ä´æÆ÷FLAGSѹÈë¶ÑÕ»£¬½«ÏÝÚå±êÖ¾TF´æÈëÔÝ´æÆ÷£» £¨2£©½«TFÓëIFÇåÁ㣬IF=0¼´¹ØÖжϣ»

£¨3£©½«ÕýÔÚÔËÐгÌÐòµÄ¶ÏµãCSºÍIPѹÈë¶ÑÕ»£»

£¨4£©´ÓÖжÏÏòÁ¿±íÖÐÈ¡³öÖжÏÏòÁ¿¸ßÁ½¸ö×Ö½ÚµÄÄÚÈÝËÍÈëCS£¬È¡³öµÍÁ½¸ö×Ö½Ú

µÄÄÚÈÝËÍÈëIP£»

£¨5£©×ªµ½ÏàÓ¦ÖжÏÔ´µÄÖжϷþÎñ³ÌÐòÈë¿Ú£¬Ö´ÐÐÖжϴ¦Àí·þÎñ³ÌÐò¡£ 3.±àдÈí¼þÖжϴ¦Àí×Ó³ÌÐò²½Ö裺 £¨1£©±£»¤ÏÖ³¡£»

£¨2£©STI¿ªÖжÏÖ¸ÁÈçÔÊÐíÖжÏǶÌ×£¬Ôò¶Ï¿ªÖжϣ» £¨3£©´¦ÀíÖжϣ»

£¨4£©CLI¹ØÖжÏÖ¸Á £¨5£©»Ö¸´ÏÖ³¡£»

£¨6£©IRETÖ¸Á·µ»Ø±»ÖжϵijÌÐò¡£

______________________________________________________________________________ ËÄ£®ÊµÑé²½Öè¼°½á¹û·ÖÎö

1. д³ö¶¨ÖÆ×Ô¼ºµÄÖжϴ¦Àí³ÌÐòµÄÉè¼Æ·½·¨£¬Ô´´úÂë¡£µ÷ÓÃ×Ô¼ºÐ´µÄÖжϴ¦Àí

1

³ÌÐò¡£

Éè¼ÆÒ»¸öЦÁ³ÖжÏINT 60H¡£ Éè¼ÆË¼Â·£º

£¨1£©Èç¹û´¥·¢¸ÃÖжϣ¬ÔÚÆÁÄ»ÉÏÏÔʾһ´®Ð¦Á³£» £¨2£©Ñ¡Ôñ60HºÅÖжÏÀàÐÍ×÷ΪЦÁ³ÖжÏÀàÐÍ£» £¨3£©±àдÖжÏ×Ó³ÌÐòsmile_face£¬ÏÔʾһ´®Ð¦Á³£» £¨4£©½«¸ÃÖжÏ×Ó³ÌÐòµÄÈë¿ÚµØÖ·Ð´ÈëÖжÏÏòÁ¿±íÖУ» £¨5£©±àдӦÓóÌÐò£¬´¥·¢60HºÅÖжϣ»

£¨6£©ÖжϽáÊøºó£¬·µ»ØÓ¦ÓóÌÐò¼ÌÐøÖ´ÐУ» £¨7£©°ÑÖжÏ×Ó³ÌÐòפÁôÔÚÄÚ´æÖС£ Ô´´úÂ룺

.model small .stack .code

mess1 db 0ah,0dh,'enter interrupt!',0ah,0dh,'$' mess2 db 'exit interrupt!$'

mess3 db 0ah,0dh,'Continue or Quit(c/q)?$' main proc far start:

mov ax,@code mov ds,ax

mov dx,offset smile_face mov ax,seg smile_face mov ds,ax

mov al,60h mov ah,25h int 21h conti:

mov dx,offset mess1 mov ah,9 int 21h

int 60h

mov dx,offset mess2 mov ah,9 int 21h

mov dx,offset mess3 mov ah,9 int 21h mov ah,1 int 21h cmp al,'c' je conti mov al,0

mov ah,31h

2

mov dx,smiend-smigin+16 int 21h

main endp smile_face proc far smigin:

sti mov cx,10

leng: mov dl,01h mov ah,2 int 21h loop leng

mov dl,0dh int 21h mov dl,0ah int 21h

cli iret smiend:nop

smile_face endp end start µ÷ÓýØÍ¼£º

2. ¶ÔÒÑÓÐÖжϴ¦Àí³ÌÐò½øÐÐÐ޸ġ£

Ô­³ÌÐò£º½«´óдµÄ×Ö·û´®ÔÚÆÁÄ»ÉÏÌØ¶¨Î»ÖÃÓÃСд×ÖĸÏÔʾ³öÀ´¡£ ¸ÄΪ£º½«Ð¡Ð´µÄ×Ö·û´®ÔÚÆÁÄ»ÉÏÌØ¶¨Î»ÖÃÓôóд×ÖĸÏÔʾ³öÀ´¡£ Éè¼ÆË¼Â·£º

3