»ã±àÓïÑÔ³ÌÐòÉè¼ÆÊµÑéÆª ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2026/5/15 10:57:26ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

2. ʵÑéÉ豸

΢ÐͼÆËã»ú¡¢emu8086

3. ʵÑéÔ­Àí

·ÖÖ§³ÌÐòÊǸù¾Ý²»Í¬Ìõ¼þÖ´Ðв»Í¬´¦Àí¹ý³ÌµÄ³ÌÐò¡£·ÖÖ§³ÌÐòµÄ½á¹¹ÓÐÁ½ÖÖ£º¡ªÖÖÊǶþ··ÖÖ§£¬¡ªÖÖÊǶà··ÖÖ§¡£ËüÃǵĹ²Í¬ÌصãÊÇÔÚÂú×ãijһÌõ¼þʱ£¬½«Ö´Ðжà¸ö·ÖÖ§ÖеÄij¡ª·ÖÖ§¡£

±¾½ÚµÄʵÑéÄÚÈÝÓëÊýÖµºÍASCIIÂë¼äµÄת»»Óйأ¬ÓÉÓÚ×Ö·û¡ä0¡ä¡«¡ä9¡äµÄASCIIÂëÊÇ30H¡«39H£¬Òò´Ë½«ÊýÖµ0¡«9ת»»³É¶ÔÓ¦µÄASCIIÂëʱ£¬ÐèÒªÔÚÆä»ù´¡ÉϼÓ30H£»ÓÉÓÚ×Ö·û¡äA¡ä¡«¡äF¡äµÄASCIIÂëÊÇ41H¡«46H£¬Òò´Ë½«ÊýÖµA¡«Fת»»³É¶ÔÓ¦µÄASCIIÂëʱ£¬ÐèÒªÔÚÆä»ù´¡ÉϼÓ37H¡£ÁíÍ⣬¶þ½øÖÆÊýÓëÊ®Áù½øÖÆÊýÖ®¼äµÄ¹ØÏµÊÇ£ºÃ¿4λ¶þ½øÖÆÊýµÈÓÚ1λʮÁù½øÖÆÊý¡£

ÔÚÆÁÄ»ÉÏÏÔʾµ¥¸ö×Ö·ûµÄÓï¾äÈçÏ£º MOV DL,<ÒªÏÔʾµÄ×Ö·û> MOV AH,2 INT 21H

4. ʵÑéÄÚÈÝ

´Ó¼üÅÌÊäÈëÒ»¸öÊ®½øÖÆÕýÕûÊýN£¨10¡ÝN¡Ý99£©£¬½«Æäת»»³ÉÊ®Áù½øÖÆÊý£¬×ª»»µÄ½á¹ûÏÔʾÔÚÆÁÄ»ÉÏ¡£Ìáʾ£º¼üÅÌÊäÈëµÄÄÚÈݶ¼ÊÇASCIIÂëÐÎʽ¡£

³ÌÐòÁ÷³ÌͼÈç´íÎó!δÕÒµ½ÒýÓÃÔ´¡£¡£

¿ªÊ¼ ´Ó¼üÅÌÊäÈëÒ»¸öÁ½Î»µÄÊ®½øÖÆÊý·ÅÈë STR¿ªÊ¼µÄ¼üÅÌ»º³åÇøÖÐ µÚÒ»²½£º½«ASCIIÂëÐÎʽµÄÁ½Î»Ê®½øÖÆÊýת»»³É¶þ½øÖÆÊý 1.(STR+2)-30H¡úAH£¨½«Ê®Î»ÊýµÄASCIIÂëת»»³ÉBCDÊý£© 2.(STR+3)-30H¡úAL£¨½«¸öλÊýµÄASCIIÂëת»»³ÉBCDÊý£© *10+AL¡úAL£¨×ª»»³É¶þ½øÖÆÊý±£´æÔÚALÖУ© µÚ¶þ²½£º½«¶þ½øÖÆÊýת»»³ÉÊ®Áù½øÖÆÊý ALÖеĸß4λºÍµÍ4λ·Ö±ð¾ÍÊÇÊ®Áù½øÖÆÊýµÄ¸ßλºÍµÍλ µÚÈý²½£ºÏÔʾ½á¹ûµÄ¸ß4λ 4λȡALµÄ¸ß NÊý¾Ý¡ÝA£¿ Y 7ÊÇA-F£¬Ô¤¼Ó ¼Ó30H£¬×ª»»³ÉASCIIÂëÏÔʾµ½ÆÁÄ»ÉÏ

