📄 des.asm
字号:
SETB ACC.1 FA58:JNB 25H.0,FA59 SETB ACC.2 FA59:JNB 21H.0,FA60 SETB ACC.3 FA60:JNB 26H.0,FA61 SETB ACC.4 FA61:JNB 22H.0,FA62 SETB ACC.5 FA62:JNB 27H.0,FA63 SETB ACC.6 FA63:JNB 23H.0,FA64 SETB ACC.7 FA64:MOV R7,A FAX8: RET ;----------------------------------------------------------------------------;*************************************************************************;* Function: Key Generation ;* Input : 20h~27h(8bytes) ;* Return : 80h~FFh(128bytes);* Change : ;************************************************************************* KEY_GENERATOR: ACALL PC_1_ARRANGE;---After PC-1 arrange the data stored in RB0 ;----MOVE PC-1DATA(RB0) TO 20H~27H MOV SOURCE,#00H MOV DISTINATION,#20H ACALL MOV_8_BYTES;---KEY GENERATION LOOP---------------------------------------- MOV R0,#KEYTEMP MOV KeyGEN_TEMP,#16 ;--ROLATION 16 TIMES MOV DPTR,#ROL_TIMES CLR A KeyGen: MOVC A,@A+DPTR XCH A,B ;--------MOV A TO B ROL: ACALL ROLATION_RIGHT DJNZ B,ROL LCALL PC_2_ARRANGE INC DPTR DJNZ KeyGEN_TEMP,KeyGen ;----------------------------------------------------------------------------------- RET;------------------------------------------------------------------------------- ROLATION_RIGHT:;---Rolation right 20H~27H--------------------------------------------------- ;----ROLATION_RIGHT 20H~23H 1 BIT JB 20H.0,L1 CLR 23H.7 AJMP L1B L1: SETB 23H.7 L1B: CLR C XCH A,23H RRC A XCH A,23H JC L2 CLR 22H.7 AJMP L2B L2: SETB 22H.7 L2B: CLR C XCH A,22H RRC A XCH A,22H JC L3 CLR 21H.7 AJMP L3B L3: SETB 21H.7 L3B: CLR C XCH A,21H RRC A XCH A,21H JC L4 CLR 20H.7 AJMP L4B L4: SETB 20H.7 L4B: CLR C XCH A,20H RRC A XCH A,20H ;----ROLATION_RIGHT 24H~27H 1 BIT JB 24H.0,L5 CLR 27H.7 AJMP L5B L5: SETB 27H.7 L5B: CLR C XCH A,27H RRC A XCH A,27H JC L6 CLR 26H.7 AJMP L6B L6: SETB 26H.7 L6B: CLR C XCH A,26H RRC A XCH A,26H JC L7 CLR 25H.7 AJMP L7B L7: SETB 25H.7 L7B: CLR C XCH A,25H RRC A XCH A,25H JC L8 CLR 24H.7 AJMP L8B L8: SETB 24H.7 L8B: CLR C XCH A,24H RRC A XCH A,24H RET;--------------------------------------------------------------------------- PC_1_ARRANGE:;---PC-1 ARRANGE---------------------------------- ;----MOVE KEY_DATA TO 20H~27H ;---PC-1 ARRANGE;---USE RB0 TO REGISTER PC-1 DATA ;---R0 CLR A JNB 27H.0,PC11 SETB ACC.0 PC11:JNB 26H.0,PC12 SETB ACC.1 PC12:JNB 25H.0,PC13 SETB ACC.2 PC13:JNB 24H.0,PC14 SETB ACC.3 PC14:JNB 23H.0,PC15 SETB ACC.4 PC15:JNB 22H.0,PC16 SETB ACC.5 PC16:JNB 21H.0,PC17 SETB ACC.6 PC17:MOV R0,A ;---R1 PC1X2:CLR A JNB 20H.0,PC18 SETB ACC.0 PC18: JNB 27H.1,PC19 SETB ACC.1 PC19: JNB 26H.1,PC110 SETB ACC.2 PC110:JNB 25H.1,PC111 SETB ACC.3 PC111:JNB 24H.1,PC112 SETB ACC.4 PC112:JNB 23H.1,PC113 SETB ACC.5 PC113:JNB 22H.1,PC114 SETB ACC.6 PC114:MOV R1,A ;---R2 PC1X3:CLR A JNB 21H.1,PC115 SETB ACC.0 PC115:JNB 20H.1,PC116 SETB ACC.1 PC116:JNB 27H.2,PC117 SETB ACC.2 PC117:JNB 26H.2,PC118 SETB ACC.3 PC118:JNB 25H.2,PC119 SETB ACC.4 PC119:JNB 24H.2,PC120 SETB ACC.5 PC120:JNB 23H.2,PC121 SETB ACC.6 PC121:MOV R2,A ;---R3 PC1X4:CLR A JNB 22H.2,PC122 SETB ACC.0 PC122:JNB 21H.2,PC123 SETB ACC.1 PC123:JNB 20H.2,PC124 SETB ACC.2 PC124:JNB 27H.3,PC125 SETB ACC.3 PC125:JNB 26H.3,PC126 SETB ACC.4 PC126:JNB 25H.3,PC127 SETB ACC.5 PC127:JNB 24H.3,PC128 SETB ACC.6 PC128:MOV R3,A ;---R4 PC1X5:CLR A JNB 27H.6,PC129 SETB ACC.0 PC129:JNB 26H.6,PC130 SETB ACC.1 PC130:JNB 25H.6,PC131 SETB ACC.2 PC131:JNB 24H.6,PC132 SETB ACC.3 PC132:JNB 23H.6,PC133 SETB ACC.4 PC133:JNB 22H.6,PC134 SETB ACC.5 PC134:JNB 21H.6,PC135 SETB ACC.6 PC135:MOV R4,A ;---R5 PC1X6:CLR A JNB 20H.6,PC136 SETB ACC.0 PC136:JNB 27H.5,PC137 SETB ACC.1 PC137:JNB 26H.5,PC138 SETB ACC.2 PC138:JNB 25H.5,PC139 SETB ACC.3 PC139:JNB 24H.5,PC140 SETB ACC.4 PC140:JNB 23H.5,PC141 SETB ACC.5 PC141:JNB 22H.5,PC142 SETB ACC.6 PC142:MOV R5,A ;---R6 PC1X7: CLR A JNB 21H.5,PC143 SETB ACC.0 PC143:JNB 20H.5,PC144 SETB ACC.1 PC144:JNB 27H.4,PC145 SETB ACC.2 PC145:JNB 26H.4,PC146 SETB ACC.3 PC146:JNB 25H.4,PC147 SETB ACC.4 PC147:JNB 24H.4,PC148 SETB ACC.5 PC148:JNB 23H.4,PC149 SETB ACC.6 PC149:MOV R6,A ;---R7 PC1X8: CLR A JNB 22H.4,PC150 SETB ACC.0 PC150:JNB 21H.4,PC151 SETB ACC.1 PC151:JNB 20H.4,PC152 SETB ACC.2 PC152:JNB 23H.3,PC153 SETB ACC.3 PC153:JNB 22H.3,PC154 SETB ACC.4 PC154:JNB 21H.3,PC155 SETB ACC.5 PC155:JNB 20H.3,PC156 SETB ACC.6 PC156:MOV R7,A RET ;---END PC-1 ARRANGE------------------------------- PC_2_ARRANGE:;---PC-2 ARRANGE------------------------------------- ;---MOVE TO 80H CLR A JNB 21H.6,PC21 SETB ACC.2 PC21: JNB 22H.2,PC22 SETB ACC.3 PC22: JNB 21H.3,PC23 SETB ACC.4 PC23: JNB 23H.2,PC24 SETB ACC.5 PC24: JNB 20H.0,PC25 SETB ACC.6 PC25: JNB 20H.4,PC26 SETB ACC.7 PC26: XCH A,@R0 INC R0 ;---MOVE TO 81H PC2X1: CLR A JNB 20H.2,PC27 SETB ACC.2 PC27: JNB 23H.6,PC28 SETB ACC.3 PC28: JNB 22H.0,PC29 SETB ACC.4 PC29: JNB 20H.5,PC210 SETB ACC.5 PC210: JNB 22H.6,PC211 SETB ACC.6 PC211: JNB 21H.2,PC212 SETB ACC.7 PC212: XCH A,@R0 INC R0 ;---MOVE TO 82H PC2X2: CLR A JNB 23H.1,PC213 SETB ACC.2 PC213: JNB 22H.4,PC214 SETB ACC.3 PC214: JNB 21H.4,PC215 SETB ACC.4 PC215: JNB 20H.3,PC216 SETB ACC.5 PC216: JNB 23H.4,PC217 SETB ACC.6 PC217: JNB 21H.0,PC218 SETB ACC.7 PC218: XCH A,@R0 INC R0 ;---MOVE T0 83H PC2X3: CLR A JNB 22H.1,PC219 SETB ACC.2 PC219: JNB 20H.6,PC220 SETB ACC.3 PC220: JNB 23H.5,PC221 SETB ACC.4 PC221: JNB 22H.5,PC222 SETB ACC.5 PC222: JNB 21H.5,PC223 SETB ACC.6 PC223: JNB 20H.1,PC224 SETB ACC.7 PC224: XCH A,@R0 INC R0 ;---MOVE TO 84H PC2X4: CLR A JNB 25H.5,PC225 SETB ACC.2 PC225: JNB 27H.2,PC226 SETB ACC.3 PC226: JNB 24H.2,PC227 SETB ACC.4 PC227: JNB 25H.1,PC228 SETB ACC.5 PC228: JNB 26H.4,PC229 SETB ACC.6 PC229: JNB 27H.5,PC230 SETB ACC.7 PC230: XCH A,@R0 INC R0 ;---MOVE TO 85H PC2X5: CLR A JNB 24H.1,PC231 SETB ACC.2 PC231: JNB 25H.4,PC232 SETB ACC.3 PC232: JNB 27H.1,PC233 SETB ACC.4 PC233: JNB 26H.2,PC234 SETB ACC.5 PC234: JNB 24H.4,PC235 SETB ACC.6 PC235: JNB 26H.5,PC236 SETB ACC.7 PC236: XCH A,@R0 INC R0 ;---MOVE TO 86H PC2X6: CLR A JNB 26H.1,PC237 SETB ACC.2 PC237: JNB 26H.6,PC238 SETB ACC.3 PC238: JNB 25H.3,PC239 SETB ACC.4 PC239: JNB 27H.6,PC240 SETB ACC.5 PC240: JNB 24H.5,PC241 SETB ACC.6 PC241: JNB 27H.3,PC242 SETB ACC.7 PC242: XCH A,@R0 INC R0 ;---MOVE TO 87H PC2X7: CLR A JNB 26H.3,PC243 SETB ACC.2 PC243: JNB 25H.6,PC244 SETB ACC.3 PC244: JNB 27H.0,PC245 SETB ACC.4 PC245: JNB 25H.0,PC246 SETB ACC.5 PC246: JNB 24H.0,PC247 SETB ACC.6 PC247: JNB 24H.3,PC248 SETB ACC.7 PC248: XCH A,@R0 INC R0 RET ROL_TIMES: DB 01H,01H,02H,02H,02H,02H,02H,02H DB 01H,02H,02H,02H,02H,02H,02H,01H S_BOXES_DATA: DB 0EH,04H,0DH,01H,02H,0FH,0BH,08H,03H,0AH,06H,0CH,05H,09H,00H,07H DB 00H,0FH,07H,04H,0EH,02H,0DH,01H,0AH,06H,0CH,0BH,09H,05H,03H,08H DB 04H,01H,0EH,08H,0DH,06H,02H,0BH,0FH,0CH,09H,07H,03H,0AH,05H,00H DB 0FH,0CH,08H,02H,04H,09H,01H,07H,05H,0BH,03H,0EH,0AH,00H,06H,0DH DB 0FH,01H,08H,0EH,06H,0BH,03H,04H,09H,07H,02H,0DH,0CH,00H,05H,0AH DB 03H,0DH,04H,07H,0FH,02H,08H,0EH,0CH,00H,01H,0AH,06H,09H,0BH,05H DB 00H,0EH,07H,0BH,0AH,04H,0DH,01H,05H,08H,0CH,06H,09H,03H,02H,0FH DB 0DH,08H,0AH,01H,03H,0FH,04H,02H,0BH,06H,07H,0CH,00H,05H,0EH,09H DB 0AH,00H,09H,0EH,06H,03H,0FH,05H,01H,0DH,0CH,07H,0BH,04H,02H,08H DB 0DH,07H,00H,09H,03H,04H,06H,0AH,02H,08H,05H,0EH,0CH,0BH,0FH,01H DB 0DH,06H,04H,09H,08H,0FH,03H,00H,0BH,01H,02H,0CH,05H,0AH,0EH,07H DB 01H,0AH,0DH,00H,06H,09H,08H,07H,04H,0FH,0EH,03H,0BH,05H,02H,0CH DB 07H,0DH,0EH,03H,00H,06H,09H,0AH,01H,02H,08H,05H,0BH,0CH,04H,0FH DB 0DH,08H,0BH,05H,06H,0FH,00H,03H,04H,07H,02H,0CH,01H,0AH,0EH,09H DB 0AH,06H,09H,00H,0CH,0BH,07H,0DH,0FH,01H,03H,0EH,05H,02H,08H,04H DB 03H,0FH,00H,06H,0AH,01H,0DH,08H,09H,04H,05H,0BH,0CH,07H,02H,0EH DB 02H,0CH,04H,01H,07H,0AH,0BH,06H,08H,05H,03H,0FH,0DH,00H,0EH,09H DB 0EH,0BH,02H,0CH,04H,07H,0DH,01H,05H,00H,0FH,0AH,03H,09H,08H,06H DB 04H,02H,01H,0BH,0AH,0DH,07H,08H,0FH,09H,0CH,05H,06H,03H,00H,0EH DB 0BH,08H,0CH,07H,01H,0EH,02H,0DH,06H,0FH,00H,09H,0AH,04H,05H,03H DB 0CH,01H,0AH,0FH,09H,02H,06H,08H,00H,0DH,03H,04H,0EH,07H,05H,0BH DB 0AH,0FH,04H,02H,07H,0CH,09H,05H,06H,01H,0DH,0EH,00H,0BH,03H,08H DB 09H,0EH,0FH,05H,02H,08H,0CH,03H,07H,00H,04H,0AH,01H,0DH,0BH,06H DB 04H,03H,02H,0CH,09H,05H,0FH,0AH,0BH,0EH,01H,07H,06H,00H,08H,0DH DB 04H,0BH,02H,0EH,0FH,00H,08H,0DH,03H,0CH,09H,07H,05H,0AH,06H,01H DB 0DH,00H,0BH,07H,04H,09H,01H,0AH,0EH,03H,05H,0CH,02H,0FH,08H,06H DB 01H,04H,0BH,0DH,0CH,03H,07H,0EH,0AH,0FH,06H,08H,00H,05H,09H,02H DB 06H,0BH,0DH,08H,01H,04H,0AH,07H,09H,05H,00H,0FH,0EH,02H,03H,0CH DB 0DH,02H,08H,04H,06H,0FH,0BH,01H,0AH,09H,03H,0EH,05H,00H,0CH,07H DB 01H,0FH,0DH,08H,0AH,03H,07H,04H,0CH,05H,06H,0BH,00H,0EH,09H,02H DB 07H,0BH,04H,01H,09H,0CH,0EH,02H,00H,06H,0AH,0DH,0FH,03H,05H,08H DB 02H,01H,0EH,07H,04H,0AH,08H,0DH,0FH,0CH,09H,00H,03H,05H,06H,0BH END1: END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -