΢»úÔ­Àí»Æ±ù°æ--×÷Òµ´ð°¸

3.14 ÓÃÖØ¸´Ç°×º´®±È½ÏÖ¸Áî±È½ÏÁ½¸ö×Ö·û´®£¬Ò»¸öÊÇÔÚÊý¾Ý¶ÎµÄ×Ö·û´®±äÁ¿STR1(ÄÚÈÝΪ'THIS IS A DOG')£¬ÁíÒ»¸öÊÇÔÚ¸½¼Ó¶ÎµÄ×Ö·û´®±äÁ¿STR2(ÄÚÈÝΪ'THIS IS A COCK')¡£µ±±È½Ïµ½µÚÒ»¸ö²»ÏàͬµÄ×Ö·ûʱֹͣ±È½Ï£¬°ÑÏàͬ²¿·Ö×Ö·û´®³¤¶È´æÈëÊý¾Ý¶ÎµÄ×Ö½Ú±äÁ¿NUMÖС£Ð´³ö·Ö¶Î½á¹¹µÄ³ÌÐò¶Î£¬Ó¦°üÀ¨¶Î¶¨Ò壬αָÁîºÍÖ¸ÁîÐòÁС£ÎÊ£ºÏàͬ²¿·Ö×Ö·û´®³¤¶ÈΪ¶àÉÙ£¿ÔÚSTR1ºÍSTR2µÚÒ»¸ö²»Í¬´¦µÄÆ«ÒÆµØÖ·ÊǶàÉÙ£¿

DATA SEGMENT

STR1 DB 'THIS IS A DOG' LEN1 DB $-STR1 NUM DB ? DATA ENDS EDATA SEGMENT

STR2 DB 'THIS IS A COCK' LEN2 DB $-STR2 EDATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:EDATA START: MOV AX,DATA MOV DS,AX MOV AX,EDATA MOV ES,AX

CLD ;´®²Ù×÷Óɵ͵ØÖ·Ïò¸ßµØÖ· MOV CH,0 MOV AL,LEN1 CMP AL,ES:LEN2 JB B1L2

MOV CL,ES:LEN2 JMP CMPOK B1L2: MOV CL,AL CMPOK: LEA SI,STR1 LEA DI,ES:STR2 REPE CMPSB MOV AX,SI

DEC AL ;²»Í¬´¦µÄ×Ö½ÚÆ«ÒƵØÖ·

MOV NUM,AL ;²»Í¬´¦µÄ×Ö½ÚÆ«ÒƵØÖ··Åµ½NUM MOV AH, 4CH INT 21H CODE ENDS

END START

´ð£ºÏàͬ³¤¶È10£¬²»Í¬´¦µÄÆ«ÒÆµØÖ·10

3.15 ÓÐÁ½¸öѹËõÐÍBCDÂëÏà¼Ó£¬±»¼ÓÊý£¨6756£©ºÍ¼ÓÊý£¨7321£©´æ·ÅÔÚÊý¾Ý¶ÎµÄBUFFER±äÁ¿µÄ4¸öÁ¬ÐøµÄ×Ö½Ú´æ´¢µ¥ÔªÖУ¬½á¹û£¨ºÍ£©´æ·ÅÔÚRESUT±äÁ¿µÄÈý¸ö×Öµ¥ÔªÖУ¨¿¼Âǵ½ÓнøÎ»µÄÇé¿ö£©£¬±àÖÆ¾ßÓÐÊý¾Ý¶ÎºÍ´úÂë¶Î½á¹¹µÄÍêÕû³ÌÐò£¬³ÌÐòÖÐÐèÒª×÷±ØÒªµÄ×¢ÊÍ¡£ ×¢£º½á¹û´æ·ÅÔÚRESUT×Ö½Ú±äÁ¿ÖУ¬Èý¸ö×Öµ¥Ôª²»ÖªÒªÇóÔõôÓà DATA SEGMENT

BUFFER DB 67H,56H,73H,21H RESUT DB 3 DUP (?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA

MOV DS,AX

MOV AL,BUFFER+1 ;µÚÒ»¸öÊý¾ÝµÍÁ½Î»->AL MOV BL,BUFFER+3 ;µÚ¶þ¸öÊý¾ÝµÍÁ½Î»->BL ADD AL,BL ;µÍÁ½Î»Ïà¼Ó DAA ;Ê®½øÖƵ÷Õû

MOV DL,AL ;µÍÁ½Î»Ïà¼Ó½á¹û·Åµ½DL MOV AL,BUFFER ;µÚÒ»¸öÊý¾Ý¸ßÁ½Î»->AL MOV BL,BUFFER+2 ;µÚ¶þ¸öÊý¾Ý¸ßÁ½Î»->BL ADC AL,BL ;µÍÁ½Î»Ïà¼Ó DAA ;Ê®½øÖƵ÷Õû MOV BL,0 JNC HCF INC BL

HCF: MOV RESUT,BL ;´æ·Å×î¸ßλ MOV RESUT+1,AL ;´æ·ÅÖмäÁ½Î» MOV RESUT+2,DL ;´æ·Å×îµÍÁ½Î» MOV AH, 4CH INT 21H CODE ENDS

END START

3.16 ½«SRCBUF±äÁ¿¶¨ÒåµÄ80¸ö×Ö·û´®´«Ë͵½DSTBUF±äÁ¿¶¨ÒåµÄ´æ´¢ÇøÈ¥¡£µ±Óöµ½0DHʱ£¬²»½«´Ë×Ö·û´«Ë͵½DSTBUF±äÁ¿ÖÐÈ¥¡£ÊÔ±àд³ÌÐò£¬²¢¼ÓÒÔ×¢ÊÍ¡£ DATA SEGMENT

SRCBUF DB 'aaa',0DH,'bbb' DSTBUF DB 80 DUP (?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV CX,07 ;±È½Ï´ÎÊý->CX MOV SI,0 ;Ô´´®Ö¸Õë->SI MOV DI,0 ;Ä¿±ê´®Ö¸Õë->DI SDCMP: MOV AL,SRCBUF[SI] CMP AL,0DH JZ NSEND

MOV DSTBUF[DI],AL ;²»µÈÓÚ0DH£¬±£´æÊý¾Ý£¬ÐÞ¸ÄSI¡¢DI INC DI

NSEND: INC SI ;µÈÓÚ0DH£¬²»±£´æÊý¾Ý£¬ÐÞ¸ÄSI LOOP SDCMP MOV AH, 4CH INT 21H CODE ENDS

END START

3.17 ÒÑÖªÓÐn¸öÔªËØ´æ·ÅÔÚÒÔBUFΪÊ×Ö·µÄ×Ö½Ú´æ´¢ÇøÖУ¬ÊÔͳ¼ÆÆäÖиºÔªËصĸöÊý£¬»­³ö³ÌÐò¿òͼ£¬±àд³ÌÐò¡£

DATA SEGMENT

BUF DB 92H,12H,0F3H,23H,87H LEN EQU $-BUF DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV CX,LEN ;±È½Ï´ÎÊý->CX MOV SI,0 ;×Ö½Ú´æ´¢ÇøÖ¸Õë MOV DL,0 ;¸ºÔªËظöÊý³õʼ»¯ NEGCMP: MOV AL,BUF[SI] CMP AL,0 JNL C0GE

INC DL ;СÓÚ0£¬¸öÊý¼Ó1£¬Ö¸Õë¼Ó1 C0GE: INC SI ;²»Ð¡ÓÚ0£¬Ö¸Õë¼Ó1 LOOP NEGCMP MOV AH, 4CH INT 21H CODE ENDS

END START

3.18 ÒÑÖªÒÔBUFΪÊ×Ö·µÄ×Ö´æ´¢ÇøÖдæ·Å×Ån¸öÓзûºÅµÄ¶þ½øÖÆÊý£¬ÊÔ±àд³ÌÐò£¬½«´óÓÚµÈÓÚ0µÄÊýËÍÒÔBUF1ΪÊ×Ö·µÄ×Ö´æ´¢ÇøÖУ¬½«Ð¡ÓÚ0µÄÊýËÍÒÔBUF2ΪÊ×Ö·µÄ×Ö´æ´¢ÇøÖУ¬²¢»­³ö³ÌÐò¿òͼ¡£ DATA SEGMENT

BUF DW 1212H,0FF12H,3434H,8989H,5656H,9090H LEN EQU ($ - BUF) / 2 BUF1 DW LEN DUP (?) BUF2 DW LEN DUP (?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV CX,LEN ;Ñ­»·´ÎÊý£¬¼´BUFµÄµ¥ÔªÊý MOV BX,0 ;BUFÖ¸Õë³õʼ»¯ MOV SI,0 ;BUF1Ö¸Õë³õʼ»¯ MOV DI,0 ;BUF2Ö¸Õë³õʼ»¯ CLOOP: MOV AX,[BX] ;BUFÊý¾Ý->AX CMP AX,0 JGE TO1

MOV BUF2[DI],AX ;AX<0£¬AX->BUF2£¬DI+2->DI£¬BX+2->BX INC DI INC DI

JMP CONTINUE

TO1: MOV BUF1[SI],AX ;AX>=0£¬AX->BUF1£¬SI+2->SI£¬BX+2->BX INC SI INC SI CONTINUE:INC BX INC BX LOOP CLOOP MOV AH, 4CH INT 21H CODE ENDS

END START

3.19 ÒÑÖªÔÚÒÔBUFΪÊ×µØÖ·µÄ×Ö½Ú´æ´¢ÇøÖУ¬´æ·Å×ÅÒ»¸öÒÔ¡ä$¡ä×÷½áÊø±êÖ¾µÄ×Ö·û´®£¬ÊÔ±àд³ÌÐò£¬ÔÚCRTÉÏÏÔʾ¸Ã×Ö·û´®£¬²¢ÒªÇó½«Ð¡Ð´×ÖĸÒÔ´óд×ÖĸÐÎʽÏÔʾ³öÀ´¡£»­³ö³ÌÐò¿òͼ¡£ DATA SEGMENT

BUF DB 'abCDalskdjf$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV SI,0 ;BUFµØÖ·Ö¸Õë ALOOP: MOV DL,BUF[SI] ;BUFÊý¾Ý->DL CMP DL,'$' ;DL='$',EXIT JE STOP CMP DL,5AH

JBE UPPER ;´óд×Öĸ£¬´òÓ¡Êä³ö£¬µØÖ·Ö¸ÕëSI¼Ó1

SUB DL,20H ;Сд×Öĸ£¬DL¼õ20Hºó´òÓ¡Êä³ö£¬µØÖ·Ö¸ÕëSI¼Ó1 UPPER: MOV AH,02H INT 21H INC SI

JMP ALOOP STOP: MOV AH, 4CH INT 21H CODE ENDS

END START

3.20 ÉèÓÐÈý¸ö×Ö½Ú±äÁ¿X¡¢Y¡¢Z£¬ÊÔÕÒ³öX¡¢YÓзûºÅÊýÖнϴóÕßËÍÈëZÖУ¬±àд³ÌÐò¡£ ÍÆ¼ö¼ì²âʵÀý£º-128ºÍ127 DATA SEGMENT X DB 0F0H Y DB 12H Z DB ? DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV AL,X ;X->AL CMP AL,Y ;X ? Y JGE NEXT ;X>=Y,X->Z MOV AL,Y ;XZ NEXT: MOV Z,AL MOV AH, 4CH INT 21H CODE ENDS

END START

3.21 ÉèÔÚ±äÁ¿µ¥ÔªA¡¢BºÍCÖдæ·ÅÓÐÈý¸öÊý£¬ÈôÈý¸öÊý¶¼²»Îª0£¬ÔòÇó³öÈý¸öÊýÖ®ºÍ´æÈëDÖУ»ÈôÓÐÒ»¸öΪ0£¬Ôò½«ÆäËûÁ½¸öµ¥ÔªÒ²ÇåÁ㣬±àд³ÌÐò¡£ DATA SEGMENT

A DB 0F0H B DB 12H C DB 22H

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