ͼ 2-4³ÌÐòÁ÷³Ìͼ

³ÌÐò¿ò¼ÜÈçÏ£º data segment

STR db 3,0,3 dup(0)

MES db 'Input a decimal number(10~99):$'

MES1 db 0ah,0dh,¡¯Show decimal number as hex:$' pkey db \ ends

code segment start:

; set segment registers: mov ax, data mov ds, ax mov es, ax

;ÏÔʾ×Ö·û´®Input a decimal number£¨10~99£©£º ;´Ó¼üÅÌÊäÈëÒ»¸öÁ½Î»µÄÊ®½øÖÆÊý

;½«±íʾʮλÊýµÄ×Ö·ûת»»³ÉÊýÖµ£¬±£´æµ½ahÖÐ ;½«±íʾ¸öλÊýµÄ×Ö·ûת»»³ÉÊýÖµ£¬±£´æµ½alÖÐ mov bl, al

;½«ahºÍal±íʾµÄÁ½Î»Ê®½øÖÆÊýת»»³ÉÊ®Áù½øÖÆÊý£¬±£´æµ½alÖÐ mov bl, al

;ÏÔʾ×Ö·û´®Show decimal number as hex£º ;ÏÔʾ½á¹ûµÄ¸ß4λ ;ÏÔʾ½á¹ûµÄµÍ4λ lea dx, pkey mov ah, 9

int 21h ; output string at ds:dx ; wait for any key.... mov ah, 1 int 21h

mov ax, 4c00h ; exit to operating system. int 21h ends

end start ; set entry point and stop the assembler. ±àдEXE TEMPLATE³ÌÐò£¬¹Û²ìÖ´Ðнá¹û¡£

5. ʵÑéϰÌâ

1£©Èç¹ûÊäÈëµÄÊýÔÚ0¡«99·¶Î§ÄÚ£¬ÈçºÎÐ޸ijÌÐò²ÅÄÜʹ½á¹ûÕýÈ·¡£ 2£©Èç¹û¿ÉÒÔÊäÈ븺ÕûÊý£¬ÈçºÎÐ޸ijÌÐò²ÅÄÜʹ½á¹ûÕýÈ·¡£

6. ʵÑ鱨¸æÒªÇó

1£©Ð´³öÍêÕûµÄ³ÌÐò¡£

2£©Ê¹Óò»Í¬Êý¾Ý²âÊÔ³ÌÐò²¢½âÊÍÔËÐнá¹û¡£

1.2.8 Ñ­»·³ÌÐò

1. ʵÑéÄ¿µÄ

1£©Á˽â8086»ã±à³ÌÐòµÄ»ù±¾½á¹¹ 2£©ÕÆÎÕÑ­»·³ÌÐòµÄ»ù±¾Éè¼Æ·½·¨¡£

2. ʵÑéÉ豸

΢ÐͼÆËã»ú¡¢emu8086

3. ʵÑéÔ­Àí

Ñ­»·³ÌÐòÊǰÑÒ»¸ö³ÌÐò¶ÎÖØ¸´Ö´Ðжà´ÎµÄ³ÌÐò½á¹¹¡£Ñ­»·³ÌÐò°üÀ¨Èý¸ö²¿·Ö£º³õʼ»¯²¿·Ö¡¢Ñ­»·Ì塢ѭ»·¿ØÖƲ¿·Ö¡£³õʼ»¯²¿·ÖÓÃÓÚ¶ÔÑ­»·³ÌÐòµÄ²ÎÊý£¨Ñ­»·´ÎÊý¡¢¿ØÖÆÌõ¼þ¡¢Ö¸ÕëµÈ£©ÉèÖóõÖµ¡£Ñ­»·ÌåÊÇÒª±»Öظ´Ö´ÐеijÌÐò¶Î¡£Ñ­»·¿ØÖƲ¿·ÖÓÃÓÚ¾ö¶¨ÊÇ·ñÍ˳öÑ­»·¡£Ñ­»·¿ØÖÆÖ¸Áî¿ÉÒÔÊÇ×ªÒÆÖ¸Áî»òLOOPÖ¸Áî¡£µ±ÒÑ֪ѭ»·´ÎÊý»ò¿ØÖÆÌõ¼þΪZFʱ£¬ÓÃLOOPÖ¸Áî¿ØÖÆÑ­»·ÊÇ×î¼òµ¥µÄ·½·¨¡£

