»ã±àÓïÑÔÆÚÄ©¸´Ï°Ìâ´óÈ«£¨Ãâ·Ñ£©

loading ·ÖÏí 2026-8-15 ÏÂÔØÎĵµ

16¡¢³ÌÐò¶ÎÈçÏ£º CXFX

BLK1 DB 46£¬84£¬34£¬£­5£¬20£¬122£¬73 :

MOV CX£¬7

LEA S1£¬BLK1

NEXT£º MOV AL£¬[SI] INC SI

TEST AL£¬81H LOOPZ NEXT MOV BL£¬[SI] :

Çë»Ø´ð³ÌÐò¶ÎÔËÐк󣺣¨AL£©£½£ß£ß£ß5»ò0FBH£ß£ß £¨BL£©£½£ß£ß£ß14H»ò20£ß£ß£ß£ß£ß£ß 17¡¢ÏÂÃæ³ÌÐòµÄ¹¦ÄÜÊÇʲô£¿ CXFX STRING DB 100 DUP(?) MOV AX,SEG STRING MOV DS,AX

LEA SI,STRING MOV CX,100 LAB: MOV AL,[SI] CMP AL,¡¯a¡¯ JB LAB1

CMP AL,¡¯z¡¯ JA LAB1 SUB AL,32 MOV [SI],A

LAB1: INC SI

LOOP LAB

½«STRINGÀïµÄСд×Öĸ¡¯a¡¯-¡®z¡¯×ª³ÉÏàÓ¦µÄ´óд×Öĸ¡¯A¡¯-¡®Z¡¯ 18¡¢ÏÖÓÐÏÂÁÐÊý¾Ý¶Î£º CXTK DATA SEGMENT

STR1 DB¡®ABCDEFGHIJKL' COUNT EQU £­STR1 BUF DB COUNT DUP£¨0£© DATA ENDS

ÏÂÃæ³ÌÐò¶ÎÊÇʵÏÖ°ÑSTR1ÖÐËùÓÐ×Ö·ûÄæÏò´«Ë͵½BUF»º³åÇø£¨¼´STR1ÖеÚÒ»¸ö×Ö·ûË͵½BUFµÄ×îºóÒ»¸öµ¥Ôª£¬STR1ÖÐ×îºóÒ»×Ö·ûË͵½BUFµÄµÚÒ»¸öµ¥Ôª£©¡£Ê԰ѳÌÐòÖÐËù¿ÕȱµÄÖ¸ÁîÌîÉÏ¡£

MOV SI£¬OFFSET BUF£­1 MOV DI£¬OFFSET BUF

MOV CX£¬COUNT

£ß£ß£ßCLD£ß»ò STD£ß£ß£ß£ß£ß LOOP:MOVSB

26

______ SUB SI£¬2__»ò____ ADD DI£¬2__

LOOP LOP

19¡¢ÏÂÊö³ÌÐò¶ÎÍê³É¼ÆËã2~20Ö®¼äµÄżÊýµÄºÍ£¬²¢´æÓÚAXÖС£Ê԰ѿհ״¦ÌîÉÏÊʵ±µÄÖ¸Áî¡£ CXTK

XOR AX£¬AX

MOV BX£¬0

MOV CX£¬10»òMOV CX£¬0AH CONT£º ADD AX£¬BX

ADD BX£¬2 LOOP CONT

20¡¢BEGΪÆðʼµØÖ·µÄ´æ´¢ÇøÓòÖдæ·ÅÓÐ100¸ö×Ö½ÚÊý¾Ý£¬ÏÖ½«ÆäÊס¢Î²µßµ¹¹ýÀ´£¬ÖØÐÂÅÅ·ÅÕâ100¸ö×Ö½ÚÊý¾Ý¡£ÇëÔÚ³ÌÐòÖеĿոñ´¦ÌîÈëÊʵ±µÄÖ¸ÁîʹÆäÍêÕû¡£ CXTK

MOV CX£¬32H LEA SI£¬BEG MOV DI£¬SI (1)

DON£ºMOV AL£¬[SI] (2) MOV [SI]£¬AL (3) DEC DI LOOP DON HLT

´ð: (1) ADD DI, 99

(2) XCHG AL, [DI]

(3) INC SI

