D DW ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX CMP A,0 JZ STOP CMP B,0 JZ STOP CMP C,0
JZ STOP ;ÓÐÒ»¸öΪ0£¬È«²¿ÖÃ0
MOV AH,0 ;·ñÔò×÷¼Ó·¨ÔËË㣬·Åµ½D£¬×¢Òâ¼Ó·¨ÔËËã½á¹ûΪ×Ö MOV BH,0 MOV AL,A MOV BL,B ADD AX,BX MOV BL,C ADD AX,BX MOV D,AX JMP STOP NEXT: MOV A,0 MOV B,0 MOV C,0 STOP: MOV AH, 4CH INT 21H CODE ENDS
END START
3.22 ÊÔ·ÖÎöÏÂÁгÌÐò¶Î£¬ËµÃ÷Íê³ÉÁËʲô²Ù×÷£¿³ÌÐòÖ´ÐÐǰºóHEXNUM×Ö½Úµ¥ÔªµÄÄÚÈÝÊÇʲô£¿
ASCNUM DB 41H HEXNUM DB £¿
MOV AH£¬ASCNUM CMP AH£¬39H JBE NEXT SUB AH£¬7
NEXT£ºSUB AH£¬30H
MOV HEXNUM£¬AX HLT ½â£º
'0'~'9'Óë'A'~'F'×é³ÉµÄһλʮÁù½øÖÆÊýµÄASCIIÂëת»»ÎªÒ»Î»Ê®Áù½øÖÆÊý¡£ ³ÌÐòÖ´ÐÐǰ£º[HEXNUM] = ? ³ÌÐòÖ´Ðкó£º[HEXNUM] = 0AH
3.23 ÔÚÊý¾ÝÇøSTR1µ¥Ôª¿ªÊ¼´æ·ÅÒ»³¤¶ÈΪ1¡«256¸ö×Ö·ûµÄ×Ö·û´®¡£ÒªÇó¶Ô¸Ã×Ö·û´®ÖÐÿ¸ö×Ö·ûÔÚ×î¸ßλÅäÉÏÒ»¸öżУÑé루¼´±£³ÖÒ»×Ö½ÚÊýÖÐ1µÄ¸öÊýΪżÊý£©£¬²¢´æ»Øµ½Ôµ¥ÔªÖС£ DATA SEGMENT
STR1 DB 'abcdefghi' LEN1 EQU $-STR1 DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX MOV CX,LEN1 MOV SI,0
ALOOP: MOV AL,STR1[SI]
OR AL,0 ;Óë0Ïà»ò£¬²»Ó°ÏìÔÀ´µÄÖµ
JP CONTINUE ;Èô1µÄ¸öÊýΪżÊý£¬²»×öÈκδ¦Àí OR AL,80H ; Èô1µÄ¸öÊýΪżÊý£¬×î¸ßλÖÃ1 MOV STR1[SI],AL CONTINUE:INC SI
LOOP ALOOP STOP: MOV AH, 4CH INT 21H CODE ENDS
END START
3.24 ÒÑÖªÔÚÊý¾ÝÇøÖÐDATA1ºÍDATA2¿ªÊ¼·Ö±ð´æ·ÅN¸ö×Ö½ÚÊý¾Ý£¬±àÖÆ³ÌÐò¼ì²éÁ½Êý¾Ý¿éÖеÄÊý¾ÝÊÇ·ñÏàͬ¡£ÈôÍêȫһÖ£¬Ôò½«±êÖ¾µ¥ÔªFLAGÖÃFFH£¬·ñÔòÖÃ0¡£²¢½«µÚÒ»´Î³öÏֵIJ»Í¬Êý¾ÝµÄµØÖ··Ö±ð´æ·ÅADR1ºÍADR2µ¥ÔªÖУ¬±àд³ÌÐò¡£ ;¼ÙÉèΪ°´Ë³Ðò±È½Ï£¬·ÇÎÞÐò±È½Ï DATA SEGMENT
DATA1 DB 22H,33H,44H,55H DATA2 DB 22H,33H,44H,66H N EQU $-DATA2 FLAG DB ? ADR1 DW ? ADR2 DW ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,N MOV SI,0 MOV DI,0
ALOOP1: MOV AL,DATA1[SI] CMP AL,DATA2[DI] JNZ NE12 INC SI INC DI LOOP ALOOP1 MOV FLAG,0FFH
JMP EXIT NE12: MOV FLAG,0 MOV ADR1,SI MOV ADR2,DI EXIT: MOV AH, 4CH INT 21H CODE ENDS
END START
3.25 ¶¨ÒåÒ»Êý×éGRADE´æ·ÅÓÐ100¸öѧÉúijÃŹ¦¿ÎµÄ¿¼ÊԳɼ¨£¬ÒªÇó±àÒ»³ÌÐò£¬Í³¼Æ¸÷·ÖÊý¶ÎµÄÈËÊý£¬¼´ÒªÇóͳ¼Æ90¡«100·Ö£¬80¡«89·Ö£¬70¡«79·Ö£¬60¡«69·ÖÒÔ¼°60·ÖÒÔϵĸ÷ÓжàÉÙÈË¡£ DATA SEGMENT
GRADE DB 12,65,77,88,98,23,94,75,85,62 LEN EQU $-GRADE A DB 0 B DB 0 C DB 0 D DB 0 E DB 0 DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,LEN ALOOP1: MOV SI,CX DEC SI
CMP GRADE[SI],60
JB GRE ;<60, E+1->E CMP GRADE[SI],70
JB GRD ;<70, D+1->D CMP GRADE[SI],80
JB GRC ;<80, C+1->C CMP GRADE[SI],90
JB GRB ;<90, B+1->B INC A ;>=90, A+1->A JMP GOON GRB: INC B
JMP GOON GRC: INC C
JMP GOON GRD: INC D
JMP GOON GRE: INC E JMP GOON GOON: LOOP ALOOP1 MOV AH, 4CH INT 21H CODE ENDS
END START
3.26 ±àÒ»³ÌÐò£¬ÔÚÒÔBUFΪÊ×Ö·µÄ×Ö½Úµ¥ÔªÖдæ·ÅÁËCOUNT¸öÎÞ·ûºÅÊý£¬ÕÒ³öÆäÖÐ×î´óÊýËÍMAXµ¥Ôª¡£ DATA SEGMENT
BUF DB 11,23,43,45,67,82,38,48,98,34,67 COUNT EQU $-BUF MAX DB ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX MOV CX,COUNT
MOV AL,0 ;ALÓÃÁ¦´æ·Å×î´óÊý£¬³õֵΪ0 ALOOP: MOV SI,CX DEC SI
CMP AL,BUF[SI] ;´ÓºóÃæÈ¡Êý¾Ý£¬ÓëAL±È½Ï JAE GOON
MOV AL,BUF[SI] GOON: LOOP ALOOP MOV MAX,AL MOV AH, 4CH INT 21H CODE ENDS
END START
3.27 ÀûÓÃϵͳ¹¦Äܵ÷ÓôӼüÅÌÊäÈë10¸öһλÎÞ·ûºÅÊý£¬Çó³öÆäÖÐ×î´óºÍ×îСÊý£¬ÔÚÏÔʾÆ÷ÉÏÊä³öÏÔʾ¡£ DATA SEGMENT
IN_STR DB 'Please Input 10 Num of 0~9:$' MAX_STR DB 0DH,0AH,'MAX Num is:$' MIN_STR DB 0DH,0AH,'MIN Num is:$' MAX DB ? MIN DB ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,IN_STR MOV AH,09H
INT 21H ;ÌáʾÊäÈë10¸öÊý×Ö IND: MOV AH,01H
INT 21H ;ÊäÈëÒ»¸ö×Ö·û CMP AL,30H
JB IND ;<30H,ERROR CMP AL,39H
JA IND ;>39H,ERROR SUB AL,30H
MOV MIN,AL ;µÚÒ»¸öÊý³õʼ»¯MIN MOV MAX,AL ;µÚÒ»¸öÊý³õʼ»¯MAX MOV CX,3 ALOOP: MOV AH,01H
INT 21H ;ÊäÈëÒ»¸ö×Ö·û CMP AL,30H
JB ALOOP ;<30H,ERROR CMP AL,39H
JA ALOOP ;>39H,ERROR SUB AL,30H ;ASCII->Êý CMP AL,MIN
JB GOMIN ;СÓÚ×îСÊý£¬AL->MIN£¬ÊäÈëÏÂÒ»¸öÊý CMP AL,MAX
JA GOMAX ;´óÓÚ×î´óÊý£¬AL->MAX£¬ÊäÈëÏÂÒ»¸öÊý