±¾½ÚʵÑéÏÔʾµÄͼÐοÉÒÔ·ÖΪÉÏÏÂÁ½²¿·Ö¡£¶ÔÓÚÉϰ벿·ÖͼÐΣ¬ÐèÒªÉèÖÃÁ½²ãÑ­»·£¬Æä

ÖÐÍâÑ­»·¿ØÖÆÏÔʾ¼¸ÐУ¨³õʼΪ9£¬Ã¿´Î¼õ1£¬¼õµ½0ʱ½áÊø£©£»ÄÚÑ­»·¿ØÖƵ±Ç°ÐÐÏÔʾ¼¸¸ö¡ä*¡ä£¨³õֵΪ1£¬Ã¿´Î¼Ó1£©¡£¶ÔÓÚϰ벿·ÖͼÐΣ¬Ò²ÐèÒªÉèÖÃÁ½²ãÑ­»·£¬ÆäÖÐÍâÑ­»·¿ØÖÆÏÔʾ¼¸ÐУ¨³õʼΪ9£¬Ã¿´Î¼õ1£¬¼õµ½0ʱ½áÊø£©£»ÄÚÑ­»·¿ØÖƵ±Ç°ÐÐÏÔʾ¼¸¸ö¿Õ¸ñ£¨³õֵΪ8£¬Ã¿´Î¼õ1£©ºÍ¼¸¸ö¡ä*¡ä£¨³õֵΪ1£¬Ã¿´Î¼Ó1£©¡£

ÔÚÆÁÄ»ÉÏÏÔʾµ¥¸ö×Ö·ûµÄÓï¾äÈçÏ£º MOV DL,<ÒªÏÔʾµÄ×Ö·û> MOV AH,2 INT 21H

4. ʵÑéÄÚÈÝ

ÔÚÆÁÄ»ÉÏÏÔʾÈçÏÂͼÐΡ£ * ** *** **** ***** ****** ******* ******** ********* * ** *** **** ***** ****** ******* ******** *********

³ÌÐòµÄÁ÷³ÌͼÈç´íÎó!δÕÒµ½ÒýÓÃÔ´¡£Ëùʾ¡£

cl=0? Y ÏÔʾ¡ä*¡ä cl=cl-1 µÚÒ»²½£º´¦ÀíÉϰ벿·ÖͼÐÎ ÍâÑ­»·¼ÆÊýÆ÷bl=9,ÿÐÐÐǺŸöÊýbh=1 ¿ªÊ¼ cl=bh

N

bl=0? N ÏÔʾ»Ø³µ,ÏÔʾ»»ÐÐ bh=bh+1 bl=bl-1

bl=0? N ch=ch-1 bh=bh+1 bl=bl-1 cl=0? N Y cl=bh N cl=0? ÏÔʾ¿Õ¸ñ cl=cl-1 cl=ch µÚ¶þ²½£º´¦Àíϰ벿·ÖͼÐÎ ÍâÑ­»·¼ÆÊýÆ÷ bl=9£¬Ã¿Ðпոñ¸öÊý ch=8£¬Ã¿ÐÐÐǺŸöÊý bh=1 Y ÏÔʾ¡ä*¡ä cl=cl-1 Y ÏÔʾ»Ø³µ£¬ÏÔʾ»»ÐÐ

Y ½áÊø ͼ 2-5³ÌÐòÁ÷³Ìͼ

³ÌÐòµÄ¿ò¼ÜÈçÏ£º

data segment

pkey db \ ends

code segment