微机原�课�习题答案 - 百度文库

NEXT1: MOV AL,[SI]; INC SI; CMP DL,AL; JNC NEXT2; MOV DL,AL;

DLÖÐʼÖÕ´æÄ¿Ç°×î´óÖµ

NEXT2: DEC CL;

JNZ NEXT1; MOV [DI],DL; ×î´óÖµ´æ´¢

HLT

BUFFER DB £»×ÔÐж¨Òå100¸öÊý¾Ý

KVFF DB ?

3.9 Èô½«Êý¾Ý°´´óС˳ÐòÅÅÐò,ÊÔ±àд³ÌÐò..

½â:´Ë´¦²ÉÓà ¡°Ã°ÅÝ·¨¡±ÓèÒÔ´¦Àí:

ORG 100h LEA MOV

DI,BUFFER; Êý¾ÝÇø BL,99; ÍâÑ­»·´ÎÊý

NEXT0:

NEXT3:

NEXT5:

MOV SI,DI; MOV CL,BL; ÄÚÑ­»·´ÎÊý MOV AL,[SI]; ¶ÁÊý INC SI; ÒÆ¶¯Ö¸Õë CMP AL,[SI]; ±È½Ï JNC NEXT5; ´óÓÚתNEXT5 MOV DL,[SI]; MOV [SI-1],DL; MOV [SI],AL; ²»´óÓÚ»¥»» DEC CL; ÄÚÑ­»·´ÎÊý¼õÒ»

JNZ DEC JNZ HLT

NEXT3; BL; ÍâÑ­»·´ÎÊý¼õÒ» NEXT0

BUFFER DB ×ÔÐж¨Òå100¸ö×Ö½ÚÐÍÊý¾Ý

3.10 ÔÚBVFFµ¥ÔªÖÐÓÐÒ»¸öBCDÊýA,ÊÔ¸ù¾ÝÏÂÁйØÏµ±àд³ÌÐò,¼ÆËã½á¹û´æÔÚDESÖÐ.

A<20,Y=3*A; A<60,Y=A-20; A>=60,Y=80.

ORG 100h MOV AL,BVFF CMP AL,20 JL EX1 CMP AL,60 JL EX2 MOV AL,80 JMP STOP EX1: MOV BL,3 MUL BL JMP STOP EX2: SUB AL,20 STOP: MOV DES,AL HLT BVFF DB 8 DES DB ?

3.11ַΪDATAB¿ªÊ¼µÄ80¸öµ¥ÔªÖÐ,´æ·Åij°à80¸öѧÉúµÄij¿Î³Ì³É¼¨,ÒªÇó:

ͳ¼Æ>=90·Ö¡¢80~89·Ö¡¢70~79·Ö¡¢60~69·Ö¡¢60·ÖÒÔϵÄÈËÊý£¬½á¹û´æ·ÅÔÚBTRX¿ªÊ¼µÄ5¸öµ¥ÔªÖÐ

Ç󯽾ù³É¼¨£¬½á¹û´æ·ÅÔÚLEVELÖС£

½â£º¼Ä´æÆ÷ʹÓ÷ÖÅ䣺90·ÖÒÔÉÏÔÚDH£¬80·ÖÒÔÉÏÔÚDL£¬70·ÖÒÔÉÏÔÚBH£¬60·ÖÒÔÉÏÔÚBL£¬60·ÖÒÔÏÂÔÚAH£¬×Ü·Ö¡¢¾ù·Ö¶¼ÔÚ[DI]¡£

ORG 100h XOR AH,AH XOR DX,DX XOR BX,BX

;ͳ¼Æ½á¹ûÇåÁã ;ͳ¼Æ½á¹ûÇåÁã

LEA SI,DATA LEA DI,LEVEL

MOV CL,CONT; ×ÜÈËÊýËÍÑ­»·¼ÆÊýÆ÷ CX goon: MOV AL,[SI] ;¶ÁԭʼÊý¾Ý

ADC [DI], AL;ÀÛ¼Ó×Ü·Ö ADC [DI+1],0 ;¼ÆËã½øÎ»

CMP AL,90

JL PP8 ; ²»¸ßÓÚ90·ÖÕßתPP8 INC DH ; 90--100·ÖµÄÈËÊý¼ÓÒ» JMP STOR

