阅读:1220回复:3
跳转问题
我该怎么办?
MCS-51 MACRO ASSEMBLER AA 11/09/:2 PAGE 1 DOS 7.10 (038-N) MCS-51 MACRO ASSEMBLER, V2.2 OBJECT MODULE PLACED IN AA.OBJ ASSEMBLER INVOKED BY: C:\\MYDOCU~1\\ASM51.EXE AA.ASM LOC OBJ LINE SOURCE 0000 759000 1 main: mov p1,#00h 0003 758160 2 mov sp,#60h 0006 7800 3 key: mov r0,#00h 0008 E2 4 movx a,@r0 0009 702A 5 jnz record 000B 08 6 inc r0 000C E2 7 movx a,@r0 000D 7070 8 jnz display 000F 08 9 inc r0 0010 E2 10 movx a,@r0 0011 7000 11 jnz setmove *** ERROR #25, LINE #11 (0), (PASS 2) DESTINATION ADDRESS OUT OF RANGE FOR RELATIVE REFERENCE 0013 08 12 inc r0 0014 E2 13 movx a,@r0 0015 7000 14 jnz control *** ERROR #25, LINE #14 (11), (PASS 2) DESTINATION ADDRESS OUT OF RANGE FOR RELATIVE REFERENCE 0017 209005 15 atmove: jb p1.0,atdown 001A 20910D 16 jb p1.1,atup 001D 80E7 17 sjmp key 001F E5A0 18 atdown: mov a,p2 0021 B53802 19 cjne a,38h,atdown1 0024 214E 20 ajmp setstop 0026 5000 21 atdown1:jnc setstop *** ERROR #25, LINE #21 (14), (PASS 2) DESTINATION ADDRESS OUT OF RANGE FOR RELATIVE REFERENCE 0028 0106 22 ajmp key 002A E5A0 23 atup: mov a,p2 002C B53802 24 cjne a,38h,atup1 002F 214E 25 ajmp setstop 0031 4000 26 atup1: jc setstop *** ERROR #25, LINE #26 (21), (PASS 2) DESTINATION ADDRESS OUT OF RANGE FOR RELATIVE REFERENCE 0033 0106 27 ajmp key 0035 F520 28 record: mov 20h,a 0037 200015 29 jb 00h,record0 003A 200118 30 jb 01h,record1 003D 20021B 31 jb 02h,record2 0040 20031E 32 jb 03h,record3 0043 200421 33 jb 04h,record4 0046 200524 34 jb 05h,record5 0049 200627 35 jb 06h,record6 004C 20072A 36 jb 07h,record7 004F 85A030 37 record0:mov 30h,p2 0052 020006 38 ljmp key 0055 85A031 39 record1:mov 31h,p2 0058 020006 40 ljmp key 005B 85A032 41 record2:mov 32h,p2 005E 020006 42 ljmp key 0061 85A033 43 record3:mov 33h,p2 0064 020006 44 ljmp key 0067 85A034 45 record4:mov 34h,p2 006A 020006 46 ljmp key MCS-51 MACRO ASSEMBLER AA 11/09/:2 PAGE 2 LOC OBJ LINE SOURCE 006D 85A035 47 record5:mov 35h,p2 0070 020006 48 ljmp key 0073 85A036 49 record6:mov 36h,p2 0076 020006 50 ljmp key 0079 85A037 51 record7:mov 37h,p2 007C 020006 52 ljmp key 007F F520 53 display:mov 20h,a 0081 200015 54 jb 00h,display0 0084 200118 55 jb 01h,display1 0087 20021B 56 jb 02h,display2 008A 20031E 57 jb 03h,display3 008D 200421 58 jb 04h,display4 0090 200524 59 jb 05h,display5 0093 200627 60 jb 06h,display6 0096 20072A 61 jb 07h,display7 0099 8530B0 62 display0:mov p3,30h 009C 020006 63 ljmp key 009F 8531B0 64 display1:mov p3,31h 00A2 020006 65 ljmp key 00A5 8532B0 66 display2:mov p3,32h 00A8 020006 67 ljmp key 00AB 8533B0 68 display3:mov p3,33h 00AE 020006 69 ljmp key 00B1 8534B0 70 display4:mov p3,34h 00B4 020006 71 ljmp key 00B7 8535B0 72 display5:mov p3,35h 00BA 020006 73 ljmp key 00BD 8536B0 74 display6:mov p3,36h 00C0 020006 75 ljmp key 00C3 8537B0 76 display7:mov p3,37h 00C6 020006 77 ljmp key 00C9 F520 78 setmove:mov 20h,a 00CB 200015 79 jb 00h,setmove0 00CE 20011D 80 jb 01h,setmove1 00D1 200225 81 jb 02h,setmove2 00D4 20032D 82 jb 03h,setmove3 00D7 200435 83 jb 04h,setmove4 00DA 20053D 84 jb 05h,setmove5 00DD 200645 85 jb 06h,setmove6 00E0 20074D 86 jb 07h,setmove7 00E3 853038 87 setmove0:mov 38h,30h 00E6 E5A0 88 mov a,p2 00E8 B53850 89 cjne a,38h,setmoveto 00EB 02014E 90 ljmp setstop 00EE 853138 91 setmove1:mov 38h,31h 00F1 E5A0 92 mov a,p2 00F3 B53845 93 cjne a,38h,setmoveto 00F6 02014E 94 ljmp setstop 00F9 853238 95 setmove2:mov 38h,32h 00FC E5A0 96 mov a,p2 00FE B5383A 97 cjne a,38h,setmoveto 0101 02014E 98 ljmp setstop 0104 853338 99 setmove3:mov 38h,33h 0107 E5A0 100 mov a,p2 0109 B5382F 101 cjne a,38h,setmoveto MCS-51 MACRO ASSEMBLER AA 11/09/:2 PAGE 3 LOC OBJ LINE SOURCE 010C 02014E 102 ljmp setstop 010F 853438 103 setmove4:mov 38h,34h 0112 E5A0 104 mov a,p2 0114 B53824 105 cjne a,38h,setmoveto 0117 02014E 106 ljmp setstop 011A 853538 107 setmove5:mov 38h,35h 011D E5A0 108 mov a,p2 011F B53819 109 cjne a,38h,setmoveto 0122 02014E 110 ljmp setstop 0125 853638 111 setmove6:mov 38h,36h 0128 E5A0 112 mov a,p2 012A B5380E 113 cjne a,38h,setmoveto 012D 02014E 114 ljmp setstop 0130 853738 115 setmove7:mov 38h,37h 0133 E5A0 116 mov a,p2 0135 B53803 117 cjne a,38h,setmoveto 0138 02014E 118 ljmp setstop 013B 4000 119 setmoveto:jc setdown *** ERROR #18, LINE #119 (26), (PASS 2) UNDEFINED SYMBOL 013D 020140 120 ljmp setmoveup 0140 C290 121 setmoveup:clr p1.0 0142 D291 122 setb p1.1 0144 020006 123 ljmp key 0147 C291 124 setmovedown:clr p1.1 0149 D290 125 setb p1.0 014B 020006 126 ljmp key 014E 759000 127 setstop:mov p1,#00h 0151 020006 128 ljmp key 0154 F520 129 control:mov 20h,a 0156 200006 130 jb 00h,controlup 0159 200109 131 jb 01h,controldown 015C 2002EF 132 jb 02h,setstop 015F 753800 133 controlup:mov 38h,#00h 0162 020140 134 ljmp setmoveup 0165 753800 135 controldown:mov 38h,#ffh *** ERROR #18, LINE #135 (119), (PASS 2) UNDEFINED SYMBOL 0168 80DD 136 sjmp setmovedown 137 end MCS-51 MACRO ASSEMBLER AA 11/09/:2 PAGE 4 SYMBOL TABLE LISTING ------ ----- ------- N A M E T Y P E V A L U E A T T R I B U T E S ATDOWN. . . C ADDR 001FH A ATDOWN1 . . C ADDR 0026H A ATMOVE. . . C ADDR 0017H A ATUP. . . . C ADDR 002AH A ATUP1 . . . C ADDR 0031H A CONTROL . . C ADDR 0154H A CONTROLDOWN C ADDR 0165H A CONTROLUP . C ADDR 015FH A DISPLAY . . C ADDR 007FH A DISPLAY0. . C ADDR 0099H A DISPLAY1. . C ADDR 009FH A DISPLAY2. . C ADDR 00A5H A DISPLAY3. . C ADDR 00ABH A DISPLAY4. . C ADDR 00B1H A DISPLAY5. . C ADDR 00B7H A DISPLAY6. . C ADDR 00BDH A DISPLAY7. . C ADDR 00C3H A FFH . . . . ---- ---- KEY . . . . C ADDR 0006H A MAIN. . . . C ADDR 0000H A P1. . . . . D ADDR 0090H A P2. . . . . D ADDR 00A0H A P3. . . . . D ADDR 00B0H A RECORD. . . C ADDR 0035H A RECORD0 . . C ADDR 004FH A RECORD1 . . C ADDR 0055H A RECORD2 . . C ADDR 005BH A RECORD3 . . C ADDR 0061H A RECORD4 . . C ADDR 0067H A RECORD5 . . C ADDR 006DH A RECORD6 . . C ADDR 0073H A RECORD7 . . C ADDR 0079H A SETDOWN . . ---- ---- SETMOVE . . C ADDR 00C9H A SETMOVE0. . C ADDR 00E3H A SETMOVE1. . C ADDR 00EEH A SETMOVE2. . C ADDR 00F9H A SETMOVE3. . C ADDR 0104H A SETMOVE4. . C ADDR 010FH A SETMOVE5. . C ADDR 011AH A SETMOVE6. . C ADDR 0125H A SETMOVE7. . C ADDR 0130H A SETMOVEDOWN C ADDR 0147H A SETMOVETO . C ADDR 013BH A SETMOVEUP . C ADDR 0140H A SETSTOP . . C ADDR 014EH A SP. . . . . D ADDR 0081H A REGISTER BANK(S) USED: 0 ASSEMBLY COMPLETE, 6 ERRORS FOUND (135) |
|
沙发#
发布于:2002-11-10 14:03
先在\"jnc.jc\"附近放几条短指令,再跳转
|
|
|
板凳#
发布于:2002-11-10 14:53
JNC,JC,JZ等指令只能在128个字节内跳转,如果跳转指令与目的指令之间的长度超过了这个范围,就会出现你的程序中的问题,建议你这时用先判断再用LJMP指令跳转。
呵呵,放分吧 |
|
地板#
发布于:2002-11-10 21:51
收税
|
|
|