?? dessamp.lst
字號:
00003 ; Copyright 1994, 1996, 1997 Eric L. Smith
00004 ;
00005 ; $Header$
00006 ;-----------------------------------------------------------------------------
00007
00008
00009 ;-----------------------------------------------------------------------------
MPASM 01.50 Released DESSAMP.ASM 5-5-1997 16:06:32 PAGE 15
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00010 ; RAM definitions
00011 ;-----------------------------------------------------------------------------
00012
00013 cblock
00000014 00014 keyl: 4
00000018 00015 keyr: 4
00016
0000001C 00017 left: 4
00000020 00018 right: 4
00000024 00019 newr: 4
00020 endc
00021
00022
00023 ;-----------------------------------------------------------------------------
00024 ; bit definitions
00025 ;-----------------------------------------------------------------------------
00026
00027 if 0
00028
00029 ; This is how it should be done, but MPASM 1.40 is buggy and won't do
00030 ; macro argument substitution in defines!
00031
00032 equb8 macro base,b1,b2,b3,b4,b5,b6,b7,b8
00033 #define b1 base,7
00034 #define b2 base,6
00035 #define b3 base,5
00036 #define b4 base,4
00037 #define b5 base,3
00038 #define b6 base,2
00039 #define b7 base,1
00040 #define b8 base,0
00041 endm
00042
00043 equb4 macro base,b1,b2,b3,b4
00044 #define b1 base,7
00045 #define b2 base,6
00046 #define b3 base,5
00047 #define b4 base,4
00048 endm
00049
00050 equb8 keyl+0,k01,k02,k03,k04,k05,k06,k07,k08
00051 equb8 keyl+1,k09,k10,k11,k12,k13,k14,k15,k16
00052 equb8 keyl+2,k17,k18,k19,k20,k21,k22,k23,k24
00053 equb4 keyl+3,k25,k26,k27,k28
00054
00055 equb8 keyr+0,k29,k30,k31,k32,k33,k34,k35,k36
00056 equb8 keyr+1,k37,k38,k39,k40,k41,k42,k43,k44
00057 equb8 keyr+2,k45,k46,k47,k48,k49,k50,k51,k52
00058 equb4 keyr+3,k53,k54,k55,k56
00059
00060 equb8 right+0,r01,r02,r03,r04,r05,r06,r07,r08
00061 equb8 right+1,r09,r10,r11,r12,r13,r14,r15,r16
00062 equb8 right+2,r17,r18,r19,r20,r21,r22,r23,r24
MPASM 01.50 Released DESSAMP.ASM 5-5-1997 16:06:32 PAGE 16
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00063 equb8 right+3,r25,r26,r27,r28,r29,r30,r31,r32
00064
00065 equb8 newr+0,nr01,nr02,nr03,nr04,nr05,nr06,nr07,nr08
00066 equb8 newr+1,nr09,nr10,nr11,nr12,nr13,nr14,nr15,nr16
00067 equb8 newr+2,nr17,nr18,nr19,nr20,nr21,nr22,nr23,nr24
00068 equb8 newr+3,nr25,nr26,nr27,nr28,nr29,nr30,nr31,nr32
00069
00070 else
00071
00072 ; this mess is the workaround for the MPASM bug described above.
00073
00074 #define k01 keyl+0,7
00075 #define k02 keyl+0,6
00076 #define k03 keyl+0,5
00077 #define k04 keyl+0,4
00078 #define k05 keyl+0,3
00079 #define k06 keyl+0,2
00080 #define k07 keyl+0,1
00081 #define k08 keyl+0,0
00082 #define k09 keyl+1,7
00083 #define k10 keyl+1,6
00084 #define k11 keyl+1,5
00085 #define k12 keyl+1,4
00086 #define k13 keyl+1,3
00087 #define k14 keyl+1,2
00088 #define k15 keyl+1,1
00089 #define k16 keyl+1,0
00090 #define k17 keyl+2,7
00091 #define k18 keyl+2,6
00092 #define k19 keyl+2,5
00093 #define k20 keyl+2,4
00094 #define k21 keyl+2,3
00095 #define k22 keyl+2,2
00096 #define k23 keyl+2,1
00097 #define k24 keyl+2,0
00098 #define k25 keyl+3,7
00099 #define k26 keyl+3,6
00100 #define k27 keyl+3,5
00101 #define k28 keyl+3,4
00102
00103 #define k29 keyr+0,7
00104 #define k30 keyr+0,6
00105 #define k31 keyr+0,5
00106 #define k32 keyr+0,4
00107 #define k33 keyr+0,3
00108 #define k34 keyr+0,2
00109 #define k35 keyr+0,1
00110 #define k36 keyr+0,0
00111 #define k37 keyr+1,7
00112 #define k38 keyr+1,6
00113 #define k39 keyr+1,5
00114 #define k40 keyr+1,4
00115 #define k41 keyr+1,3
MPASM 01.50 Released DESSAMP.ASM 5-5-1997 16:06:32 PAGE 17
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00116 #define k42 keyr+1,2
00117 #define k43 keyr+1,1
00118 #define k44 keyr+1,0
00119 #define k45 keyr+2,7
00120 #define k46 keyr+2,6
00121 #define k47 keyr+2,5
00122 #define k48 keyr+2,4
00123 #define k49 keyr+2,3
00124 #define k50 keyr+2,2
00125 #define k51 keyr+2,1
00126 #define k52 keyr+2,0
00127 #define k53 keyr+3,7
00128 #define k54 keyr+3,6
00129 #define k55 keyr+3,5
00130 #define k56 keyr+3,4
00131
00132 #define r01 right+0,7
00133 #define r02 right+0,6
00134 #define r03 right+0,5
00135 #define r04 right+0,4
00136 #define r05 right+0,3
00137 #define r06 right+0,2
00138 #define r07 right+0,1
00139 #define r08 right+0,0
00140 #define r09 right+1,7
00141 #define r10 right+1,6
00142 #define r11 right+1,5
00143 #define r12 right+1,4
00144 #define r13 right+1,3
00145 #define r14 right+1,2
00146 #define r15 right+1,1
00147 #define r16 right+1,0
00148 #define r17 right+2,7
00149 #define r18 right+2,6
00150 #define r19 right+2,5
00151 #define r20 right+2,4
00152 #define r21 right+2,3
00153 #define r22 right+2,2
00154 #define r23 right+2,1
00155 #define r24 right+2,0
00156 #define r25 right+3,7
00157 #define r26 right+3,6
00158 #define r27 right+3,5
00159 #define r28 right+3,4
00160 #define r29 right+3,3
00161 #define r30 right+3,2
00162 #define r31 right+3,1
00163 #define r32 right+3,0
00164
00165 #define nr01 newr+0,7
00166 #define nr02 newr+0,6
00167 #define nr03 newr+0,5
00168 #define nr04 newr+0,4
MPASM 01.50 Released DESSAMP.ASM 5-5-1997 16:06:32 PAGE 18
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00169 #define nr05 newr+0,3
00170 #define nr06 newr+0,2
00171 #define nr07 newr+0,1
00172 #define nr08 newr+0,0
00173 #define nr09 newr+1,7
00174 #define nr10 newr+1,6
00175 #define nr11 newr+1,5
00176 #define nr12 newr+1,4
00177 #define nr13 newr+1,3
00178 #define nr14 newr+1,2
00179 #define nr15 newr+1,1
00180 #define nr16 newr+1,0
00181 #define nr17 newr+2,7
00182 #define nr18 newr+2,6
00183 #define nr19 newr+2,5
00184 #define nr20 newr+2,4
00185 #define nr21 newr+2,3
00186 #define nr22 newr+2,2
00187 #define nr23 newr+2,1
00188 #define nr24 newr+2,0
00189 #define nr25 newr+3,7
00190 #define nr26 newr+3,6
00191 #define nr27 newr+3,5
00192 #define nr28 newr+3,4
00193 #define nr29 newr+3,3
00194 #define nr30 newr+3,2
00195 #define nr31 newr+3,1
00196 #define nr32 newr+3,0
00197
00198 endif
00199
00200
00201 ;-----------------------------------------------------------------------------
00202 ; setkey: permute key
00203 ; on entry:
00204 ; FSR points to (unpermuted) key
00205 ; on exit:
00206 ; permuted key is in keyl:keyr
00207 ; FSR is unchanged
00208 ;-----------------------------------------------------------------------------
00209
0100 3008 00210 setkey: movlw 8
0101 008F 00211 movwf temp
00212
0102 00213 setkey0:
0102 0D80 00214 rlf INDF
0103 0C94 00215 rrf keyl+0
0104 0D80 00216 rlf INDF
0105 0C95 00217 rrf keyl+1
0106 0D80 00218 rlf INDF
0107 0C96 00219 rrf keyl+2
0108 0D80 00220 rlf INDF
0109 0C97 00221 rrf keyl+3
MPASM 01.50 Released DESSAMP.ASM 5-5-1997 16:06:32 PAGE 19
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
010A 0D80 00222 rlf INDF
010B 0C9A 00223 rrf keyr+2
010C 0D80 00224 rlf INDF
010D 0C99 00225 rrf keyr+1
010E 0D80 00226 rlf INDF
010F 0C98 00227 rrf keyr+0
00228
0110 0A84 00229 incf FSR
0111 0B8F 00230 decfsz temp
0112 2902 00231 goto setkey0
00232
0113 0E17 00233 swapf keyl+3,W ; move low 4 bits of keyl+3
0114 009B 00234 movwf keyr+3 ; into high 4 bits of keyr+3
00235
0115 30F0 00236 movlw 0f0h ; mask off extra bits
0116 0597 00237 andwf keyl+3
0117 059B 00238 andwf keyr+3
00239
0118 30F8 00240 movlw -8 ; restore FSR to original value
0119 3E04 00241 addlw FSR
00242
011A 0008 00243 return
00244
00245
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -