📄 des.asm
字号:
PUSH PSW CLR PSW.3 SETB PSW.4 MOV R0,B MOV R1,#1FH MOV XOR_TEMP,#027H XORR1: MOV A,@R0 XRL A,@R1 DEC R0 DEC R1 PUSH 011H ;----PUSH R1 MOV R1,XOR_TEMP MOV @R1,A DEC R1 MOV XOR_TEMP,R1 POP 011H CJNE R1,#17H,XORR1 MOV B,R0 POP PSW RET;**************************************************************************** XOR_4_BYTES: ;---00H~03H XOR 18H~1BH STORE IN 24H~27H--------------------- MOV A,18H XRL A,00H MOV 24H,A MOV A,19H XRL A,01H MOV 25H,A MOV A,1AH XRL A,02H MOV 26H,A MOV A,1BH XRL A,03H MOV 27H,A RET ;---END XOR 4 BYTES---------------------------------------------------------- ;**************************************************************************** S_BOXES:;---USE RB3 TO STORE S_BOXES'S DATA PUSH PSW SETB PSW.4 SETB PSW.3 MOV DPTR,#S_BOXES_DATA;---20H------------------------------------ CLR A JNB 20H.2,S1 SETB ACC.5 S1: JNB 20H.7,S2 SETB ACC.4 S2: JNB 20H.3,S3 SETB ACC.3 S3: JNB 20H.4,S4 SETB ACC.2 S4: JNB 20H.5,S5 SETB ACC.1 S5: JNB 20H.6,S6 SETB ACC.0 S6: MOVC A,@A+DPTR MOV R0,A SX: LCALL DPTR_add_40H ;----21H----------------------------- CLR A JNB 21H.2,S7 SETB ACC.5 S7: JNB 21H.7,S8 SETB ACC.4 S8: JNB 21H.3,S9 SETB ACC.3 S9: JNB 21H.4,S10 SETB ACC.2 S10: JNB 21H.5,S11 SETB ACC.1 S11: JNB 21H.6,S12 SETB ACC.0 S12: MOVC A,@A+DPTR MOV R1,A SX1: LCALL DPTR_add_40H ;----22H----------------------------- CLR A JNB 22H.2,S13 SETB ACC.5 S13: JNB 22H.7,S14 SETB ACC.4 S14: JNB 22H.3,S15 SETB ACC.3 S15: JNB 22H.4,S16 SETB ACC.2 S16: JNB 22H.5,S17 SETB ACC.1 S17: JNB 22H.6,S18 SETB ACC.0 S18: MOVC A,@A+DPTR MOV R2,A SX2: LCALL DPTR_add_40H ;----23H----------------------------- CLR A JNB 23H.2,S19 SETB ACC.5 S19: JNB 23H.7,S20 SETB ACC.4 S20: JNB 23H.3,S21 SETB ACC.3 S21: JNB 23H.4,S22 SETB ACC.2 S22: JNB 23H.5,S23 SETB ACC.1 S23: JNB 23H.6,S24 SETB ACC.0 S24: MOVC A,@A+DPTR MOV R3,A SX3: LCALL DPTR_add_40H ;----24H----------------------------- CLR A JNB 24H.2,S25 SETB ACC.5 S25: JNB 24H.7,S26 SETB ACC.4 S26: JNB 24H.3,S27 SETB ACC.3 S27: JNB 24H.4,S28 SETB ACC.2 S28: JNB 24H.5,S29 SETB ACC.1 S29: JNB 24H.6,S30 SETB ACC.0 S30: MOVC A,@A+DPTR MOV R4,A SX4: LCALL DPTR_add_40H ;----25H----------------------------- CLR A JNB 25H.2,S31 SETB ACC.5 S31: JNB 25H.7,S32 SETB ACC.4 S32: JNB 25H.3,S33 SETB ACC.3 S33: JNB 25H.4,S34 SETB ACC.2 S34: JNB 25H.5,S35 SETB ACC.1 S35: JNB 25H.6,S36 SETB ACC.0 S36: MOVC A,@A+DPTR MOV R5,A SX5: LCALL DPTR_add_40H ;----26H----------------------------- CLR A JNB 26H.2,S37 SETB ACC.5 S37: JNB 26H.7,S38 SETB ACC.4 S38: JNB 26H.3,S39 SETB ACC.3 S39: JNB 26H.4,S40 SETB ACC.2 S40: JNB 26H.5,S41 SETB ACC.1 S41: JNB 26H.6,S42 SETB ACC.0 S42: MOVC A,@A+DPTR MOV R6,A SX6: LCALL DPTR_add_40H ;----27H----------------------------- CLR A JNB 27H.2,S43 SETB ACC.5 S43: JNB 27H.7,S44 SETB ACC.4 S44: JNB 27H.3,S45 SETB ACC.3 S45: JNB 27H.4,S46 SETB ACC.2 S46: JNB 27H.5,S47 SETB ACC.1 S47: JNB 27H.6,S48 SETB ACC.0 S48: MOVC A,@A+DPTR MOV R7,A SX7: POP PSW RET;**************************************************************************** SHRINK_ARRANGE:;---SHRINK ARRANGE---------------------------------------;---MOV S_BOXES'S DATA FROM RB3(18H~1FH) TO 20H~27H MOV SOURCE,#18H MOV DISTINATION,#20H ACALL MOV_8_BYTES ;---USE RB3(18H~1FH) TO STORE THE SHRINK ARRANGE TABLE------------------------------------ PUSH PSW SETB PSW.4 SETB PSW.3 ;---18H-------------------------------------------------------------------- CLR A JNB 23H.0,SA1 SETB ACC.0 SA1: JNB 21H.1,SA2 SETB ACC.1 SA2: JNB 24H.0,SA3 SETB ACC.2 SA3: JNB 25H.3,SA4 SETB ACC.3 SA4: JNB 27H.3,SA5 SETB ACC.4 SA5: JNB 22H.0,SA6 SETB ACC.5 SA6: JNB 26H.0,SA7 SETB ACC.6 SA7: JNB 24H.3,SA8 SETB ACC.7 SA8: MOV R0,A ;---19H-------------------------------------------------------------------- SAX1: CLR A JNB 20H.3,SA9 SETB ACC.0 SA9: JNB 23H.1,SA10 SETB ACC.1 SA10: JNB 25H.1,SA11 SETB ACC.2 SA11: JNB 26H.2,SA12 SETB ACC.3 SA12: JNB 21H.3,SA13 SETB ACC.4 SA13: JNB 24H.2,SA14 SETB ACC.5 SA14: JNB 27H.1,SA15 SETB ACC.6 SA15: JNB 22H.2,SA16 SETB ACC.7 SA16: MOV R1,A ;---1AH-------------------------------------------------------------------- SAX2: CLR A JNB 20H.2,SA17 SETB ACC.0 SA17: JNB 21H.0,SA18 SETB ACC.1 SA18: JNB 25H.0,SA19 SETB ACC.2 SA19: JNB 23H.2,SA20 SETB ACC.3 SA20: JNB 27H.0,SA21 SETB ACC.4 SA21: JNB 26H.1,SA22 SETB ACC.5 SA22: JNB 20H.1,SA23 SETB ACC.6 SA23: JNB 22H.3,SA24 SETB ACC.7 SA24: MOV R2,A ;---1BH-------------------------------------------------------------------- SAX3: CLR A JNB 24H.1,SA25 SETB ACC.0 SA25: JNB 23H.3,SA26 SETB ACC.1 SA26: JNB 27H.2,SA27 SETB ACC.2 SA27: JNB 21H.2,SA28 SETB ACC.3 SA28: JNB 25H.2,SA29 SETB ACC.4 SA29: JNB 22H.1,SA30 SETB ACC.5 SA30: JNB 20H.0,SA31 SETB ACC.6 SA31: JNB 26H.3,SA32 SETB ACC.7 SA32: MOV R3,A SAX4: POP PSW RET MOVE_MOVE:;---MOVE 04H~07H TO 00H~03H MOV 00H,04H MOV 01H,05H MOV 02H,06H MOV 03H,07H ;--- MOVE 24H~27H TO 04H~07H: MOV 04H,24H MOV 05H,25H MOV 06H,26H MOV 07H,27H RET;---DPTR ADD 40H SUBRETUTION ------------------------------------------------ DPTR_add_40H: MOV A,#40H ADD A,DPL XCH A,DPL JNC END_ADD INC DPH END_ADD: RET;----------------------------------------------------------------------------;---------------------------------------------------------------------------- ;*************************************************************************** FINAL_ARRANGE:;----MOVE DATA TO 20H~27H MOV 20H,04H MOV 21H,05H MOV 22H,06H MOV 23H,07H MOV 24H,00H MOV 25H,01H MOV 26H,02H MOV 27H,03H ;---PC-1 ARRANGE;---USE RB0 TO REGISTER PC-1 DATA ;---R0 CLR A JNB 24H.7,FA1 SETB ACC.0 FA1:JNB 20H.7,FA2 SETB ACC.1 FA2:JNB 25H.7,FA3 SETB ACC.2 FA3:JNB 21H.7,FA4 SETB ACC.3 FA4:JNB 26H.7,FA5 SETB ACC.4 FA5:JNB 22H.7,FA6 SETB ACC.5 FA6:JNB 27H.7,FA7 SETB ACC.6 FA7:JNB 23H.7,FA8 SETB ACC.7 FA8:MOV R0,A ;---R1 FAX1:CLR A JNB 24H.6,FA9 SETB ACC.0 FA9: JNB 20H.6,FA10 SETB ACC.1 FA10:JNB 25H.6,FA11 SETB ACC.2 FA11:JNB 21H.6,FA12 SETB ACC.3 FA12:JNB 26H.6,FA13 SETB ACC.4 FA13:JNB 22H.6,FA14 SETB ACC.5 FA14:JNB 27H.6,FA15 SETB ACC.6 FA15:JNB 23H.6,FA16 SETB ACC.7 FA16:MOV R1,A ;---R2 FAX2:CLR A JNB 24H.5,FA17 SETB ACC.0 FA17:JNB 20H.5,FA18 SETB ACC.1 FA18:JNB 25H.5,FA19 SETB ACC.2 FA19:JNB 21H.5,FA20 SETB ACC.3 FA20:JNB 26H.5,FA21 SETB ACC.4 FA21:JNB 22H.5,FA22 SETB ACC.5 FA22:JNB 27H.5,FA23 SETB ACC.6 FA23:JNB 23H.5,FA24 SETB ACC.7 FA24:MOV R2,A ;---R3 FAX3:CLR A JNB 24H.4,FA25 SETB ACC.0 FA25:JNB 20H.4,FA26 SETB ACC.1 FA26:JNB 25H.4,FA27 SETB ACC.2 FA27:JNB 21H.4,FA28 SETB ACC.3 FA28:JNB 26H.4,FA29 SETB ACC.4 FA29:JNB 22H.4,FA30 SETB ACC.5 FA30:JNB 27H.4,FA31 SETB ACC.6 FA31:JNB 23H.4,FA32 SETB ACC.7 FA32:MOV R3,A ;---R4 FAX4:CLR A JNB 24H.3,FA33 SETB ACC.0 FA33:JNB 20H.3,FA34 SETB ACC.1 FA34:JNB 25H.3,FA35 SETB ACC.2 FA35:JNB 21H.3,FA36 SETB ACC.3 FA36:JNB 26H.3,FA37 SETB ACC.4 FA37:JNB 22H.3,FA38 SETB ACC.5 FA38:JNB 27H.3,FA39 SETB ACC.6 FA39:JNB 23H.3,FA40 SETB ACC.7 FA40:MOV R4,A ;---R5 FAX5:CLR A JNB 24H.2,FA41 SETB ACC.0 FA41:JNB 20H.2,FA42 SETB ACC.1 FA42:JNB 25H.2,FA43 SETB ACC.2 FA43:JNB 21H.2,FA44 SETB ACC.3 FA44:JNB 26H.2,FA45 SETB ACC.4 FA45:JNB 22H.2,FA46 SETB ACC.5 FA46:JNB 27H.2,FA47 SETB ACC.6 FA47:JNB 23H.2,FA48 SETB ACC.7 FA48:MOV R5,A ;---R6 FAX6:CLR A JNB 24H.1,FA49 SETB ACC.0 FA49:JNB 20H.1,FA50 SETB ACC.1 FA50:JNB 25H.1,FA51 SETB ACC.2 FA51:JNB 21H.1,FA52 SETB ACC.3 FA52:JNB 26H.1,FA53 SETB ACC.4 FA53:JNB 22H.1,FA54 SETB ACC.5 FA54:JNB 27H.1,FA55 SETB ACC.6 FA55:JNB 23H.1,FA56 SETB ACC.7 FA56:MOV R6,A ;---R7 FAX7:CLR A JNB 24H.0,FA57 SETB ACC.0 FA57:JNB 20H.0,FA58
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -