»ã±à×÷ÒµÌâ´ð°¸ ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/9/10 12:17:50ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

END START

30 ÎÞ·ûºÅÊý±äÁ¿XÓÃDD¶¨Ò壬±àд³ÌÐò£¬ÓÃÊ®Áù½øÖƸñʽÊä³ö±äÁ¿XµÄÖµ¡£ ´ð£º .386

DATA SEGEMNT USE16

X DD 36895471 £»Ò»¸ö32B³¤ÕûÊý

MESS DB 0DH, 0AH, ¡®The X in hexdecimal is : $¡¯ HEXTAB DB ¡®0123456789ABCDEF¡¯ DATA ENDS

CODE SEGMENT USE16

ASSUME CS: CODE, DS: DATA START:

MOV AX, DATA MOV DS, AX LEA DX, MESS MOV AH, 09H INT 21H £»Êä³öǰµ¼ÐÅÏ¢

MOV ESI, X £»½«X´æÈëESI

MOV CX, 8 £»Ñ­»·¼ÆÊýÆ÷ÖóõÖµ LEA BX, HEXTAB £»»»Âë±íÊ×µØÖ·×°ÈëBX AGAIN: ROL ESI, 4 £»°Ñ×î¸ß4Î»ÒÆµ½×îµÍ4λÉÏ MOV AX, SI £»µÍ8λתÈëAL AND AX, 0004H £»Çå³ý¸ß4λ

XLAT £»×ª»»³ÉÊ®Áù½øÖÆÊý×ÖµÄASCII´úÂë MOV DL, AL MOV AH, 2 INT 21H £»Êä³öÒ»¸öÊ®Áù½øÖÆÊý×Ö

LOOP AGAIN £»Ñ­»·16´Î MOV AX, 4C00H INT 21H CODE ENDS END START

31 ´Ó¼üÅÌÉÏÊäÈëÁ½¸öÓзûºÅ×ÖÕûÊýAºÍB£¬¼ÆËã²¢Êä³öËüÃǵĺ͡¢²î¡¢»ý¡¢É̺ÍÓàÊý¡£

´ð£º INCLUDE YLIB.H DATA SEGEMNT

MESS1 DB 0DH, 0AH, ¡®Input a integer number please : $¡¯ MESS2 DB 0DH, 0AH, ¡®The sum of 2 number is : $¡¯

MESS3 DB 0DH, 0AH, ¡®The difference of 2 number is : $¡¯ MESS4 DB 0DH, 0AH, ¡®The product of 2 number is : $¡¯ MESS5 DB 0DH, 0AH, ¡®The quotient of 2 number is : $¡¯ MESS6 DB 0DH, 0AH, ¡®The remainder of 2 number is : $¡¯ A DW ?

32 Êý×éARRAYÖдæÓÐ10¸öÎÞ·ûºÅ×ÖÕûÊý£¨ÔªËØÐòºÅ0~9£©£¬ÏÖÔÚҪɾ³ýÆäÖеÄ

µÚ5¸öÔªËØ¡£±àд³ÌÐò£¬°ÑµÚ6~9¸öÔªËØÒÆµ½µÚ5~8¸öÔªËØµÄλÖÃÉÏ£¬²¢°ÑµÚ9¸öÔªËØÇåÁã¡£ ´ð£º DATA SEGEMNT

ARRAY DW -386, 97, 213, 21, 77, -91, 56, 7, 123, 65

B DW ? DATA ENDS CODE SEGMENT

ASSUME CS: CODE, DS: DATA START:

MOV AX, DATA MOV DS, AX LEA DX, MESS1

CALL READINT £»ÊäÈëµÚÒ»¸öÓзûºÅÕûÊý MOV A, AX

LEA DX, MESS1

CALL READINT £»ÊäÈëµÚ¶þ¸öÓзûºÅÕûÊý MOV B, AX ADD AX, A £»ÇóÁ½¸öÊýµÄºÍ LEA DX, MESS2

CALL WRITEINT £»Êä³öÁ½¸öÊýµÄºÍ MOV AX, A SUB AX, B £»ÇóÁ½¸öÊýµÄ²î LEA DX, MESS3

CALL WRITEINT £»Êä³öÁ½¸öÊýµÄ²î MOV AX, A

IMUL B £»ÇóÁ½¸öÊýµÄ»ý£¬¼ÙÉèÈÔÈ»ÊÇ16λ LEA DX, MESS4

CALL WRITEINT £»Êä³öÁ½¸öÊýµÄ»ý MOV AX, A CWD

IDIV B £»ÇóÁ½¸öÊýµÄÉ̺ÍÓàÊý PUSH DX LEA DX, MESS5

CALL WRITEINT £»Êä³öÁ½¸öÊýµÄÉÌ POP AX LEA DX, MESS6

CALL WRITEINT £»Êä³öÁ½¸öÊýµÄÓàÊý CALL CRLF

MOV AX, 4C00H INT 21H CODE ENDS END START

DATA ENDS CODE SEGMENT

ASSUME CS: CODE, DS: DATA START:

MOV AX, DATA MOV DS, AX MOV BX, 6*2 £»µÚÁù¸öÔªËØÔÚÊý×éÄÚµÄÎ»ÒÆ MOV CX, 4 £»Ñ­»·¼ÆÊýÆ÷ÖóõÖµ AGAIN: MOV AX, ARRAY[BX] £»È¡³öÒ»¸öÔªËØ MOV ARRAY[BX-2], AX £»ÏòÇ°ÒÆ¶¯Ò»¸öλÖà ADD BX, 2 £»ÐÞ¸ÄÖ¸Õë LOOP AGAIN £»Ñ­»·4´Î MOV ARRAY[BX], 0 £»×îºóÒ»¸öÔªËØÇåÁã MOV AX, 4C00H INT 21H CODE ENDS END START

33 ±àдָÁîÐòÁУ¬°ÑAXÖеÄ16b¶þ½øÖÆ·ÖΪ4×飬ÿ×é4b£¬·Ö±ðÖÃÈëAL£¬BL£¬

CL£¬DLÖС£ ´ð£º MOV DX, AX £»×îµÍ4λֱ½Ó½øÈëDX

MOV CX, 4

ROL AX, CL £»×î¸ß4Î»ÒÆÈë×îµÍ4λ

PUSH AX £»Ñ¹Èë¶ÑÕ»±£´æ£¨×¼±¸ËÍÈëAL£© ROL AX, CL £»´Î¸ß4Î»ÒÆÈë×îµÍ4λ MOV BX, AX £»ËÍÈëBL ROL AX, CL £»µÚ3×é4Î»ÒÆÈë×îµÍ4λ MOV CX, AX £»ËÍÈëCL POP AX £»´Ó¶ÑÕ»Öе¯³öÔ­×î¸ß4λ AND AX, 000FH £»Çå³ý¸ß12λ AND BX, 000FH £»Çå³ý¸ß12λ AND CX, 000FH £»Çå³ý¸ß12λ AND DX, 000FH £»Çå³ý¸ß12λ

34 ʲô½Ð×ö¡°¿ØÖÆ×ªÒÆÖ¸Á£¿ËüºÍÊý¾Ý´«ËÍ¡¢ÔËËãÖ¸ÁîÓÐÊ²Ã´Çø±ð£¿ËüÊÇÔõ

ÑùʵÏÖËüµÄ¹¦Äܵģ¿

´ð£º¿ØÖÆ×ªÒÆÖ¸ÁîÊÇ¿ÉÒԸıäÖ¸ÁîÖ´ÐÐ˳ÐòµÄÖ¸Áî¡£Êý¾Ý´«ËÍ¡¢ÔËËãÖ¸Áî×ÜÊÇ˳

