Î÷°²½»Í¨´óѧʵÑ鱨¸æ
³É¼¨
¿Î ³Ì_ ΢»úÓë½Ó¿Ú¼¼Êõ µÚ Ò³ ¹² Ò³
ϵ ±ð__ ÉúÎïҽѧ¹¤³Ì_______ __ ʵÑéÈÕÆÚ: Äê Ô ÈÕ ×¨Òµ°à¼¶___ __×é±ð___ __ ½»±¨¸æÈÕÆÚ: Äê Ô ÈÕ ÐÕ Ãû__ ѧºÅ_ _±¨ ¸æ ÍË ·¢ ( ¶©Õý ¡¢ ÖØ×ö ) ͬ ×é ÈË_ ½ÌʦÉóÅúÇ©×Ö
ʵÑéÒ» »ã±àÓïÑÔ³ÌÐòÉè¼Æ
Ò»¡¢ÊµÑéÄ¿µÄ
1¡¢ÕÆÎÕLab6000pʵÑé½Ìѧϵͳ»ù±¾²Ù×÷£» 2¡¢ÕÆÎÕ8088/8086»ã±àÓïÑԵĻù±¾Óï·¨½á¹¹£» 3¡¢ÊìϤ8088/8086»ã±àÓïÑÔ³ÌÐòÉè¼Æ»ù±¾·½·¨
¶þ¡¢ÊµÑéÉ豸
×°ÓÐemu8086Èí¼þµÄPC»ú
Èý¡¢ÊµÑéÄÚÈÝ
1¡¢ÓÐÒ»¸ö10×Ö½ÚµÄÊý×飬ÆäÖµ·Ö±ðÊÇ80H£¬03H£¬5AH£¬FFH£¬97H£¬64H£¬BBH£¬7FH£¬0FH£¬D8H¡£±à³Ì²¢ÏÔʾ½á¹û£º
Èç¹ûÊý×éÊÇÎÞ·ûºÅÊý£¬Çó³ö×î´óÖµ£¬²¢ÏÔʾ£» Èç¹ûÊý×éÊÇÓзûºÅÊý£¬Çó³ö×î´óÖµ£¬²¢ÏÔʾ¡£
2¡¢½«¶þ½øÖÆÊý500Hת»»³É¶þ£Ê®½øÖÆ£¨BCD£©Â룬²¢ÏÔʾ¡°500HµÄBCDÊÇ£º¡±
3¡¢½«¶þ£Ê®½øÖÆÂ루BCD£©7693ת»»³ÉASCIIÂ룬²¢ÏÔʾ¡°BCDÂë7693µÄASCIIÊÇ£º¡±
4¡¢Á½¸ö³¤¶È¾ùΪ100µÄÄÚ´æ¿é£¬ÏȽ«ÄÚ´æ¿é1È«²¿Ð´ÉÏ88H£¬ÔÙ½«ÄÚ´æ¿é1µÄÄÚÈÝÒÆÖÁÄÚ´æ¿é2¡£ÔÚÒÆ¶¯µÄ¹ý³ÌÖУ¬ÏÔÊ¾ÒÆ¶¯´ÎÊý1£¬ 2 £¬3¡0AH¡64H£¨16½øÖÆ£ASCIIÂë²¢ÏÔʾ×Ó³ÌÐò£© 5¡¢¼üÅÌÊäÈëÒ»¸öСд×Öĸ(a~z)£¬×ª»»³É´óд×Öĸ ÏÔʾ£ºÇëÊäÈëÒ»¸öСд×Öĸ(a~z)£º ת»»ºóµÄ´óд×ÖĸÊÇ£º
6¡¢ÊµÏÖ4×Ö½ÚÎÞ·ûºÅÊý¼Ó·¨³ÌÐò£¬²¢ÏÔʾ½á¹û£¬ÈçH + H = xxxxxxxxH
ËÄ¡¢ÊµÑé´úÂë¼°½á¹û
¡¢ÊµÑé´úÂ룺 DATA SEGMENT
SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;´æ½øÊý×é SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA ;°ÑÊý¾ÝµÄ»ùµØÖ·¸³¸øDS MOV DS,AX
MOV DX,OFFSET SHOW ;µ÷ÓÃDOSÏÔʾ×Ö·û´® MOV AH,09H
INT 21H
MOV SI ,OFFSET SZ ;Êý×éµÄÆ«ÒÆµØÖ·¸³¸øSI MOV CX,10 ;´æ½øÊý×éµÄ³¤¶È¸øCX MOV DH,80H ;½«Êý×éµÄµÚÒ»¸öÊýд½øDH NEXT:
MOV BL,[SI] ;½«Êý×éµÄµÚÒ»¸öÊýд½øBL CMP DH,BL ;±È½ÏDHºÍBLÖÐÊýµÄµ½Ð£ JAE NEXT1 ;Èç¹ûDHÖеÄÊý´óÓÚBLÖУ¬½«Ìø×ªµ½NEXT1 MOV DH,BL ;Èç¹ûDHÖеÄÊýСÓÚBLÖУ¬½«BLÖеÄÊý¸³¸øDH NEXT1:
INC SI ;Æ«ÒÆµØÖ·¼Ó1
LOOP NEXT;Ñ»·£¬CX×Ô¼õÒ»Ö±µ½0£¬DHÖдæÊý×éµÄ×î´óÖµ ;½ÓÏÂÀ´µÄ³ÌÐòÊǽ«½«×î´óÖµDHÔÚÆÁÄ»ÉÏÏÔʾÊä³ö MOV BX,02H NEXT2:
MOV CL,4
ROL DH,CL ;½«DHÑ»·ÓÒÒÆËÄλ MOV AL,DH
AND AL,0FH ;½«AL¸ßλÇåÁ㣬һλһλ½øÐÐASCIIÂëת»» CMP AL,09H ;Óë09H±È½Ï´óС
JBE NEXT3 ;ÈôСÓÚ£¬Ìø×ªÖÁNEXT3£¬Ö¤Ã÷ÊýÖµÔÚ0-9Ö®¼ä
ADD AL,07H ;Èô´óÓÚ£¬ÔòÖ¤Ã÷Ϊ×Öĸ£¬ÒòΪ×ÖĸÓëÊý×ÖµÄASCIIÂëÏà²î7£¬ËùÒÔÒª¼ÓÉÏ7
NEXT3:
ADD AL,30H ;ÒòΪת»»ÎªASCIIÂëÒª¼Ó30H MOV DL,AL
MOV AH,2 ;DOSÖжÏÏÔʾ INT 21H DEC BX
JNZ NEXT2 MOV DL,'H' MOV AH,2 INT 21H CODE ENDS
END START ʵÑé½á¹û£º
¡¢ÊµÑé´úÂë DATA SEGMENT
SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H ;´æ½øÊý×é SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
MOV AX,DATA ;°ÑÊý¾ÝµÄ»ùµØÖ·¸³¸øDS MOV DS,AX
MOV DX,OFFSET SHOW ;µ÷ÓÃDOSÏÔʾ×Ö·û´® MOV AH,09H
INT 21H
MOV SI ,OFFSET SZ ;Êý×éµÄÆ«ÒÆµØÖ·¸³¸øSI MOV CX,10 ;´æ½øÊý×éµÄ³¤¶È¸øCX MOV DH,80H ;½«Êý×éµÄµÚÒ»¸öÊýд½øDH NEXT:
MOV BL,[SI] ;½«Êý×éµÄµÚÒ»¸öÊýд½øBL CMP DH,BL ;±È½ÏDHºÍBLÖÐÊýµÄµ½Ð£
JGE NEXT1 ;Èç¹ûDHÖеÄÊý´óÓÚBLÖУ¬½«Ìø×ªµ½NEXT1
;´ËΪÎÞ·ûºÅÊýÓëÓзûºÅÊýµÄΨһ²î±ð£¬JGEÊÇÎÞ·ûºÅÊýµÄÌø×ª MOV DH,BL ;Èç¹ûDHÖеÄÊýСÓÚBLÖУ¬½«BLÖеÄÊý¸³¸øDH NEXT1:
INC SI ;Æ«ÒÆµØÖ·¼Ó1
LOOP NEXT ;Ñ»·£¬CX¼õ1,Ò»Ö±µ½CX¼õΪ0£¬DHÖдæÊý×éµÄ×î´óÖµ ;½ÓÏÂÀ´µÄ³ÌÐòÊǽ«×î´óÖµDHÔÚÆÁÄ»ÉÏÏÔʾÊä³ö MOV BX,02H NEXT2:
MOV CL,4
ROL DH,CL ;½«DHÑ»·ÓÒÒÆËÄλ MOV AL,DH
AND AL,0FH ;½«AL¸ßλÇåÁ㣬һλһλ½øÐÐASCIIÂëת»» CMP AL,09H ;Óë09H±È½Ï´óС
JBE NEXT3 ;ÈôСÓÚ£¬Ìø×ªÖÁNEXT3£¬Ö¤Ã÷ÊýÖµÔÚ0-9Ö®¼ä
ADD AL,07H;Èô´óÓÚ£¬ÔòÖ¤Ã÷Ϊ×Öĸ£¬ÒòΪ×ÖĸÓëÊý×ÖµÄASCIIÂëÏà²î7£¬ËùÒÔÒª¼ÓÉÏ7
NEXT3:
ADD AL,30H ;ÒòΪת»»ÎªASCIIÂëÒª¼Ó30H MOV DL,AL
MOV AH,2 ;DOSÖжÏÏÔʾ INT 21H DEC BX
JNZ NEXT2 MOV DL,'H' MOV AH,2 INT 21H CODE ENDS
END START ʵÑé½á¹û
2¡¢ÊµÑé´úÂë
DATA SEGMENT
BNUM DW 0500H
DNUM DB 4 DUP()
MES DB 'THE BCD OF '500H' IS: ','$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
MOV AX,DATA MOV DS,AX
MOV DX,OFFSET MES ; MOV AH,09H
INT 21H MOV AX,BNUM ; LEA BX,DNUM ; MOV DL,0 ;¼ÆËã1000µÄ¸öÊý COUNT1:
SUB AX,03E8H ;AX-1000 JC NEXT1 ; INC DL ;DL+1 JMP COUNT1 ;NEXT1:
ADD AX,03E8H ;AX+1000 MOV [BX],DL ; INC BX ;BX+1 MOV DL,0 ;DL;¼ÆËã100¸öÊý COUNT2:
SUB AX,0064H ;AX-100 JC NEXT2 INC DL JMP COUNT2 NEXT2:
ADD AX,0064H
MOV [BX],DL ; INC BX MOV DL,0 ;¼ÆËã10¸öÊý COUNT3:
SUB AX,000AH ;AX-10 JC NEXT3 INC DL JMP COUNT3 NEXT3:
ADD AX,000AH
MOV [BX],DL ; INC BX MOV [BX],AL ;½«×Ö·û´®Æ«ÒÆÁ¿Ð´ÈëDX ½«0500H´æÈëAXÖÐ
È¡DNUMµÄÆ«ÒÆÁ¿
²»¹»¼õ£¬¼´ÈôCF=1£¬Óнèλ£¬×ªNEXT1
Ìø×ªAGAIN1 ½«DL(¼´Ç§Î»Êý£©´æÈëDNUMÖÐ ÇåÁã ½«DL(¼´°ÙλÊý£©´æÈëDNUMÖÐ ½«DL(ʮλÊý)´æÈëDNUMÖÐ
¼ÆËã¸öλÊý