21¡¢ÊÔ±àÖÆÒ»Ô´³ÌÐò£¬Í³¼ÆDA1×Öµ¥ÔªÖк¬0µÄ¸öÊý£¬Èçͳ¼ÆµÄ¸öÊýÎªÆæÊý£¬Ôò½«½øÎ»Î»ÖÃ1£¬·ñÔò½øÎ»Î»Çå0¡£ BC

DATA SEGMENT DA1 DW XXXX DATA ENDS ´ð£º

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,DA1 MOV CX,16 XOR BL,BL AGAIN: MOV AL,[SI] HL AL,1 JC NEXT

27

INC BL NEXT:INC SI

LOOP AGAIN TEST BL,01H JNE L1 CLC

JMP DONE L1: STC

DONE: MOV AH,4CH INT 21H CODE ENDS END START

22¡¢ÏÂÊö³ÌÐò¶ÎÍê³É¼ÆËã2~20Ö®¼äµÄżÊýµÄºÍ£¬²¢´æÓÚAXÖС£Ê԰ѿհ״¦ÌîÉÏÊʵ±µÄÖ¸Áî¡£ CXTK

XOR AX£¬AX MOV BX£¬0

MOV CX£¬10»òMOV CX£¬0AH CONT£º ADD AX£¬BX

ADD BX£¬2

LOOP CONT

23¡¢ÈçϳÌÐòÓ¦ÓÃðÅÝ·¨¶ÔÒ»¸öÎÞ·ûºÅÊý×éÅÅÐò£¨ÓÉСµ½´óÅÅÐò£©£¬ÇëÍê³É¸Ã³ÌÐò¡£

£¨×¢£ºÎª¸Ã³ÌÐò·ÖÅä100×ֵĶÑÕ»´æ´¢¿Õ¼ä¡££© CXTK SSEG SEGMENT STACK

DW 100 DUP (£¿) SSEG ENDS DSEG SEGMENT

SWAP DB £¿

ARRAY DW 32760£¬ 127£¬ 0£¬ 65000£¬ 230£¬ 100 DSEG ENDS

CSEG SEGMENT

ASSUME CS¡ÃCSEG£¬DS¡ÃDSEG£¬SS¡ÃSSEG START£º MOV AX£¬DSEG MOV DS£¬AX

SORT£º MOV CX£¬5

MOV SI£¬0 MOV SWAP£¬0

INNER£º MOV AX£¬ARRAY[SI] CMP AX£¬ARRAY[SI+2] JBE NOSWAP

XCHG AX£¬ARRAY[SI+2]

MOV ARRAY[SI]£¬AX MOV SWAP£¬1

NOSWAP£º ADD SI£¬2

28

LOOP INNER

CMP SWAP£¬1 JNZ SORT MOV AH£¬4CH INT 21H CSEG ENDS

END START

µÚ7Õ£º×Ó³ÌÐòÉè¼Æ

1¡¢Ö÷³ÌÐòºÍËùµ÷ÓõÄ×Ó³ÌÐòÔÚͬһ´úÂë¶ÎÖУ¬×Ó³ÌÐòµÄÊôÐÔÓ¦¶¨ÒåΪ( C )¡£ DX

A£®TYPE B£®WORD C£®NEAR D£®FAR 2¡¢ MOV AL£¬38H MOV BL£¬49H CALL SUBO INC AL DEC CL ©«

SUBO PROC ADD AL£¬BL MOV CL£¬AL

DAA RET

SUBO ENDP

ÉÏÊö³ÌÐò¶ÎÔËÐкó£¬AL=________88H _____________£¬CL=________80H __________¡£ CXFX

3¡¢FACT PROC

PUSH DX

MOV DX£¬AX CMP AX£¬0 JZ DONE DEC AX CALL FACT MUL DX POP DX RET DONE£ºMOV AX£¬1 POP DX RET

FACT ENDP

ÈôÖ´ÐÐÒÔÉÏ×Ó³ÌÐòǰ£¬(AX)=5£¬Ôò×Ó³ÌÐòÍê³ÉµÄ¹¦ÄÜÊÇ£º Çó5£¡(»òÇó5µÄ½×³Ë) £¬Ö´ÐиÃ×Ó³ÌÐòºó(AX)= 120 ¡£ CXFX

4¡¢ÔÚÒ»¶Î»ã±à³ÌÐòÖжà´Îµ÷ÓÃÁíÒ»¶Î³ÌÐò£¬ÓúêÖ¸Áî±ÈÓÃ×Ó³ÌÐòʵÏÖÆðÀ´¡££¨Õ¼ÄÚ´æ¿Õ¼ä´ó£¬µ«Ëٶȿ죩¡£ DX

29

5¡¢ÉèÔÚDATµ¥Ôª´æ·ÅÒ»¸ö£­9~£«9µÄ×Ö½ÚÊý¾Ý£¬ÔÚSQRTABÊý¾ÝÇøÖдæ·ÅÁË0~9µÄƽ·½Öµ£¬ÇëÓÃÖ±½Ó²é±í·¨±àдһ¸ö×Ó³ÌÐò£¬ÔÚSQRTABÖвéÕÒ³öDATµ¥ÔªÖÐÊý¾Ý¶ÔÓ¦µÄƽ·½ÖµËÍSQRµ¥Ôª¡£²¢Ð´³öÖ÷³ÌÐòµÄµ÷Ó÷½Ê½¡£ CX

Êý¾Ý¶ÎÈçÏ£º DATA SEGMENT

DAT DB XXH

SQRTAB DB 0£¬1£¬4£¬9£¬...81 SQR DB£¿ DATA ENDS ´ð£º

DATA SEGMENT DAT DB XXH

SQRTAB DB 0£¬1£¬4£¬9£¬?£¬81 SQR DB£¿

DATA EMDS

STACL1 SEGMENT PARA STACK DW 20H DUP£¨£¿£© STACK1 ENDS CODE SEGMENT

ASSUME CS£ºCODE£¬DS£ºDATA£¬SS£ºSTACK1 START£º MOV AX£¬DATA

MOV DS£¬AX ©«

CALL SUBROT ©«

MOV AH£¬4CH INT 21H SUBROT PROC PUSH AX PUSH BX LEA BX£¬SQRTAB MOV AL£¬DAT TEST AL£¬80H JNS NEXT

NEG AL

NEXT£º XLAT SQRTAB MOV SQR£¬AL POP BX POP AX RET

SUBROT ENDP

CODE ENDS END SRART

6¡¢ÉèÔÚÄÚ´æµ¥ÔªSQTABÊ×Ö·¿ªÊ¼´æ·ÅÁË0¡«15µÄƽ·½Êý±í¡£ÒªÇóÓÃÖ±½Ó²é±í·¨

30

±àÒ»³ÌÐò£¬Çó³öAµ¥ÔªÖиø¶¨Êý£¨£¼=15£½µÄƽ·½ÖµËÍBµ¥Ôª±£´æ¡£ BC

´ð: DATA SEGMENT

SQTAB DB 0£¬1£¬4£¬9£¬16£¬25£¬36£¬49£¬64£¬81 DB 100£¬121£¬144£¬169£¬196£¬225 A DB 12 B DB£¿

DATA ENDS

CODE SEGMENT

ASSUME CS£ºCODE£¬DS£ºDATA START PROC FAR PUSH DX XOR AX£¬AX PUSH AX

MOV AX£¬DATA

MOV DS£¬AX

MOV BX£¬OFFSET SQTAB MOV AL£¬A XLAT

MOV B£¬AL RET

START ENDP

CODE ENDS END START

7¡¢FUNCTION MACRO P1£¬P2£¬P3 MOV AX£¬P1 P2 P3 ENDM

Çë»Ø´ðÏÂÁÐÎÊÌ⣺

¢ÅÉÏÃæ³ÌÐò¶ÎÖУ¬MACROºÍENDMÊÇÒ»¶ÔαָÁÔÚ ºê ¶¨ÒåÖУ¬ËüÃdzɶԳöÏÖ¡£

¢ÆÍ¨¹ýµ÷ÓÃÓï¾äFUNCTION 100£¬SUB£¬AXµ÷ÓÃÖ®ºó£¬AX¼Ä´æÆ÷ÖеÄÄÚÈÝΪ 99 ¡£ CXFX

31


»ã±àÓïÑÔÆÚÄ©¸´Ï°Ìâ´óÈ«£¨Ãâ·Ñ£©.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ
ËÑË÷¸ü¶à¹ØÓÚ£º »ã±àÓïÑÔÆÚÄ©¸´Ï°Ìâ´óÈ«£¨Ãâ·Ñ£© µÄÎĵµ
Ïà¹ØÍÆ¼ö
Ïà¹ØÔĶÁ