(3) CMP OP1, OP2 (4) CMP AX, OP1 ´ð£º¼û×¢ÊÍ¡£
£»´í£¬²»Äܶ¼ÊÇ´æ´¢Æ÷²Ù×÷Êý
£»´í£¬ÀàÐͲ»Æ¥Å䣬ӦΪCMP ax, word ptr op1
4.3 ¼ÙÉèÏÂÁÐÖ¸ÁîÖеÄËùÓбêʶ·û¾ùΪÀàÐÍÊôÐÔΪ×ֵıäÁ¿£¬ÇëÖ¸³öÏÂÁÐÄÄЩָÁîÊÇ·Ç·¨µÄ£¿ËüÃǵÄ
´íÎóÊÇʲô£¿
(1) MOV BP, AL £»´í£¬¼Ä´æÆ÷ÀàÐͲ»Æ¥Åä (2) MOV WORD_OP [BX+4*3][DI], SP (3) MOV WORD_OP1, WORD_OP2 £»´í£¬²»Äܶ¼ÊÇ´æ´¢Æ÷²Ù×÷Êý (4) MOV AX, WORD_OP1[DX] £»´í£¬DX²»ÄÜÓÃÓÚ´æ´¢Æ÷Ѱַ (5) MOV SAVE_WORD, DS
(6) MOV SP, SS:DATA_WORD [BX][SI] (7) MOV [BX][SI], 2 £»´í£¬[BX][SI]δָ³öÊý¾ÝÀàÐÍ (8) MOV AX, WORD_OP1+WORD_OP2 (9) MOV AX, WORD_OP1-WORD_OP2+100 (10) MOV WORD_OP1, WORD_OP1-WORD_OP2 ´ð£º¼û×¢ÊÍ¡£ 4.4 ¼ÙÉèVAR1ºÍVAR2Ϊ×Ö±äÁ¿£¬LABΪ±êºÅ£¬ÊÔÖ¸³öÏÂÁÐÖ¸ÁîµÄ´íÎóÖ®´¦£º
(1) ADD VAR1, VAR2 £»²»Äܶ¼ÊÇ´æ´¢Æ÷²Ù×÷Êý (2) SUB AL, VAR1 £»Êý¾ÝÀàÐͲ»Æ¥Åä (3) JMP LAB [SI] £»LABÊDZêºÅ¶ø²»ÊDZäÁ¿Ãû£¬ºóÃæ²»ÄܼÓ[SI] (4) JNZ VAR1 £»VAR1ÊDZäÁ¿¶ø²»ÊDZêºÅ (5) JMP NEAR LAB £»Ó¦Ê¹ÓÃNEAR PTR ´ð£º¼û×¢ÊÍ¡£ 4.5 »Í¼ËµÃ÷ÏÂÁÐÓï¾äËù·ÖÅäµÄ´æ´¢¿Õ¼ä¼°³õʼ»¯µÄÊý¾ÝÖµ¡£
(1) BYTE_VAR DB ?BYTE¡®,12,-12H,3 DUP(0,?,2 DUP(1,2),?) (2) WORD_VAR DW 5 DUP(0,1,2),?,-5,?BY¡®,?TE¡®,256H ´ð£º´ð°¸ÈçÏÂͼËùʾ¡£
4.6 ÊÔÁгö¸÷ÖÖ·½·¨£¬Ê¹»ã±à³ÌÐò°Ñ5150H´æÈëÒ»¸ö´æ´¢Æ÷×ÖÖÐ(È磺DW 5150H)¡£
´ð£ºDW 5150H
BYTE_VAR 42H WORD_VAR
59H DB 50H, 51H
54H
45H DB ?PQ¡®
0DH
EEH DW ?QP¡®
00H ½«ÉÏÃæ
- ÄÚÈÝÔÙ ORG 5150H
01H ÖØ¸´4´Î DW $
02H
4.7 ÇëÉèÖÃÒ»¸öÊý¾Ý¶ÎDATASG£¬ÆäÖж¨ÒåÒÔÏÂ×Ö·û±äÁ¿»òÊý¾Ý±äÁ¿¡£ 01H
(1) FLD1BΪ×Ö·û´®±äÁ¿£º?personal computer¡®£» 02H (2) FLD2BΪʮ½øÖÆÊý×Ö½Ú±äÁ¿£º32£» - 00H (3) FLD3BΪʮÁù½øÖÆÊý×Ö½Ú±äÁ¿£º20£»
- (4) FLD4BΪ¶þ½øÖÆÊý×Ö½Ú±äÁ¿£º01011001£»
01H (5) FLD5BΪÊý×ÖµÄASCII×Ö·û×Ö½Ú±äÁ¿£º32654£»
02H
(6) FLD6BΪ10¸öÁãµÄ×Ö½Ú±äÁ¿£»
01H
(7) FLD7BΪÁã¼þÃû(ASCIIÂë)¼°ÆäÊýÁ¿(Ê®½øÖÆÊý)µÄ±í¸ñ£º 02H
PART1 20 - PART2 50 PART3 14 4.5Ìâ´ð°¸
(8) FLD1WΪʮÁù½øÖÆÊý×Ö±äÁ¿£ºFFF0£» (9) FLD2WΪ¶þ½øÖÆÊýµÄ×Ö±äÁ¿£º01011001£» (10) FLD3WΪ(7)Áã¼þ±íµÄµØÖ·±äÁ¿£»
(11) FLD4WΪ°üÀ¨5¸öÊ®½øÖÆÊýµÄ×Ö±äÁ¿£º5£¬6£¬7£¬8£¬9£»
00H 00H 01H 00H 02H 00H ©« ©« ©« - - FBH FFH 00H 59H 42H 45H 54H 56H 02H
(12) FLD5WΪ5¸öÁãµÄ×Ö±äÁ¿£»
(13) FLD6WΪ±¾¶ÎÖÐ×ÖÊý¾Ý±äÁ¿ºÍ×Ö½ÚÊý¾Ý±äÁ¿Ö®¼äµÄµØÖ·²î¡£ ´ð£ºDATASG SEGMENT
FLD1B DB ?personal computer¡® FLD2B DB 32 FLD3B DB 20H FLD4B DB 01011001B FLD5B DB ?32654¡® FLD6B DB 10 DUP (0) FLD7B DB ?PART1¡®, 20
DB ?PART2¡®, 50 DB ?PART3¡®, 14
FLD1W DW 0FFF0H FLD2W DW 01011001B FLD3W DW FLD7B FLD4W DW 5, 6, 7, 8, 9 FLD5W DW 5 DUP (0)
FLD6W DW FLD1W-FLD1B
DATASG ENDS
4.8 ¼ÙÉè³ÌÐòÖеÄÊý¾Ý¶¨ÒåÈçÏ£º
PARTNO DW ? PNAME DB 16 DUP (?) COUNT DD ? PLENTH EQU $-PARTNO
ÎÊPLENTHµÄֵΪ¶àÉÙ£¿Ëü±íʾʲôÒâÒ壿 ´ð£ºPLENTH=22=16H£¬Ëü±íʾ±äÁ¿PARTNO¡¢PNAME¡¢COUNT×ܹ²Õ¼ÓõĴ洢µ¥ÔªÊý(×Ö½ÚÊý)¡£ 4.9 ÓзûºÅ¶¨ÒåÓï¾äÈçÏ£º
BUFF DB 1, 2, 3, ?123¡® EBUFF DB 0 L EQU EBUFF - BUFF ÎÊLµÄÖµÊǶàÉÙ£¿ ´ð£ºL£½6¡£
4.10 ¼ÙÉè³ÌÐòÖеÄÊý¾Ý¶¨ÒåÈçÏ£º
LNAME DB 30 DUP (?) ADDRESS DB 30 DUP (?) CITY DB 15 DUP (?) CODE_LIST DB 1, 7, 8, 3, 2
(1) ÓÃÒ»ÌõMOVÖ¸ÁLNAMEµÄÆ«ÒÆµØÖ··ÅÈëAX¡£
(2) ÓÃÒ»ÌõÖ¸ÁCODE_LISTµÄÍ·Á½¸ö×Ö½ÚµÄÄÚÈÝ·ÅÈëSI¡£
(3) ÓÃÒ»Ìõα²Ù×÷ʹCODE_LENGTHµÄÖµµÈÓÚCODE_LISTÓòµÄʵ¼Ê³¤¶È¡£ ´ð£º(1) MOV AX, OFFSET LNAME
(2) MOV SI, WORD PTR CODE_LIST
(3) CODE_LENGTH EQU $ - CODE_LIST £»´ËÓï¾ä±ØÐë·ÅÔÚCODE_LISTÓï¾äÖ®ºó 4.11 ÊÔд³öÒ»¸öÍêÕûµÄÊý¾Ý¶ÎDATA_SEG£¬Ëü°ÑÕûÊý5¸³ÓèÒ»¸ö×Ö½Ú£¬²¢°ÑÕûÊý-1£¬0£¬2£¬5ºÍ4·Å
ÔÚ10×ÖÊý×éDATA_LISTµÄÍ·5¸öµ¥ÔªÖС£È»ºó£¬Ð´³öÍêÕûµÄ´úÂë¶Î£¬Æä¹¦ÄÜΪ£º°ÑDATA_LISTÖÐÍ·5¸öÊýÖеÄ×î´óÖµºÍ×îСֵ·Ö±ð´æÈëMAXºÍMINµ¥ÔªÖС£ ´ð£ºDATA_SEG SEGMENT
NUM DB 5
DATA_LIST DW -1, 0, 2, 5, 4, 5 DUP (?) MAX DW ? MIN DW ? DATA_SEG ENDS
£»---------------------------------------------------------------- CODE_SEG SEGMENT MAIN PROC FAR
ASSUME CS: CODE_SEG, DS: DATA_SEG
START: PUSH DS £»ÉèÖ÷µ»ØDOS
SUB AX, AX PUSH AX
MOV AX, DATA_SEG £»¸øDS¸³Öµ MOV DS, AX
£»
MOV CX, 4 £»³ÌÐò¶Î¿ªÊ¼ LEA BX, DATA_LIST MOV AX, [BX] MOV MAX, AX MOV MIN, AX
ROUT1: ADD BX, 2
MOV AX, [BX] CMP AX, MAX JNGE ROUT2 MOV MAX, AX
ROUT2: CMP AX, MIN
JNLE ROUT3 MOV MIN, AX
ROUT3: LOOP ROUT1 £»³ÌÐò¶Î½áÊø
RET
MAIN ENDP CODE_SEG ENDS
£»----------------------------------------------------------------
END START
4.12 ¸ø³öµÈÖµÓï¾äÈçÏ£º
ALPHA EQU 100 BETA EQU 25 GAMMA EQU 2 ÏÂÁбí´ïʽµÄÖµÊǶàÉÙ£¿ (1) ALPHA * 100 + BETA (2) ALPHA MOD GAMMA + BETA (3) (ALPHA +2) * BETA ¨C 2 (4) (BETA / 3) MOD 5 (5) (ALPHA +3) * (BETA MOD GAMMA) (6) ALPHA GE GAMMA (7) BETA AND 7 (8) GAMMA OR 3 ´ð£º¼û×¢ÊÍ¡£
£»=2729H £»=19H £»=9F4H £»=3H £»=67H £»=0FFFFH £»=01H £»=03H
4.13 ¶ÔÓÚÏÂÃæµÄÊý¾Ý¶¨Ò壬ÈýÌõMOVÖ¸Áî·Ö±ð»ã±à³Éʲô£¿(¿ÉÓÃÁ¢¼´Êý·½Ê½±íʾ)
TABLEA DW 10 DUP (?) TABLEB DB 10 DUP (?) TABLEC DB ?1234¡® ©« MOV AX, LENGTH TABLEA £»»ã±à³ÉMOV AX, 000AH MOV BL, LENGTH TABLEB £»»ã±à³ÉMOV BL, 000AH MOV CL, LENGTH TABLEC £»»ã±à³ÉMOV CL, 0001H ´ð£º¼û×¢ÊÍ¡£ 4.14 ¶ÔÓÚÏÂÃæµÄÊý¾Ý¶¨Ò壬¸÷ÌõMOVÖ¸Áîµ¥¶ÀÖ´Ðкó£¬ÓйؼĴæÆ÷µÄÄÚÈÝÊÇʲô£¿
FLDB DB ?
TABLEA DW 20 DUP (?) TABLEB DB ?ABCD¡®
(1) MOV AX, TYPE FLDB £»(AX)=0001H (2) MOV AX, TYPE TABLEA £»(AX)=0002H
(3) MOV CX, LENGTH TABLEA (4) MOV DX, SIZE TABLEA (5) MOV CX, LENGTH TABLEB ´ð£º¼û×¢ÊÍ¡£
£»(CX)=0014H £»(DX)=0028H £»(CX)=0001H
4.15 Ö¸³öÏÂÁÐα²Ù×÷±í´ï·½Ê½µÄ´íÎ󣬲¢¸ÄÕýÖ®¡£
(1) DATA_SEG SEG £»DATA_SEG SEGMENT£¨Î±²Ù×÷´í£© (2) SEGMENT ?CODE¡® £»SEGNAME SEGMENT ?CODE¡®£¨È±ÉÙ¶ÎÃû×Ö£© (3) MYDATA SEGMENT/DATA £»MYDATA SEGMENT
©« ENDS £»MYDATA ENDS£¨È±ÉÙ¶ÎÃû×Ö£©
(4) MAIN_PROC PROC FAR £»É¾³ýEND MAIN_PROCÒ²¿ÉÒÔ
©«
END MAIN_PROC £»MAIN_PROC ENDP £»ÉÏÏÂÁ½¾ä½»»»Î»ÖÃ
MAIN_PROC ENDP £» END MAIN_PROC ´ð£º¼û×¢ÊÍ¡£ 4.16 °´ÏÂÃæµÄÒªÇóд³ö³ÌÐòµÄ¿ò¼Ü
(1) Êý¾Ý¶ÎµÄλÖôÓ0E000H¿ªÊ¼£¬Êý¾Ý¶ÎÖж¨ÒåÒ»¸ö100×Ö½ÚµÄÊý×飬ÆäÀàÐÍÊôÐÔ¼ÈÊÇ×ÖÓÖÊÇ×Ö
½Ú£»
(2) ¶ÑÕ»¶Î´ÓС¶Î¿ªÊ¼£¬¶Î×éÃûΪSTACK£»
(3) ´úÂë¶ÎÖÐÖ¸¶¨¶Î¼Ä´æÆ÷£¬Ö¸¶¨Ö÷³ÌÐò´Ó1000H¿ªÊ¼£¬¸øÓйضμĴæÆ÷¸³Öµ£» (4) ³ÌÐò½áÊø¡£
´ð£º³ÌÐòµÄ¿ò¼ÜÈçÏ£º
DATA_SEG SEGMENT AT 0E000H ARRAY_B LABEL BYTE ARRAY_W DW 50 DUP (?) DATA_SEG ENDS £»ÒÔÉ϶¨ÒåÊý¾Ý¶Î £»---------------------------------------------------------------- STACK_SEG SEGMENT PARA STACK ?STACK¡®
DW 100H DUP (?)
TOS LABEL WORD STACK_SEG ENDS £»ÒÔÉ϶¨Òå¶ÑÕ»¶Î £»---------------------------------------------------------------- CODE_SEG SEGMENT MAIN PROC FAR
ASSUME CS: CODE_SEG, DS: DATA_SEG, SS: STACK_SEG ORG 1000H
START: MOV AX, STACK_SEG
MOV SS, AX £»¸øSS¸³Öµ MOV SP, OFFSET TOS £»¸øSP¸³Öµ PUSH DS £»ÉèÖ÷µ»ØDOS SUB AX, AX PUSH AX
MOV AX, DATA_SEG MOV DS, AX £»¸øDS¸³Öµ
©« £»³ÌÐò¶Î²¿·Ö RET
MAIN ENDP CODE_SEG ENDS £»ÒÔÉ϶¨Òå´úÂë¶Î £»----------------------------------------------------------------
END START 4.17 дһ¸öÍêÕûµÄ³ÌÐò·ÅÔÚ´úÂë¶ÎC_SEGÖУ¬ÒªÇó°ÑÊý¾Ý¶ÎD_SEGÖеÄAUGENDºÍ¸½¼Ó¶ÎE_SEG
ÖеÄADDENDÏà¼Ó£¬²¢°Ñ½á¹û´æ·ÅÔÚD_SEG ¶ÎÖеÄSUMÖС£ÆäÖÐAUGEND¡¢ADDENDºÍSUM¾ùΪ˫¾«¶ÈÊý£¬AUGEND¸³ÖµÎª99251£¬ADDEND¸³ÖµÎª -15962¡£ ´ð£º³ÌÐòÈçÏ£º