ÐòÖ´Ðе쬶ø¿ØÖÆ×ªÒÆÖ¸Áîͨ¹ý¸Ä±äIPºÍ/»òCS¼Ä´æÆ÷µÄÖµ£¬¸Ä±äÁ˳ÌÐòÖ¸ÁîµÄÖ´ÐÐ˳Ðò¡£

35 Ö¸Áî¡°JMP DI¡±ºÍ¡°JMP WORD PTR [DI]¡±×÷ÓÃÓÐʲô²»Í¬£¿Çë˵Ã÷¡£ ´ð£ºÉÏÊöÁ½ÌõÖ¸Áî¶¼ÊǶÎÄÚ½ü×ªÒÆÖ¸Áµ«ÊÇÆ«ÒƵØÖ·µÄÀ´Ô´²»Í¬¡£Ö¸Áî¡°JMP

DI¡±Ö´ÐÐʱ£¬ÐÂµÄÆ«ÒƵØÖ·ÔÚDI¼Ä´æÆ÷ÄÚ£¬¡°JMP WORD PTR [DI]¡±Ê±£¬Ä¿µÄÆ«ÒÆµØÖ·ÔÚ´æ´¢µ¥ÔªÖУ¬¸Ã´æ´¢µ¥ÔªµÄµØÖ·ÔÚDS: DIÖС£

36 ʲôÊÇ¡°½ü³Ì¡±×ªÒÆ£¿Ê²Ã´ÊÇ¡°Ô¶³Ì¡±×ªÒÆ£¿ËüÃǵÄʵÏÖ·½·¨ÓÐʲô²»Í¬£¿ ´ð£ºÖ´ÐС°½ü³Ì¡±×ªÒÆÊ±£¬×ªÒƵÄÄ¿µÄµØÓë³ö·¢µØÔÚͬһ¸ö¶ÎÄÚ£¬ËüÃǾßÓÐÏàͬ

µÄ¶Î»ùÖ·¡£Òò´Ë£¬ÎªÁËʵÏÖ¡°½ü³Ì¡±×ªÒÆ£¬Ö»ÐèÒª¸Ä±äIP¼Ä´æÆ÷µÄÖµ¡£¡°Ô¶³Ì¡±×ªÒƵÄÄ¿µÄµØÓë³ö·¢µØ²»ÔÚͬһ¸ö¶Î£¬ÎªÁËʵÏÖÕâ¸ö×ªÒÆ£¬±ØÐëͬʱ¸Ä±äCSºÍIP¼Ä´æÆ÷µÄÖµ¡£

37 ÒÑÖª£¨AX£©= 836BH£¬X·Ö±ðÈ¡ÏÂÁÐÖµ£¬Ö´ÐС°CMP AX, X¡±ºó£¬±ê־λZF¡¢

CF¡¢OF¡¢SF¸÷ÊÇʲô£¿

£¨1£©X=3000H £¨2£©X=8000H £¨3£©X=7FFFFH £¨4£©X=0FFFFH £¨5£©X=0 ´ð£ºÉÏÊöÖ¸ÁîÖ´Ðк󣬱ê־λZF¡¢CF¡¢OF¡¢SF µÄ״̬·Ö±ðÊÇ£º

£¨1£© ZCOS=0010 £¨2£© ZCOS=0000 £¨3£© ZCOS=0010 £¨4£© ZCOS=0101 £¨5£© ZCOS=0001

38 ÒÑÖª£¨AX£©= 836BH£¬X·Ö±ðÈ¡ÏÂÁÐÖµ£¬Ö´ÐС°TEST AX, X¡±ºó£¬±ê־λZF¡¢

CF¡¢OF¡¢SF¸÷ÊÇʲô£¿

£¨1£©X=0001H £¨2£©X=8000H £¨3£©X=0007H £¨4£©X=0FFFFH £¨5£©X=0 ´ð£ºÉÏÊöÖ¸ÁîÖ´Ðк󣬱ê־λZF¡¢CF¡¢OF¡¢SF µÄ״̬·Ö±ðÊÇ£º

