»ã±àÓïÑÔ³ÌÐòÉè¼ÆµÚ3½×¶Î²âÊÔÌâ ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/7/3 1:58:59ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

C¡¢CX¡Ù0£¬ÇÒZF=0 D¡¢CX¡Ù0£¬»òZF=1

´ð°¸£ºB

7£®ÒÑÖªRETÖ¸ÁîÊÇÊôÐÔΪNEAR×Ó³ÌÐòÖеķµ»ØÖ¸ÁִÐÐRET֮ǰSP£½100H£¬Ö´ÐкóSPµÄÄÚÈÝΪ ¡£

A£®100H ´ð£ºB

B£®102H

C£®98H

D£®0FEH

8£® αָÁîÓÃÀ´Ö¸¶¨ºê¾Ö²¿±êºÅ¡£

A£®PUBLIC B£®LOCAL C£®EXTRN D£®ASSUME

´ð£ºB

¶þ¡¢ÔĶÁÏÂÁгÌÐò£¬²¢»Ø´ðÎÊÌ⣨ÿÌâ10·Ö£¬¹²30·Ö£© 1. ÓÐÏÂÁгÌÐò¶Î£º

BUF DB 0CH

MOV AL£¬BUF

CALL FAR PTR HECA

.

.

PROC FAR CMP AL£¬10

Kl

AL£¬7 AL£¬30H

HECA

JC ADD K1£º ADD

MOV DL£¬AL MOV AH£¬2 INT

21H

RET HECA ENDP

ÎÊ£º³ÌÐòÖ´Ðкó£¬DL=£¿ÆÁÄ»ÉÏÏÔʾÊä³öµÄ×Ö·ûÊÇʲô£¿ ´ð£ºDL=43H£¬ÆÁÄ»ÉÏÏÔʾÊä³öµÄ×Ö·ûÊÇ¡®C¡¯¡£

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£©=_________£¬£¨CL£©=_________

6

´ð°¸£º£¨AL£©£½88H £¨CL£©£½80H

3¡¢Éè³ÌÐòÖеÄMMΪһ´ø·ûºÅÊý£¬ÔĶÁÏÂÁгÌÐò²¢»Ø´ðÏÂÁÐÎÊÌâ ³ÌÐò£º DATA SEGMENT BUF1 DB MM BUF2 DB £¿

DATA ENDS CODE SEGMENT

ASSUME CS£ºCODE£¬DS£ºDATA

START PROC

MOV AX£¬DATA MOV DS£¬AX

MOV BX£¬OFFSET BUF1 MOV DI£¬OFFSET BUF2 MOV AH£¬[ BX ] OR AH£¬AH JZ ZERO JL MINUS MOV AH£¬01H JMP ASSIGN ZERO£ºMOV AH£¬00H JMP ASSIGN MINUS£º MOV AH£¬0FFH ASSIGN£ºMOV [ DI ]£¬AH

INT 20H £»·µ»ØDOS

START ENDP CODE ENDS END START

ÎÊÌ⣺A£º¸Ã³ÌÐòÍê³ÉµÄ²Ù×÷ÊÇ£¨1£©£»

B£ºµ±MMΪ80Hʱ£¬³ÌÐòÖ´ÐкóBUF2µ¥ÔªµÄÄÚÈÝΪ£¨2£©£»

C£ºÈô³ÌÐòÖÐÖ¸ÁîJL MINUS¸ÄΪJNL MINUSÇÒMMΪ00Hʱ£¬Ôò³ÌÐòÖ´ÐкóBUF2µ¥

ÔªµÄÄÚÈÝΪ£¨3£©

´ð°¸£º£¨1£©Åж¨MMµÄÕý¸º¡£

µ±MM=0ʱBUF2ÖÃΪ0£» µ±MM>0ʱBUF2ÖÃΪ1

µ±MM<0ʱBUF2ÖÃΪ-1 £¨2£©-1 £¨3£©0

Èý¡¢¸ù¾ÝÌâÒâÍêÉÆ³ÌÐò£¨Ã¿¿Õ3·Ö£¬¹²27·Ö£©

ÏÂÃæµÄ³ÌÐò°Ñ»º³åÇøNUMÖеÄÊ®Áù½øÖÆÖµ×ª»»Îª4¸öASCIIÂ룬ÒÀ´Î·ÅÈ뻺³åÇøSTRINGÖУ¬²¢ÏÔʾÊä³ö£¬Çë¸ù¾ÝÌâÒ⣬ÍêÉÆ¸Ã³ÌÐò¡£

7

DATA SEGMENT NUM DW 45AFH

STRING DB 4 DUP£¨£¿£©£¬¡®$¡¯ DATA ENDS

STACK SEGMENT PARA STACK ¡®STACK¡¯ DB 100 DUP£¨£¿£© STACK ENDS CODE SEGMENT ASSUME £¨1£© BEGIN£ºMOV AX£¬DATA MOV DS£¬AX LEA BX£¬STRING CALL BINHEX LEA £¨2£©£¬STRING MOV AH£¬9 INT 21H MOV AH£¬£¨3£© INT 21H BINHEX PROC

MOV AX£¬NUM MOV DI£¬BX ADD DI£¬3 MOV DX£¬AX MOV CX£¬4 AGAIN£º AND AX£¬0FH CMP AL£¬0AH £¨4£©

ADD AL£¬¡®a¡¯¨D¡®0¡¯¨D0ah ADDZ£ºADD AL£¬¡®0¡¯ MOV [ DI ]£¬AL DEC £¨5£© PUSH CX MOV CL£¬4 SHR DX£¬CL MOV AX£¬DX POP £¨6£©

LOOP AGAIN

£¨7£© BINHEX £¨8£© CODE ENDS END £¨9£© 8

´ð°¸£º

£¨1£©CS£ºCODE£¬DS£ºDATA£¬SS£ºSTACK £¨2£©DX £¨3£©4CH

£¨4£©JL ADDZ / JB / JNAE / JC / JL / JNGE £¨5£©DI £¨6£©CX £¨7£©RET £¨8£©ENDP £¨9£©BEGIN

ËÄ¡¢±à³ÌÌ⣨¹²19·Ö£©

±àдһ¸öÍêÕû³ÌÐò£¬Èç¹û×Ö½Ú±äÁ¿ TESTONEºÍ TESTTWOÏàµÈ£¬Ôòµ÷Óà ALLSAME×Ó³ÌÐòÔÚÆÁÄ»ÉÏÏÔʾ×Ö·û¡®*¡¯£¬·ñÔòµ÷Óà NOTSAME×Ó³ÌÐòÔÚÆÁÄ»ÉÏÏÔʾ×Ö·û¡®&¡¯¡£ ´ð°¸£ºDSEG SEGMENT

TESTONE DB £¿

TESTTWO DB £¿ DSEG ENDS

CSEG SEGMENT

ASSUME CS£ºCSEG£¬DS£ºDSEG START£ºMOV AX£¬DSEG

MOV DS£¬AX

MOV AL£¬TESTONE CMP AL£¬TESTTWO JE CALLSAME

CALL NOTSAME JMP CONTINX

CALLSAME£ºCALL ALLSAME CONTINX£ºMOV AH£¬4CH

INT 21H

ALLSAME PROC

MOV DL£¬¡®*¡¯ MOV AH£¬2

INT 21H

RET

ALLSAME ENDP NOTSAME PROC

MOV DL£¬¡®&¡¯

MOV AH£¬2 INT 21H RET

NOTSAME ENDP CSEG ENDS

END START

9