PP8:

PP7:

PP6:

CMP AL,80 JL PP7 ;²»¸ßÓÚ80·ÖתPP7 INC DL ;80----89·ÖµÄÈËÊý¼ÓÒ» JMP STOR CMP AL,70 JL PP6 ;²»¸ßÓÚ70·ÖÕßתPP6 INC BH ;70---79·ÖµÄÈËÊý¼ÓÒ» JMP STOR CMP AL,60 JL PP5 ;²»¸ßÓÚ60·ÖÕßתPP5 INC BL ;60---69·ÖµÄÈËÊý¼ÓÒ»

JMP STOR

PP5: INC AH ;µÍÓÚ60·ÖµÄÈËÊý¼ÓÒ» STOR:INC SI ;¶ÁÏÂÒ»¸ö·ÖÊý

GOON

;CX=CX-1,CX²»ÎªÁãתGOON,¼ÌÐøÍ³¼Æ LEA SI,BUFFER ;»Ø´æÍ³¼Æ½á¹û

MOV INC SI MOV INC SI MOV INC SI MOV INC SI MOV MOV

[SI],DH [SI],DL [SI],BH [SI],BL

[SI],AH

AX,WORD PTR [DI] ;¼ÆËãÆ½¾ù³É¼¨

LOOP

MOV CL,CONT DIV CL

MOV LEVEL,AL ;»Ø´æÆ½¾ù³É¼¨

HLT

CONT DB 10

DATA DB 30,65,99,80,75, 89,100,45,60,70 BUFFER DB ?,?,?,?,? LEVEL DB ? ,?

3.12 ÇóÁ½¸öÓзûºÅÊý(DATA1,DATA2)²îµÄ¾ø¶ÔÖµ,½á¹û´æÈëDATA3.

ORG 100h

MOV AL,DATA1£»¶ÁÈë±»¼õÊý SUB AL,DATA2£»¼õÈ¥¼õÊý JC CHANGE£»

JMP STOR CHANGE: NEG AL STOR: MOV DATA3,AL HLT DATA1 DB 3 DATA2 DB 5 DATA3 DB ?

3.13 ´æ´Ó40000Hµ½4BFFHµÄ¸öµ¥Ôª¾ùдÈë55H,²¢ÔÙÖð¸ö¶Á³ö,ÑéÖ¤ÊÇ·ñÒ»ÖÂ,ÈôÒ»ÖÂ,ÖÃALΪ7EH,·ñÔòÖÃALΪ81H.

ORG 100h MOV AX,4000H; MOV DS,AX; MOV SI,0 START: MOV CX,0BFFFH BEGIN: MOV [SI],55H MOV AL,[SI] INC SI CMP AL,55H JNZ ERR LOOPBEGIN MOV AL,7EH JMP STOP ERR: MOV AL,81H STOP: HLT

3.14~3.15 ¶Ë¿Ú03FBHµÄBIT5Ϊ״̬±êÖ¾,µ±¸ÃλΪ1ʱ,±íʾÍâÉèæ,²»ÄܽÓÊÕÊý¾Ý;µ±Îª0ʱ,±íʾÍâÉèÏÐ,¿ÉÒÔ½ÓÊÕÊý¾Ý;µ±CPUÏò¶Ë¿Ú03F8HдÈëÒ»¸ö×Ö½ÚµÄÊý¾Ýʱ,03FBHµÄBIT5ÖÃ1,µ±Ëü±äΪ0״̬ʱ,ÓÖ¿ÉÒÔдÈëÏÂÒ»¸öÊý¾Ý¡£¾Ý´Ë±àд½«ÆðʼµØÖ·ÎªSEDATµÄ50¸öÊý¾ÝÊä³öµ½03F8H¶Ë¿ÚµÄ³ÌÐò¡£

WAIT£º

MOV DX£¬03FBH IN AL£¬DX

TEST AL£¬0010 0000B£»£¨20H£©

JZ SEND JMP WAIT SEND£ºMOV DX£¬3F8H MOV AL£¬[SI]£» CMP AL£¬0AH£»Êä³ö×Ö´®½áÊø±êÖ¾·û

JZ STOP OUT DX£¬AL

WAIT

JMP

STOP£ºHLT

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)