⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.src

📁 《Proteus在MCS-51&ARM7系统中的应用百例》逆向之 Chapter 8 《Proteus在MCS-51&ARM7系统中的应用百例》MCS-51例子的C语言版本。 最
💻 SRC
📖 第 1 页 / 共 2 页
字号:
			; SOURCE LINE # 154
; 	DBUF[2]=0x10;
			; SOURCE LINE # 155
; 	DBUF[3]=0x10;
			; SOURCE LINE # 156
; 	DBUF[4]=0x10;
			; SOURCE LINE # 157
	LJMP 	?C0087
?C0032:
; 
; 	
; 	while(1)
			; SOURCE LINE # 160
; 	{
			; SOURCE LINE # 161
; 		DISP();
			; SOURCE LINE # 162
	LCALL	DISP
?C0034:
; 	
; 		while(!TESTKEY());
			; SOURCE LINE # 164
	LCALL	TESTKEY
	MOV  	A,R7
	JZ   	?C0034
?C0035:
; 
; 		key=GETKEY();
			; SOURCE LINE # 166
	LCALL	GETKEY
	MOV  	R1,AR7
; 		if(!get_key)
			; SOURCE LINE # 167
	MOV  	A,get_key
	JZ   	?C0032
; 			continue;
			; SOURCE LINE # 168
?C0036:
; 						 
; 		num++;
			; SOURCE LINE # 170
	INC  	R3
; 
; 		switch(key)
			; SOURCE LINE # 172
	MOV  	A,R1
	CJNE 	A,#0FH,?C0085
?C0085:
	JNC  	?C0053
	MOV  	DPTR,#?C0086
	MOV  	R0,A
	ADD  	A,R0
	ADD  	A,R0
	JMP  	@A+DPTR
?C0086:
	LJMP 	?C0038
	LJMP 	?C0039
	LJMP 	?C0040
	LJMP 	?C0041
	LJMP 	?C0042
	LJMP 	?C0043
	LJMP 	?C0044
	LJMP 	?C0045
	LJMP 	?C0046
	LJMP 	?C0047
	LJMP 	?C0048
	LJMP 	?C0049
	LJMP 	?C0050
	LJMP 	?C0051
	LJMP 	?C0052
; 		{
			; SOURCE LINE # 173
; 			case 0:		key_mode=num_key;	break;
			; SOURCE LINE # 174
?C0038:
	SJMP 	?C0096
; 			case 1:		key_mode=num_key;	break;
			; SOURCE LINE # 175
?C0039:
?C0088:
	SJMP 	?C0096
; 			case 2:		key_mode=num_key;	break;
			; SOURCE LINE # 176
?C0040:
?C0089:
	SJMP 	?C0096
; 			case 3:		key_mode=num_key;	break;
			; SOURCE LINE # 177
?C0041:
?C0090:
	SJMP 	?C0096
; 			case 4:		key_mode=num_key;	break;
			; SOURCE LINE # 178
?C0042:
?C0091:
	SJMP 	?C0096
; 			case 5:		key_mode=num_key;	break;
			; SOURCE LINE # 179
?C0043:
?C0092:
	SJMP 	?C0096
; 			case 6:		key_mode=num_key;	break;
			; SOURCE LINE # 180
?C0044:
?C0093:
	SJMP 	?C0096
; 			case 7:		key_mode=num_key;	break;
			; SOURCE LINE # 181
?C0045:
?C0094:
	SJMP 	?C0096
; 			case 8:		key_mode=num_key;	break;
			; SOURCE LINE # 182
?C0046:
?C0095:
	SJMP 	?C0096
; 			case 9:		key_mode=num_key;	break;
			; SOURCE LINE # 183
?C0047:
?C0096:
	CLR  	A
	MOV  	key_mode,A
	SJMP 	?C0037
; 	
; 			case 10:	key_mode=fun_key;	break;
			; SOURCE LINE # 185
?C0048:
	SJMP 	?C0100
; 			case 11:	key_mode=fun_key;	break;
			; SOURCE LINE # 186
?C0049:
?C0097:
	SJMP 	?C0100
; 			case 12:	key_mode=fun_key;	break;
			; SOURCE LINE # 187
?C0050:
?C0098:
	SJMP 	?C0100
; 			case 13:	key_mode=fun_key;	break;
			; SOURCE LINE # 188
?C0051:
?C0099:
	SJMP 	?C0100
; 			case 14:	key_mode=fun_key;	break;
			; SOURCE LINE # 189
?C0052:
?C0100:
	MOV  	key_mode,#01H
	SJMP 	?C0037
; 			
; 			
; 			default:	key_mode=clear_key;	
			; SOURCE LINE # 192
?C0053:
	MOV  	key_mode,#02H
; 		}
			; SOURCE LINE # 193
?C0037:
; 	
; 		if(key_mode==num_key)
			; SOURCE LINE # 195
	MOV  	A,key_mode
	JNZ  	?C0054
; 		{
			; SOURCE LINE # 196
; 			if(num==1)
			; SOURCE LINE # 197
	CJNE 	R3,#01H,?C0055
; 			{
			; SOURCE LINE # 198
; 				input=key;
			; SOURCE LINE # 199
	MOV  	R4,AR1
; 				DBUF[4]=key;
			; SOURCE LINE # 200
	MOV  	DBUF+04H,R1
; 				DBUF[3]=0x10;
			; SOURCE LINE # 201
	MOV  	DBUF+03H,#010H
; 				DBUF[2]=0x10;
			; SOURCE LINE # 202
	MOV  	DBUF+02H,#010H
; 					continue;
			; SOURCE LINE # 203
	LJMP 	?C0032
; 			}
			; SOURCE LINE # 204
?C0055:
; 			else if(num==2)
			; SOURCE LINE # 205
	CJNE 	R3,#02H,?C0057
; 			{
			; SOURCE LINE # 206
; 				input=input*10+key;
			; SOURCE LINE # 207
	MOV  	A,R4
	MOV  	B,#0AH
	MUL  	AB
	ADD  	A,R1
	MOV  	R4,A
; 				DBUF[2]=0x10;
			; SOURCE LINE # 208
	MOV  	DBUF+02H,#010H
; 				DBUF[3]=DBUF[4];
			; SOURCE LINE # 209
; 				DBUF[4]=key;
			; SOURCE LINE # 210
; 					continue;
			; SOURCE LINE # 211
	SJMP 	?C0101
; 			}
			; SOURCE LINE # 212
?C0057:
; 			else if(num==3)
			; SOURCE LINE # 213
	MOV  	A,R3
	XRL  	A,#03H
	JNZ  	?main?E3
; 			{
			; SOURCE LINE # 214
; 				OV=0;
			; SOURCE LINE # 215
	CLR  	OV
; 				ACC=input*10;
			; SOURCE LINE # 216
	MOV  	A,R4
	MOV  	B,#0AH
	MUL  	AB
; 				if(OV) goto E3;
			; SOURCE LINE # 217
	JB   	OV,?main?E3
?C0060:
; 				ACC+=key;
			; SOURCE LINE # 218
	MOV  	A,R1
	ADD  	A,ACC
; 				if(CY) goto E3;	
			; SOURCE LINE # 219
	JB   	CY,?main?E3
?C0062:
; 				input=ACC;
			; SOURCE LINE # 220
	MOV  	R4,A
; 
; 				DBUF[2]=DBUF[3];
			; SOURCE LINE # 222
	MOV  	DBUF+02H,DBUF+03H
; 				DBUF[3]=DBUF[4];
			; SOURCE LINE # 223
?C0101:
	MOV  	DBUF+03H,DBUF+04H
; 				DBUF[4]=key;
			; SOURCE LINE # 224
	MOV  	DBUF+04H,R1
; 					continue;					
			; SOURCE LINE # 225
	LJMP 	?C0032
; 			}
			; SOURCE LINE # 226
; 			else
; 			{
			; SOURCE LINE # 228
; 				goto E3;
			; SOURCE LINE # 229
; 			}
			; SOURCE LINE # 230
; 		}
			; SOURCE LINE # 231
?C0054:
; 		else if(key_mode==fun_key)
			; SOURCE LINE # 232
	MOV  	A,key_mode
	XRL  	A,#01H
	JNZ  	?main?E3
; 		{
			; SOURCE LINE # 233
; 			DBUF[4]=0x10;
			; SOURCE LINE # 234
	MOV  	DBUF+04H,#010H
; 			DBUF[3]=0x10;
			; SOURCE LINE # 235
	MOV  	DBUF+03H,#010H
; 			DBUF[2]=0x10;
			; SOURCE LINE # 236
	MOV  	DBUF+02H,#010H
; 			
; 			_R0=GONG;
			; SOURCE LINE # 238
;---- Variable '_R0?452' assigned to Register 'R7' ----
	MOV  	R7,GONG
; 			GONG=key;
			; SOURCE LINE # 239
	MOV  	GONG,R1
; 
; 			/* + */
; 			if(_R0==10)
			; SOURCE LINE # 242
	CJNE 	R7,#0AH,?C0066
; 			{	
			; SOURCE LINE # 243
; 				YJ=YJ+input;
			; SOURCE LINE # 244
	MOV  	A,R4
	ADD  	A,YJ
	MOV  	YJ,A
; 				if(CY)	goto E3;
			; SOURCE LINE # 245
	JB   	CY,?main?E3
?C0067:
; 				num=0;
			; SOURCE LINE # 246
	CLR  	A
	MOV  	R3,A
; 			}
			; SOURCE LINE # 247
	SJMP 	?C0064
?C0066:
; 			/* - */
; 			else if(_R0==11)
			; SOURCE LINE # 249
	CJNE 	R7,#0BH,?C0069
; 			{
			; SOURCE LINE # 250
; 				YJ=YJ-input;
			; SOURCE LINE # 251
	CLR  	C
	MOV  	A,YJ
	SUBB 	A,R4
	MOV  	YJ,A
; 				if(CY)	goto E3;
			; SOURCE LINE # 252
	JB   	CY,?main?E3
?C0070:
; 				num=0;
			; SOURCE LINE # 253
	CLR  	A
	MOV  	R3,A
; 			}
			; SOURCE LINE # 254
	SJMP 	?C0064
?C0069:
; 			/* * */
; 			else if(_R0==12)
			; SOURCE LINE # 256
	CJNE 	R7,#0CH,?C0072
; 			{
			; SOURCE LINE # 257
; 					
; 				YJ=YJ*input;
			; SOURCE LINE # 259
	MOV  	A,YJ
	MOV  	B,R4
	MUL  	AB
	MOV  	YJ,A
; 				if(OV)	goto E3;				
			; SOURCE LINE # 260
	JNB  	OV,?C0064
	SJMP 	?main?E3
; 			}
			; SOURCE LINE # 261
?C0072:
; 			/* / */
; 			else if(_R0==13)
			; SOURCE LINE # 263
	CJNE 	R7,#0DH,?C0075
; 			{
			; SOURCE LINE # 264
; 				YJ=YJ/input;
			; SOURCE LINE # 265
	MOV  	A,YJ
	MOV  	B,R4
	DIV  	AB
	MOV  	YJ,A
; 				num=0;
			; SOURCE LINE # 266
	CLR  	A
	MOV  	R3,A
; 			}
			; SOURCE LINE # 267
	SJMP 	?C0064
?C0075:
; 			/* FIRST */
; 			else if(_R0==0)
			; SOURCE LINE # 269
	MOV  	A,R7
	JNZ  	?C0077
; 			{
			; SOURCE LINE # 270
; 				YJ=input;
			; SOURCE LINE # 271
	MOV  	YJ,R4
; 				num=0;
			; SOURCE LINE # 272
	MOV  	R3,A
; 			}
			; SOURCE LINE # 273
	SJMP 	?C0064
?C0077:
; 			/* DEN */
; 			else
; 			{
			; SOURCE LINE # 276
; 				num=0;
			; SOURCE LINE # 277
	CLR  	A
	MOV  	R3,A
; 			}
			; SOURCE LINE # 278
; 				
; 		}
			; SOURCE LINE # 280
	SJMP 	?C0064
; 		/*   清除  */
; 		else 
; 		{
			; SOURCE LINE # 283
; E3:			num=0;
			; SOURCE LINE # 284
?main?E3:
	CLR  	A
	MOV  	R3,A
; 			input=0;
			; SOURCE LINE # 285
	MOV  	R4,A
; 			YJ=0;
			; SOURCE LINE # 286
	MOV  	YJ,A
; 			GONG=0;
			; SOURCE LINE # 287
?C0087:
	MOV  	GONG,A
; 
; 			DBUF[0]=0x10;
			; SOURCE LINE # 289
	MOV  	DBUF,#010H
; 			DBUF[1]=0x10;
			; SOURCE LINE # 290
	MOV  	DBUF+01H,#010H
; 			DBUF[2]=0x10;
			; SOURCE LINE # 291
	MOV  	DBUF+02H,#010H
; 			DBUF[3]=0x10;
			; SOURCE LINE # 292
	MOV  	DBUF+03H,#010H
; 			DBUF[4]=0x10;
			; SOURCE LINE # 293
	MOV  	DBUF+04H,#010H
; 				continue;
			; SOURCE LINE # 294
	LJMP 	?C0032
; 		}
			; SOURCE LINE # 295
?C0064:
; 
; //DISP1:
; 		YJ1=YJ/10;
			; SOURCE LINE # 298
	MOV  	A,YJ
	MOV  	B,#0AH
	DIV  	AB
	MOV  	YJ1,A
; 		DBUF[4]=YJ%10;
			; SOURCE LINE # 299
	MOV  	A,YJ
	MOV  	B,#0AH
	DIV  	AB
	MOV  	DBUF+04H,B
; 
; 		if(YJ1==0)
			; SOURCE LINE # 301
	MOV  	A,YJ1
	JNZ  	$ + 5H
	LJMP 	?C0032
; 			continue;
			; SOURCE LINE # 302
?C0080:
; 		else
; 		{
			; SOURCE LINE # 304
; 			temp=YJ1;
			; SOURCE LINE # 305
;---- Variable 'temp?454' assigned to Register 'R7' ----
	MOV  	R7,YJ1
; 			YJ1=YJ1/10;
			; SOURCE LINE # 306
	MOV  	A,YJ1
	MOV  	B,#0AH
	DIV  	AB
	MOV  	YJ1,A
; 			DBUF[3]=temp%10;
			; SOURCE LINE # 307
	MOV  	A,R7
	MOV  	B,#0AH
	DIV  	AB
	MOV  	DBUF+03H,B
; 
; 			if(YJ1==0) continue;
			; SOURCE LINE # 309
	MOV  	A,YJ1
	JNZ  	$ + 5H
	LJMP 	?C0032
?C0082:
; 			else DBUF[2]=YJ1;
			; SOURCE LINE # 310
	MOV  	DBUF+02H,YJ1
; 		}	
			; SOURCE LINE # 311
; 	}//end while
			; SOURCE LINE # 312
	LJMP 	?C0032
; END OF main

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -