📄 des.lst
字号:
0241 0B04 0370 andwf alusta, f
0242 8404 0371 bsf _fs0
0243 6A20 0372 movfp blkPtr, wreg ; Load destination address
0244 0101 0373 movwf fsr0
0245 2900 0374 clrf indf0 ; Clear the destination block D0
0246 2900 0375 clrf indf0 ; Clear the destination block D1
0247 2900 0376 clrf indf0 ; Clear the destination block D2
0248 2900 0377 clrf indf0 ; Clear the destination block D3
0249 2900 0378 clrf indf0 ; Clear the destination block D4
024A 2900 0379 clrf indf0 ; Clear the destination block D5
024B 6A20 0380 movfp blkPtr, wreg ; Reload destination address
024C 0101 0381 movwf fsr0
024D 8504 0382 bsf _fs1 ; Turn off FSR0 auto increment
0383
0384 permute rw4, 0, 7 ; The FSR now points to D0
024E 982E M btfsc rw4, 0
024F 8700 M bsf indf0, 7
0385 permute rw1, 7, 6
0250 9F2B M btfsc rw1, 7
0251 8600 M bsf indf0, 6
0386 permute rw1, 6, 5
0252 9E2B M btfsc rw1, 6
0253 8500 M bsf indf0, 5
0387 permute rw1, 5, 4
0254 9D2B M btfsc rw1, 5
0255 8400 M bsf indf0, 4
0388 permute rw1, 4, 3
0256 9C2B M btfsc rw1, 4
0257 8300 M bsf indf0, 3
0389 permute rw1, 3, 2
0258 9B2B M btfsc rw1, 3
0259 8200 M bsf indf0, 2
0390 permute rw1, 4, 1
025A 9C2B M btfsc rw1, 4
025B 8100 M bsf indf0, 1
0391 permute rw1, 3, 0
025C 9B2B M btfsc rw1, 3
MPASM 01.02.04 Intermediate DES.ASM 1-30-1995 16:47:47 PAGE 24
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
025D 8000 M bsf indf0, 0
0392
025E 1501 0393 incf fsr0, f ; The FSR now points to D1
0394 permute rw1, 2, 7
025F 9A2B M btfsc rw1, 2
0260 8700 M bsf indf0, 7
0395 permute rw1, 1, 6
0261 992B M btfsc rw1, 1
0262 8600 M bsf indf0, 6
0396 permute rw1, 0, 5
0263 982B M btfsc rw1, 0
0264 8500 M bsf indf0, 5
0397 permute rw2, 7, 4
0265 9F2C M btfsc rw2, 7
0266 8400 M bsf indf0, 4
0398 permute rw1, 0, 3
0267 982B M btfsc rw1, 0
0268 8300 M bsf indf0, 3
0399 permute rw2, 7, 2
0269 9F2C M btfsc rw2, 7
026A 8200 M bsf indf0, 2
0400 permute rw2, 6, 1
026B 9E2C M btfsc rw2, 6
026C 8100 M bsf indf0, 1
0401 permute rw2, 5, 0
026D 9D2C M btfsc rw2, 5
026E 8000 M bsf indf0, 0
0402
026F 1501 0403 incf fsr0, f ; The FSR now points to D2
0404 permute rw2, 4, 7 ; 12
0270 9C2C M btfsc rw2, 4
0271 8700 M bsf indf0, 7
0405 permute rw2, 3, 6 ; 13
0272 9B2C M btfsc rw2, 3
MPASM 01.02.04 Intermediate DES.ASM 1-30-1995 16:47:47 PAGE 25
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0273 8600 M bsf indf0, 6
0406 permute rw2, 4, 5 ; 12
0274 9C2C M btfsc rw2, 4
0275 8500 M bsf indf0, 5
0407 permute rw2, 3, 4 ; 13
0276 9B2C M btfsc rw2, 3
0277 8400 M bsf indf0, 4
0408 permute rw2, 2, 3 ; 14
0278 9A2C M btfsc rw2, 2
0279 8300 M bsf indf0, 3
0409 permute rw2, 1, 2 ; 15
027A 992C M btfsc rw2, 1
027B 8200 M bsf indf0, 2
0410 permute rw2, 0, 1 ; 16
027C 982C M btfsc rw2, 0
027D 8100 M bsf indf0, 1
0411 permute rw3, 7, 0 ; 17
027E 9F2D M btfsc rw3, 7
027F 8000 M bsf indf0, 0
0412
0280 1501 0413 incf fsr0, f ; The FSR now points to D3
0414 permute rw2, 0, 7
0281 982C M btfsc rw2, 0
0282 8700 M bsf indf0, 7
0415 permute rw3, 7, 6
0283 9F2D M btfsc rw3, 7
0284 8600 M bsf indf0, 6
0416 permute rw3, 6, 5
0285 9E2D M btfsc rw3, 6
0286 8500 M bsf indf0, 5
0417 permute rw3, 5, 4
0287 9D2D M btfsc rw3, 5
0288 8400 M bsf indf0, 4
MPASM 01.02.04 Intermediate DES.ASM 1-30-1995 16:47:47 PAGE 26
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0418 permute rw3, 4, 3
0289 9C2D M btfsc rw3, 4
028A 8300 M bsf indf0, 3
0419 permute rw3, 3, 2
028B 9B2D M btfsc rw3, 3
028C 8200 M bsf indf0, 2
0420 permute rw3, 4, 1
028D 9C2D M btfsc rw3, 4
028E 8100 M bsf indf0, 1
0421 permute rw3, 3, 0
028F 9B2D M btfsc rw3, 3
0290 8000 M bsf indf0, 0
0422
0291 1501 0423 incf fsr0, f ; The FSR now points to D4
0424 permute rw3, 2, 7
0292 9A2D M btfsc rw3, 2
0293 8700 M bsf indf0, 7
0425 permute rw3, 1, 6
0294 992D M btfsc rw3, 1
0295 8600 M bsf indf0, 6
0426 permute rw3, 0, 5
0296 982D M btfsc rw3, 0
0297 8500 M bsf indf0, 5
0427 permute rw4, 7, 4
0298 9F2E M btfsc rw4, 7
0299 8400 M bsf indf0, 4
0428 permute rw3, 0, 3
029A 982D M btfsc rw3, 0
029B 8300 M bsf indf0, 3
0429 permute rw4, 7, 2
029C 9F2E M btfsc rw4, 7
029D 8200 M bsf indf0, 2
0430 permute rw4, 6, 1
029E 9E2E M btfsc rw4, 6
MPASM 01.02.04 Intermediate DES.ASM 1-30-1995 16:47:47 PAGE 27
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
029F 8100 M bsf indf0, 1
0431 permute rw4, 5, 0
02A0 9D2E M btfsc rw4, 5
02A1 8000 M bsf indf0, 0
0432
02A2 1501 0433 incf fsr0, f ; The FSR now points to D5
0434 permute rw4, 4, 7
02A3 9C2E M btfsc rw4, 4
02A4 8700 M bsf indf0, 7
0435 permute rw4, 3, 6
02A5 9B2E M btfsc rw4, 3
02A6 8600 M bsf indf0, 6
0436 permute rw4, 4, 5
02A7 9C2E M btfsc rw4, 4
02A8 8500 M bsf indf0, 5
0437 permute rw4, 3, 4
02A9 9B2E M btfsc rw4, 3
02AA 8400 M bsf indf0, 4
0438 permute rw4, 2, 3
02AB 9A2E M btfsc rw4, 2
02AC 8300 M bsf indf0, 3
0439 permute rw4, 1, 2
02AD 992E M btfsc rw4, 1
02AE 8200 M bsf indf0, 2
0440 permute rw4, 0, 1
02AF 982E M btfsc rw4, 0
02B0 8100 M bsf indf0, 1
0441 permute rw1, 7, 0
02B1 9F2B M btfsc rw1, 7
02B2 8000 M bsf indf0, 0
0442
0443 ; xor trw1(i) with subkey(i+1), result placed in trw1(i)
0444 ; note that trw1=darray[0], ..., trw6=darray[5].
MPASM 01.02.04 Intermediate DES.ASM 1-30-1995 16:47:47 PAGE 28
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0445
0446 ; XOR48 k1, trw1
0447
02B3 6A08 0448 movfp indf1, wreg ; Get subkey[i][0]
02B4 0D9F 0449 xorwf darray
02B5 6A08 0450 movfp indf1, wreg ; Get subkey[i][1]
02B6 0DA0 0451 xorwf darray+1
02B7 6A08 0452 movfp indf1, wreg ; Get subkey[i][2]
02B8 0DA1 0453 xorwf darray+2
02B9 6A08 0454 movfp indf1, wreg ; Get subkey[i][3]
02BA 0DA2 0455 xorwf darray+3
02BB 6A08 0456 movfp indf1, wreg ; Get subkey[i][4]
02BC 0DA3 0457 xorwf darray+4
02BD 6A08 0458 movfp indf1, wreg ; Get subkey[i][5]
02BE 0DA4 0459 xorwf darray+5
0460
02BF 0000 0461 nop ; DEBUG
02C0 E2CD 0462 call _Smatrix ; Result back in trw(i)
0463
02C1 0000 0464 nop ; DEBUG
02C2 E3AA 0465 call _matrixP
0466
02C3 0000 0467 nop ; DEBUG
02C4 6A2F 0468 movfp lw1, wreg
02C5 0D2B 0469 xorwf rw1, f
02C6 6A30 0470 movfp lw2, wreg
02C7 0D2C 0471 xorwf rw2, f
02C8 6A31 0472 movfp lw3, wreg
02C9 0D2D 0473 xorwf rw3, f
02CA 6A32 0474 movfp lw4, wreg
02CB 0D2E 0475 xorwf rw4, f
0476
02CC 0002 0477 return
0478
0479 ;***********************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -