INT ADD CALL LOOP
21H SI,2 WAIT L1
ÕâÀWAITΪÑÓʱ×Ó³ÌÐò£¬ÓÃÓÚÔÚÏÔʾÐÅÏ¢Ö®¼äµÄÍ£¶Ù¡£
23. ±àд³ÌÐòʵÏÖ½«°üº¬20¸öÊý¾ÝµÄÊý×éARRAY·Ö³ÉÁ½¸öÊý×飺ÕýÊýÊý×éARRAYPºÍ¸ºÊýÊý×éARRAYN£¬²¢·Ö±ð½«ÕâÁ½¸öÊý×éÖÐÊý¾ÝµÄ¸öÊýÏÔʾ³öÀ´¡£
½â£ºÏȱàдһ¸ö×Ó³ÌÐòDISPALD£¬Íê³ÉÒÔ3λʮ½øÖÆÊýÐÎʽÏÔʾ³öALµÄÄÚÈÝ¡£
DISPALD PROC NEAR
PUSH AX PUSH CX PUSH DX XOR AH,AH MOV CL£¬100 DIV CL PUSH AX MOV DL,30H ADD DL,AL MOV AH,2 INT 21H POP AX MOV AL,AH XOR AH,AH MOV CL,10 DIV CL PUSH AX MOV DL,30H ADD DL,AL MOV AH,2
INT 21H POP AX MOV DL,30H ADD DL,AH MOV AH,2 INT 21H POP DX POP CX POP AX RET
DISPALD ENDP
ÔÚ´Ë»ù´¡ÉÏ£¬¸ù¾ÝÌâĿҪÇó£¬ÐèÒªÓõ½3¸öÖ¸Õ룺SIÖ¸ÏòÔ´Êý×éARRAY£¬DIÖ¸ÏòÕýÊýÊý×éARRAYP£¬BXÖ¸Ïò¸ºÊýÊý×éARRAYN¡£
MOV XOR LEA LEA LEA MOV AND JS MOV INC INC JMP MOV INC INC INC
CX,20 DX,DX SI,ARRAY DI,ARRAYP BX,ARRAYN AL,[SI] AL,AL L2 [DI],AL DI DL L3 [BX],AL BX DH SI
L1:
L2:
L3:
LOOP MOV CALL MOV CALL
L1 AL,DL DISPALD AL,DH DISPALD
24. ±àд³ÌÐòʵÏÖÇ󻺳åÇøBUFFERµÄ100¸ö×ÖÖеÄ×îСżÊý£¨´æÈëAX£©¡£ ½â£ºÉèBUFFERÖдæ·ÅµÄÊÇÓзûºÅÊý¡£ L1: L2:
MOV CX,100 LEA SI,BUFFER MOV AX, 7FFFH AND WORD PTR [SI],1 JNZ L2 CMP [SI],AX JGE L2 MOV AX,[SI] ADD SI,2 LOOP L1
225. ±àд³ÌÐòʵÏÖÇó¼¶Êý1½â£ºBLÓÃÓÚ´æ·ÅÏîÊý¡£
?22???n2??µÄǰnÏîºÍ¸Õ´óÓÚ2000µÄÏîÊýn¡£
STACK SEGMENT STACK 'STACK' DW 100H DUP£¨?£© TOP
LABEL WORD
STACK ENDS DATA SEGMENT DB 100H DUP£¨?£© DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK START:
MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX LEA SP,TOP MOV BL,1 MOV CX,0 COUNT:
MOV AL, BL MUL BL ADD CX,AX CMP CX,2000 JA EXIT INC BL JMP COUNT
EXIT:
26. ¶¨ÒåÒ»ÌõºêÖ¸ÁʵÏÖ½«Ö¸¶¨Êý¾Ý¶ÎµÄ¶ÎµØÖ·´«Ë͵½¶Î¼Ä´æÆ÷ES»òDSµÄ¹¦ÄÜ¡£ ½â£º
27. ¶¨ÒåÒ»ÌõºêÖ¸ÁʵÏÖ´Ó¼üÅÌÖÐÊäÈëÒ»¸ö×Ö·û´®£¨ÀûÓÃINT 21HµÄ09ºÅ¹¦ÄÜ£©¡£ 28. ¶¨ÒåÒ»ÌõºêÖ¸ÁʵÏÖÔÚÆÁÄ»ÉÏÊä³ö»Ø³µ¡¢»»ÐС£ 29. ÀûÓÃÆäËüÖ¸ÁîÍê³ÉÓëÏÂÁÐÖ¸ÁîÒ»ÑùµÄ¹¦ÄÜ£º
£¨1£©REP MOVSB£» £¨3£©REP STOSB£»
½â£ºÉèDF=0 £¨1£©
£¨2£©REP LODSB£» £¨4£©REP SCASB¡£
L1: MOV AL,[SI]
MOV ES:[DI],AL INC INC
SI DI
Ïà¹ØÍÆ¼ö£º