ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 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