Öб±´óѧ΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°Á·Ï°²á
JNO L1 JNO L4 JNC L2 JMP L5
SUB AX£¬BX ´ð°¸£ºL5
2¡¢ÖжϷþÎñ³ÌÐò½áÊøÊ±£¬ÓÃRETÖ¸Áî´úÌæIRETÖ¸ÁîÄÜ·ñ·µ»ØÖ÷³ÌÐò£¿ÕâÑù×ö´æÔÚʲôÎÊÌ⣿ ´ð°¸£ºRETÓ¦¸Ã¿ÉÒÔʹÖжϷþÎñ³ÌÐò·µ»ØÖ÷³ÌÐò£¬µ«ÒòΪRETÊÇ×Ó³ÌÐò·µ»ØÖ¸ÁËüÖ»´Ó¶ÑÕ»Öлָ´CSºÍIP£¬¶ø²»ÄÜʹ״̬×ÖPSWµÃÒÔ»Ö¸´£¬ËùÒÔ²»ÄÜʹ¶ÏµãÍêÈ«»Ö¸´£¬¶ÔÔ´³ÌÐòµÄ¼ÌÐøÖ´ÐÐÔì³É²»Á¼Ó°Ïì¡£
3¡¢Ð´³ö°ÑÊ×µØÖ·ÎªBLOCK×ÖÊý×éÖеĵÚ6¸ö×Ö£¬Ë͵½DX¼Ä´æµÄÖ¸Á»òÖ¸Áî×飩£¬ÒªÇóʹÓÃÒÔϼ¸ÖÖѰַ·½Ê½£º
(1) ¼Ä´æ¼ä½ÓѰַ£» (2) ¼Ä´æÏà¶ÔѰַ£» (3) »ùÖ·±äַѰַ ´ð°¸£º 1) MOV BX£¬OFFSET BLOCK+6
2) LEA BX£¬BLOCK
MOV DX,[BX] MOV DX,[BX+12] MOV DX,[BX+SI]
3) LEA BX£¬BLOCK MOV SI,12
4. ÉèBX=134AH£¬BP=1580H£¬DI=0528H£¬SI=0234H£¬DS=3200H£¬SS=5100H£¬ÇóÔÚ¸÷ÖÖѰַ·½Ê½ÏÂÔ´²Ù×÷ÊýµÄÎïÀíµØÖ·¡£
1) MOV AX, [2400H] 2) MOV AX, [BX] 3) MOV AX, [SI] 4) MOV AX, [BX+2400H] 5) MOV AX, [BP+2400H] 6) MOV AX, [BX+DI] 7) MOV AX, [BP+SI+2400H]
¶þ¡¢ÔĶÁÏÂÃæµÄ³ÌÐò¶Î£¬Ð´³öÔËÐнá¹û 1. CLC
MOV AX,248BH MOV CL,3
RCL AX,CL Ö´ÐÐÒÔÉϳÌÐòÐòÁÐºó£¬ AX=_____2458H_______¡£
2. MOV BX£¬6D16H
MOV CL£¬7
SHR BX£¬CL Ö´ÐкóBX¼Ä´æÆ÷ÖеÄÄÚÈÝ_____00DAH________¡£
3. MOV DX,01H
MOV AX,42H MOV CL,4 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL
OR DL,BL Ö´Ðкó (DX)=__(DX)=0010H___,(AX)=_(AX)=0420H__
9
Öб±´óѧ΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°Á·Ï°²á
4. mov ax,693ah
mov al,ah not al add al,ah
inc al ³ÌÐò¶ÎÖ´Ðкó£¬AL£½ ___0000___ ¡¢ZF£½ _____1_____¡£
5. ¸ù¾Ý³ÌÐòÌî¿Õ(³ÌÐò¶Î˳ÐòÖ´ÐÐ)
MOV CL, 58 ;CL= 58 MOV AL, 79 ;AL= 79 ADD AL, CL ;AL= 89 H, AF= 1 , CF= 0 DAA ;AL= 8FH , AF= 1 , CF= 0
Èý¡¢ÅжÏÌâ
1. Ö´ÐÐÏÂÁÐÖ¸Áî¿ÉÒÔ½«00HË͵½¶Ë¿ÚµØÖ·Îª1A0HµÄÍâÉèÉÏ¡£ ( ¡Á )
MOV AL£¬00H
MOV 1A0H £¬AL 2. Ö´ÐÐÏÂÁÐÖ¸Áî¿ÉÒÔ½«Æä00HË͵½¶Ë¿ÚµØÖ·Îª2F8HµÄÍâÉèÉÏ£º( ¡Ì )
MOV AL£¬00H MOV DX£¬2F8H OUT DX£¬AL 3. 8088µÄMOVÖ¸Áî²»ÄܽøÐÐÁ½¸ö´æ´¢Æ÷µ¥ÔªÖ®¼äµÄÊý¾ÝÖ±½Ó´«ËÍ¡£( ¡Ì ) 4. 8088ϵͳÖУ¬¶ÑÕ»µÄ´æÈ¡¿ÉÒÔÒÔ×Ö»ò×Ö½ÚΪµ¥Î»¡£ ( ¡Á )
5. INºÍOUTÖ¸Áî¿ÉѰַµÄ¿ÚµØÖ·Îª64K¸ö£¬¶Ë¿ÚµØÖ·Ö»ÄÜÓÃÁ¢¼´Êý¡£( ¡Á ) 6. ÅжÏÏÂÁÐÖ¸ÁîÊÇ·ñÕýÈ· (1) JMP (2) IN (3) MOV (4) SHL
BX AL,DX DS£¬AX AX,2
¡Ì ¡Ì ¡Ì ¡Á ¡Á ¡Á ¡Á ¡Ì
(9) PUSH SS (10) POP
CS
¡Ì ¡Á ¡Á ¡Á ¡Á ¡Á ¡Á ¡Á
(11) XCHG BX£¬IP (12) MOV (13) IN (14) MOV (15) IN (16) MOV
[BX]£¬[1000] AL£¬N£»(N>255) [BX][DI]£¬10 BX£¬DX CS£¬AX
(5) PUSH AL (6) MOV (7) MOV (8) MOV
ES,3F00H [BX],[SI] AL,[BX+10H]
µÚ4Õ »ã±àÓïÑÔ³ÌÐòÉè¼Æ
4.1 »ù±¾Á·Ï°Ìâ
Ò»¡¢Ìî¿ÕÌâ
1£®±êºÅºÍ±äÁ¿¶¼ÊÇ´æÖüµ¥ÔªµÄ·ûºÅµØÖ·£¬µ«ÆäÄÚÈݲ»Í¬£¬±êºÅÊÇ______Ö¸Áî_______µÄ·ûºÅµØÖ·£¬¶ø±äÁ¿ÊÇ____²Ù×÷Êý________µÄ·ûºÅµØÖ·¡£
2£®»ã±àÓïÑÔÔ´³ÌÐò½áÊøÎ±Ö¸ÁîÊÇ_____END ______¡£ 3£®Ò»¸ö³ÌÐòÖУ¬ÓÐÏÂÁÐαָÁ
ARY DB 25 DUP£¨3£¬4£¬4 DUP£¨£¿£¬1£¬0£©£© LEN DW $ - ARY
1 0
Öб±´óѧ΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°Á·Ï°²á
LENµ¥Ôª´æ´¢µÄÖµÊÇ 350 ¡£ 4£®ÓÐÒ»¸ö³ÌÐòƬ¶ÎÈçÏÂ
MSG DW 3 DUP(?, 2 DUP (5,4),3) MEN DW $-MSG ©« ©«
MOV AX, SEG MEN MOV DS, AX MOV AX, MEN
AXµÄÖµ×îºóÊÇ 36 ¡£
¶þ¡¢¼ò´ðÌâ
1£®¼òÊö8086»ã±àÓïÑÔÖУ¬Ö¸ÁîÓï¾äºÍαָÁîÓï¾äµÄÇø±ðºÍ×÷Óá£
´ð£ºÖ¸ÁîÊÇÕæÕýÈüÆËã»ú½øÐÐijÖÖ¾ßÌå²Ù×÷µÄÃüÁËüÔÚ³ÌÐòÔËÐÐʱִÐС£Î±Ö¸ÁîÊÇ֪ͨ»ã±à³ÌÐòÔÚ·Òë³ÌÐòʱִÐеÄÃüÁî¡£
2£®Ê²Ã´ÊDZäÁ¿£¬±äÁ¿ÓÐÄÄЩÊôÐÔ£¬ÈçºÎʹÓÃÕâЩÊôÐÔ£¿
´ð£º±äÁ¿ÊÇÔÚ³ÌÐòÔËÐйý³ÌÖУ¬ÆäÖµ¿ÉÒԸıäµÄÁ¿£¬Í¨³£¸øÆäÃüÃûÒ»¸ö·ûºÅ£¬³ÆÎª±äÁ¿Ãû¡£±äÁ¿ÓÐÈýÖÖÊôÐÔ£º±äÁ¿µÄÀàÐÍ¡¢±äÁ¿µÄ¶ÎµØÖ·¡¢±äÁ¿µÄ¶ÎÄÚÆ«ÒƵØÖ·£»ÀàÐÍÊôÐÔʹÓÃSIZE»ñÈ¡£¬¶ÎµØÖ·ÊôÐÔÓÃSEG»ñÈ¡£¬Æ«ÒƵØÖ·ÊôÐÔÓÃOFFSET»ñÈ¡¡£ 3£®ÊÔ˵Ã÷ΪʲôÓÐʱºò±ØÐëʹÓÃPTRÊôÐÔ²Ù×÷·û£¿
´ð£º±äÁ¿ÊÇÔÚ³ÌÐòÔËÐйý³ÌÖУ¬ÆäÖµ¿ÉÒԸıäµÄÁ¿£¬Í¨³£¸øÆäÃüÃûÒ»¸ö·ûºÅ£¬³ÆÎª±äÁ¿Ãû¡£±äÁ¿ÓÐÈýÖÖÊôÐÔ£º±äÁ¿µÄÀàÐÍ¡¢±äÁ¿µÄ¶ÎµØÖ·¡¢±äÁ¿µÄ¶ÎÄÚÆ«ÒƵØÖ·£»ÀàÐÍÊôÐÔʹÓÃSIZE»ñÈ¡£¬¶ÎµØÖ·ÊôÐÔÓÃSEG»ñÈ¡£¬Æ«ÒƵØÖ·ÊôÐÔÓÃOFFSET»ñÈ¡¡£ 4£®Ê²Ã´ÊÇ»ã±àÓïÑÔ£¬Ê²Ã´ÊÇ»ã±à£¿
´ð£º»ã±àÓïÑÔÊÇÓÃÖ¸ÁîÖú¼Ç·û¡¢·ûºÅµØÖ·±àд³ÌÐòµÄÒ»ÖÖÓïÑÔ£¬Ã¿ÌõÖ¸Áî¶ÔÓ¦Ò»ÖÖ»úÆ÷Ö¸Áî¡£»ã±à¾ÍÊǽ«»ã±àÓïÑÔÔ´³ÌÐò·Òë³É»úÆ÷Ö¸ÁîµÄ¹ý³Ì
5£®¼òÊöDOSϵͳ¹¦Äܵ÷ÓõÄʹÓ÷½·¨£¿
´ð£º1)ÔÚAH¼Ä´æÆ÷ÖÐÉ趨ËùÐèµ÷ÓõŦÄܺţ»2)¸ù¾Ý¹¦ÄܵĹ涨É趨Èë¿Ú²ÎÊý£»3)ÓÃINT 21H½øÈë×Ó³ÌÐò£»4)¸ù¾Ý¹æ¶¨£¬´ÓÏàÓ¦µÄ¼Ä´æÆ÷È¡µÃ·µ»ØÖµ¡£ Èý¡¢³ÌÐòÉè¼ÆÌâ
1£®´ÓBUFFµ¥ÔªÆðÓÐÒ»¸ö×Ö·û´®(³¤¶ÈСÓÚ65535)£¬ÒÔ'*'½áÊø£¬±àдһ¸öÍêÕû³ÌÐòÇó¸Ã×Ö·û´®³¤¶È´æÈëLENTµ¥Ôª£¬²¢Í³¼Æ×Ö·û´®Öк¬ÓдóдӢÎÄ×Ö·ûµÄ¸öÊý²¢´æÈëCOUNTµ¥Ôª¡£ÒªÇóÔ´³ÌÐò¾ß±¸±ØÒªµÄαָÁîºÍ¶Î˵Ã÷¡£ 1£® DATA SEGMENT INC CX BUFF DB 'ABCD??.*' CMP AL£¬'A' LENT DW £¿ JC NEXT COUNT DW ? CMP AL£¬'Z' DATA ENDS JNC NEXT CODE SEGMENT INC DX ASSUME CS£ºCODE£¬DS£ºDATA NEXT£º INC BX START£ºMOV AX£¬DATA JMP LP MOV DS£¬AX DONE£º INC CX LEA BX£¬BUFF MOV LENT£¬CX MOV CX£¬0 MOV COUNT£¬DX MOV DX£¬0 MOV AH£¬4CH LP£º MOV AL£¬[BX] INT 21H CMP AL£¬'*' CODE ENDS JZ DONE END START
11
Öб±´óѧ΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°Á·Ï°²á
2£®ÓÐÒ»´ø·ûºÅ8λÊýX´æÓÚDATµ¥Ôª£®±àÒ»¸ö³ÌÐò¶ÎÅжϸÃÊý£¬ÈôxСÓÚ0Ôò½«0FFHËÍMARKµ¥Ôª£»ÈôXµÈÓÚ0Ôò½«MARK+1µ¥ÔªÖÃ0FFH£»ÈôX´óÓÚ0ÔòÖÃMARK+2µ¥ÔªÎª0FFH¡£ 2£® MOV AL£¬DAT JMP DONE AND AL£¬AL LPl£º MOV MARK£¬0FFH JS LP1 JMP DONE JZ LP2 LP2£º MOV MARK+1£¬0FFH MOV MARK+2£¬0FFH DONE£º HLT
3£®ÒÑÖªÓÐX¡¢Y¡¢ZÈý¸ö×Ö±äÁ¿£¬´æ·ÅÎÞ·ûºÅÕûÊý£¬Çë±àÒ»¸öÍêÕûµÄ³ÌÐòʵÏÖ¹«Ê½Z=£¨X+Y£©/£¨X-Y+600£©£¨²»¿¼ÂÇÒç³öÇé¿ö£©¡£
´ð£ºDSEG SEGMENT SUB BX£¬Y X DW £¿ ADD BX£¬600 Y DW £¿ MOV AX£¬X Z DW £¿ ADD AX£¬Y DSEG ENDS MOV DX£¬0 CSEG SEGMENT DIV BX ASSUME CS£ºCSEG£¬DS£ºDSEG MOV Z£¬AX MAIN PROC FAR MOV AH£¬4CH BEGIN: MOV AX£¬DSEG INT 21H MOV DS£¬AX MAIN ENDP MOV BX£¬X CSEG ENDS
END BEGIN
4£®AX¼Ä´æÆ÷Öдæ·Å×Å4λʮÁù½øÖÆÊý¡£ÊÔ±àдһ¸ö»ã±àÓïÑÔ³ÌÐò£¬½«Õâ4λʮÁù½øÖÆÊý·Ö±ðת»»ÎªÏàÓ¦µÄASCIIÂ룬²¢ÒÀ´Î´æ·Åµ½RESULTÊý×éµÄ4¸ö×Ö½ÚÖÐÈ¥£¬ÒªÇóÓõ÷ÓÃ×Ó³ÌÐòµÄ·½·¨ÊµÏÖ¡£ CODE SEGMENT HASC PROC NEAR ASSUME CS:CODE,DS:CODE MOV DL,AL START: MOV BX,CODE AND DL,0FH MOV DS,BX CMP DL,9 MOV CL,4 JA L2
MOV BL,4 ADD DL,30H MOV SI,OFFSET RESULT L1: RET
LP: CALL HASC L2: ADD DL,37H MOV [SI],DL JMP L1 INC SI HASC ENDP
SHR AX,CL RESULT DB 4 DUP(?) DEC BL CODE ENDS JNZ LP END START EXIT: MOV AH,4CH INT 21H
5£®Ð´³ö¶Ô´æ·ÅÔÚDXºÍAXÖеÄË«×Ö³¤ÊýÇó²¹µÄÖ¸ÁîÐòÁС£
·½·¨1 ·½·¨2 ·½·¨3 MOV CX£¬0 NOT AX NEG DX SUB CX£¬AX NOT DX NEG AX MOV AX£¬CX ADD AX,1 SBB DX,0 MOV CX, 0 ADC DX,0 SBB CX, DX MOV DX, CX
6£®ÉèÓÐÁ½¸öµÈ³¤×Ö·û´®¡£ÊÔ±àдһ¸ö»ã±àÓïÑÔ³ÌÐò£¬±È½ÏËüÃÇÊÇ·ñÍêÈ«Ïàͬ£»ÈôÏàͬ£¬Ôò½«×Ö·û\ËÍÈëALÖУ¬·ñÔò£¬½«×Ö·û\ËÍÈëALÖС£ 6£® CODE SEGMENT REPE CMPSB
1 2