XOR BX£¬BX XOR DX£¬DX XOR BP£¬BP NEXT£º LODSB
CMP AL£¬90 JNC NEXT1 CMP AL£¬60 JNC NEXT2 INC BP
JMP DONE NEXT1£ºINC BX
JMP DONE
NEXT2£ºINC DX DONE£º LOOP NEXT
MOV [DI]£¬BX ADD DI£¬2 MOV [DI]£¬DX ADD DI£¬2 MOV [DI]£¬BP
MOV AH£¬4CH INT 21H CODE ENDS
£»BX´æ·Å90¡«100·ÖµÄѧÉú¸öÊý £»DX´æ·Å60~89·ÖµÄѧÉú¸öÊý £»BP´æ·Å00¡«59·ÖµÄѧÉú¸öÊý £»È¡Ñ§Éú·ÖÊý £»ÊÇ·ñ´ó¸ÉµÈÓÚ90·Ö
£»´óÓÚµÈÓÚ90·Ö£¬×ªµ½BX+1
£»ÊÇ·ñ´óÓÚµÈÓÚ60·Ö £»´ó¸ÉµÈÓÚ60·Ö£¬×ªµ½DX+1
£»Ð¡ÓÚ60·Ö£¬BP+1
£»90¡«100·ÖµÄ¸öÊý¼Ó1
£»60¡«89·ÖµÄ¸öÊý¼Ó1
END START
15£®ÉèÓÐÒ»Êý¾Ý¿é£¬¹²ÓÐ100¸ö×Ö½Ú£¬ÊÔÕÒ³öÊý¾Ý¿éÖÐ×î´óÕߣ¬²¢°ÑËüËÍÖÁMAXµ¥ÔªÖС£
½â
CODE SEGMENT
ASSUME CS£ºCODE£¬DS£ºCODE 0RG 100H
START£ºJMP BEGIN BUF
DB 12H£¬56H£¬0ABH£¬¡£¬0FDH£¬00H£»¹²100¸ö×Ö½ÚÎÞ·ûºÅÊý
COUNT EQU $-BUF MAX DB ?
BEGIN£ºMOV AX£¬CS
MOV DS£¬AX
MOV SI£¬OFFSET BUF MOV CX£¬COUNT MOV AL£¬[SI] LOP1£º INC SI
CMP AL£¬[SI] JG LOP2 XCHG AL£¬[SI] »µÔʼÊý¾Ý¡£ LOP2£º LOOP LOP1
£»ÓÃMOV AL£¬[SI]ËÆºõÒªºÃһЩ£¬²»»áÆÆ
MOV MAX£¬AL MOV AH£¬4CH INT 21H CODE ENDS »ò£º
DATA BUF
SEGMENT
DB 12H£¬56H£¬0ABH£¬¡£¬0FDH£¬00H£»¹²100¸ö×Ö½ÚÎÞ·ûºÅÊý END START
COUNT EQU $-BUF MAX DB ? DATA
ENDS
CODE SEGMENT
ASSUME CS£ºCODE£¬DS£ºDATA 0RG 100H
START£ºMOV AX£¬DATA
MOV DS£¬AX
MOV SI£¬OFFSET BUF MOV CX£¬COUNT MOV AL£¬[SI] LOP1£º INC SI
CMP AL£¬[SI] JG LOP2
XCHG AL£¬[SI] ʼÊý¾Ý¡£
LOP2£º LOOP LOP1
MOV MAX£¬AL MOV AH£¬4CH INT 21H CODE ENDS
END START
£»ÓÃMOV AL£¬[SI]ËÆºõÒªºÃһЩ£¬²»»áÆÆ»µÔ
19£®ÔÚÆ«ÒÆÁ¿ÎªFirstºÍTwoµÄÄÚ´æµ¥ÔªÖУ¬·Ö±ðÓÐÁ½¸öË«×Ö½Ú´ø·ûºÅÊýXºÍY¡£ÊÔ±àÒ»³ÌÐò£¬ÈôX£¼Y£¬ÔòÇå³ýÖжϱêÖ¾£¬·ñÔò¾Í°Ñ·½Ïò±êÖ¾ÖÃλ¡£ ½â
DATA SEGMENT FIRST DW X TW0 DW Y DATA ENDS CODE SEGMENT
ASSUME CS£ºCODE£¬DS£ºDATA
START£ºMOV AX£¬DATA
MOV DS£¬AX
MOV SI£¬OFFSET FIRST MOV AX£¬[SI]