£¨1£© ZCOS=0000 £¨2£© ZCOS=0001 £¨3£© ZCOS=0000 £¨4£© ZCOS=0001 £¨5£© ZCOS=1000

39 ²âÊÔÃûΪXµÄÒ»¸ö×Ö½Ú£¬Èç¹ûXµÄµÚ1£¬3λ¾ùΪ1£¬×ªÒƵ½L1£¬Èç¹ûÖ»ÓÐÒ»

λΪ1£¬×ªÒƵ½L2£¬Èç¹ûÁ½Î»È«Îª0£¬×ªÒƵ½L3¡£Ð´³ö¶ÔÓ¦µÄÖ¸ÁîÐòÁС£ ´ð£º MOV AL, X AND AL, 0000 1010B JZ L3 CMP AL, 0000 1010B JE L1 JMP L2

40 ¼ÙÉèXºÍX+2×Öµ¥Ôª´æ·ÅÓÐË«¾«¶ÈÊýP£¬YºÍY+2×Öµ¥Ôª´æ·ÅÓÐË«¾«¶ÈÊýQ£¬

ÏÂÃæ³ÌÐòÍê³ÉÁËʲô¹¤×÷£¿ MOV DX, X+2 MOV AX, X £»Ë«¾«¶ÈÊýPËÍÈëDX, AX

ADD AX, X ADC DX, X+2 £»¼ÆËã2*PËÍÈëDX, AX

CMP DX, Y+2 £»2PÓëQµÄ¸ßλ±È½Ï JL L2 £»2PQ£¬×ªL1 £¨Z=1£© CMP AX, Y £»Èç¹û¸ßλÏàµÈ£¬Ôò±È½ÏµÍλ JBE L2 £»2PµÄµÍλСÓÚµÈÓÚQµÄµÍλ£¬×ªL2£¨Z=2£© L1: MOV Z, 1 JMP SHORT EXIT L2: MOV Z, 2

EXIT: ??

´ð£º³ÌÐò¸ù¾Ý2PÓëQµÄ´óС£¬È·¶¨ZµÄÖµ¡£ Èç¹û2P¡ÜQ£¬ÔòZ=2 Èç¹û2P>Q£¬ ÔòZ=1 Çë²ÎÔijÌÐò×¢½â

41 ±àдָÁîÐòÁУ¬½«AXºÍBXÖнϴóµÄ¾ø¶ÔÖµ´æÈëAX£¬½ÏСµÄ¾ø¶ÔÖµ´æÈëBX¡£ ´ð£º AND AX, AX

JGE SKIP1 NEG AX SKIP1: AND BX, BX JGE SKIP2 NEG BX SKIP2: CMP AX, BX JGE SKIP3 XCHG AX, BX SKIP3: ??

42 ±àдָÁîÐòÁУ¬±È½ÏAX¡¢BXÖеÄÊýµÄ¾ø¶ÔÖµ£¬¾ø¶ÔÖµ½Ï´óµÄÊý´æÈëAX£¬¾ø

¶ÔÖµ½ÏСµÄÊý´æÈëBX¡£ ´ð£º PUSH AX PUSH BX

AND AX, AX JGE SKIP1 NEG AX SKIP1: AND BX, BX JGE SKIP2 NEG BX SKIP2: CMP AX, BX POP BX POP AX JGE SKIP3 XCHG AX, BX SKIP3: ??

43 ±àдָÁîÐòÁУ¬Èç¹ûAL¼Ä´æÆ÷´æ·ÅµÄÊÇСд×Öĸ£¬°ÑËüת»»³É´óд×Öĸ£¬·ñ

Ôò²»¸Ä±äALÄÚÈÝ¡£ ´ð£º CMP AL, ¡®a¡¯ JB DONE CMP AL, ¡®z¡¯ JA DONE SUB AL, ¡®a¡¯-¡®A¡¯ DONE: ??