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

📄 serires sub.src

📁 本程序实现通过BDM方式访问MOTOROLA 9S12单片机EEPROM
💻 SRC
📖 第 1 页 / 共 3 页
字号:
			; SOURCE LINE # 250
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#0C0H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#01H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#016H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#020H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#020H
	LCALL	_Trbyte
; 		delay104us();
			; SOURCE LINE # 251
	LCALL	delay104us
; 		Trbyte(0xC0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x15,Crystal,Crystal);Trbyte(0x80,Crystal,Crystal);Trbyte(0x80,Crystal,Crystal);//C0 01 15 80 80       Programme a word(two bytes)		
			; SOURCE LINE # 252
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#0C0H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#01H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#015H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#080H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#080H
	LCALL	_Trbyte
; 		delay104us();
			; SOURCE LINE # 253
	LCALL	delay104us
?C0027:
; 	do
; 		{
			; SOURCE LINE # 255
; 		delay104us();
			; SOURCE LINE # 256
	LCALL	delay104us
; 		Trbyte(0xE0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x15,Crystal,Crystal);back_byte_h=RecByte(Crystal_r);back_byte_l=RecByte(Crystal_r);
			; SOURCE LINE # 257
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#0E0H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#01H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#015H
	LCALL	_Trbyte
	MOV  	R7,Crystal_r?566+01H
	LCALL	_RecByte
	MOV  	back_byte_h?568,R7
	MOV  	R7,Crystal_r?566+01H
	LCALL	_RecByte
	MOV  	back_byte_l?569,R7
; 		}
			; SOURCE LINE # 258
; 		while((back_byte_l & 0x80)!=0x80);		
			; SOURCE LINE # 259
	MOV  	A,back_byte_l?569
	JNB  	ACC.7,?C0027
; 		delay10ms();
			; SOURCE LINE # 260
	LCALL	delay10ms
; 		addrll+=2;
			; SOURCE LINE # 261
	INC  	addrll?562
	INC  	addrll?562
; 		if(addrll==0)		  
			; SOURCE LINE # 262
	MOV  	A,addrll?562
	JNZ  	?C0028
; 			{addrhh+=1;}
			; SOURCE LINE # 263
	INC  	addrhh?563
?C0028:
; 	
; 		delay52us();
			; SOURCE LINE # 265
	LCALL	delay52us
; 		// start to write byte2
; 		Trbyte(0xC8,Crystal,Crystal);Trbyte(addrhh,Crystal,Crystal);Trbyte(addrll,Crystal,Crystal);
			; SOURCE LINE # 267
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#0C8H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,addrhh?563
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,addrll?562
	LCALL	_Trbyte
; 		Trbyte(Eeprom[w_cycle+2],Crystal,Crystal);Trbyte(Eeprom[w_cycle+3],Crystal,Crystal);
			; SOURCE LINE # 268
	MOV  	A,#LOW (Eeprom+02H)
	ADD  	A,w_cycle?564+01H
	MOV  	DPL,A
	MOV  	A,#HIGH (Eeprom+02H)
	ADDC 	A,w_cycle?564
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	LCALL	_Trbyte
	MOV  	A,#LOW (Eeprom+03H)
	ADD  	A,w_cycle?564+01H
	MOV  	DPL,A
	MOV  	A,#HIGH (Eeprom+03H)
	ADDC 	A,w_cycle?564
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	LCALL	_Trbyte
; 		delay104us();
			; SOURCE LINE # 269
	LCALL	delay104us
; 		Trbyte(0xC0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x16,Crystal,Crystal);Trbyte(0x20,Crystal,Crystal);Trbyte(0x20,Crystal,Crystal);//C0 01 16 20 20 		Programme a word(two bytes)
			; SOURCE LINE # 270
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#0C0H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#01H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#016H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#020H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#020H
	LCALL	_Trbyte
; 		delay104us();
			; SOURCE LINE # 271
	LCALL	delay104us
; 		Trbyte(0xC0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x15,Crystal,Crystal);Trbyte(0x80,Crystal,Crystal);Trbyte(0x80,Crystal,Crystal);//C0 01 15 80 80       Programme a word(two bytes)		
			; SOURCE LINE # 272
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#0C0H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#01H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#015H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#080H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#080H
	LCALL	_Trbyte
; 		delay104us();
			; SOURCE LINE # 273
	LCALL	delay104us
?C0031:
; 	do
; 		{
			; SOURCE LINE # 275
; 		delay104us();
			; SOURCE LINE # 276
	LCALL	delay104us
; 		Trbyte(0xE0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x15,Crystal,Crystal);back_byte_h=RecByte(Crystal_r);back_byte_l=RecByte(Crystal_r);
			; SOURCE LINE # 277
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#0E0H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#01H
	LCALL	_Trbyte
	MOV  	R3,Crystal?565+01H
	MOV  	R2,Crystal?565
	MOV  	R5,Crystal?565+01H
	MOV  	R4,Crystal?565
	MOV  	R7,#015H
	LCALL	_Trbyte
	MOV  	R7,Crystal_r?566+01H
	LCALL	_RecByte
	MOV  	back_byte_h?568,R7
	MOV  	R7,Crystal_r?566+01H
	LCALL	_RecByte
	MOV  	back_byte_l?569,R7
; 		}
			; SOURCE LINE # 278
; 		while((back_byte_l & 0x80)!=0x80);
			; SOURCE LINE # 279
	MOV  	A,back_byte_l?569
	JNB  	ACC.7,?C0031
; 		delay104us();
			; SOURCE LINE # 280
	LCALL	delay104us
; 		addrll+=2;
			; SOURCE LINE # 281
	INC  	addrll?562
	INC  	addrll?562
; 		if(addrll==0)		  
			; SOURCE LINE # 282
	MOV  	A,addrll?562
	JNZ  	?C0032
; 			{addrhh+=1;}
			; SOURCE LINE # 283
	INC  	addrhh?563
?C0032:
; 		delay10ms();
			; SOURCE LINE # 284
	LCALL	delay10ms
; 		}
			; SOURCE LINE # 285
	MOV  	A,#04H
	ADD  	A,w_cycle?564+01H
	MOV  	w_cycle?564+01H,A
	CLR  	A
	ADDC 	A,w_cycle?564
	MOV  	w_cycle?564,A
	LJMP 	?C0019
?C0020:
; //	delay200ms();
; 	output(0x55);
			; SOURCE LINE # 287
	MOV  	R7,#055H
	LCALL	_output
; 	output(0xff);
			; SOURCE LINE # 288
	MOV  	R7,#0FFH
	LJMP 	_output
; END OF Write_datas

; }
; /*
; void Erase_datas()
; {
; 	uchar addrll,addrhh;
; 	int w_cycle;
; 	uint Crystal,Crystal_r;
; 	uint Data_Size_Write;
; //	uchar byte_h,byte_l;
; 	uchar back_byte_h,back_byte_l;
; 
; 	Crystal=Baud_Config();
; 
; 	Crystal_r=Crystal+1;
;  
; 	addrhh=Instruction[1];
; 	addrll=Instruction[2];
;  	Data_Size_Write=(Instruction[3])*256+Instruction[4];
; 
; 	delay10ms();
; 	Config_Eeprom(Crystal);
; 	delay10ms();
; 
; 	for(w_cycle=0;w_cycle<Data_Size_Write;w_cycle+=4)
; 		{
; 		Trbyte(0xC8,Crystal,Crystal);Trbyte(addrhh,Crystal,Crystal);Trbyte(addrll,Crystal,Crystal);
; 		Trbyte(0xff,Crystal,Crystal);Trbyte(0xff,Crystal,Crystal);
; 		delay52us();
; 		Trbyte(0xC0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x16,Crystal,Crystal);Trbyte(0x40,Crystal,Crystal);Trbyte(0x40,Crystal,Crystal);//C0 01 16 40 40 		Erase two words(fore bytes)
; 		delay52us();
; 		Trbyte(0xC0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x15,Crystal,Crystal);Trbyte(0x80,Crystal,Crystal);Trbyte(0x80,Crystal,Crystal);//C0 01 15 80 80       Programme a word(two bytes)		
; 		delay52us();
; 	do
; 		{
; 		delay104us();
; 		Trbyte(0xE0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x15,Crystal,Crystal);back_byte_h=RecByte(Crystal_r);back_byte_l=RecByte(Crystal_r);
; 		}
; 		while((back_byte_l & 0x80)!=0x80);					//Erase 4 bytes
; 		delay10ms();
; 		addrll+=4;
; 		if(addrll==0)		  
; 			{addrhh+=1;}
; 
; 		
; 		}
; 	output(0x55);
; 	output(0xff);
; }*/
; 
; void Erase_datas()

	RSEG  ?PR?Erase_datas?SERIRES_SUB
Erase_datas:
	USING	0
			; SOURCE LINE # 338
; {
			; SOURCE LINE # 339
; 	uchar addrll,addrhh;
; //	int w_cycle;
; 	uint Crystal,Crystal_r;
; 	uint Data_Size_Write;
; //	uchar byte_h,byte_l;
; 	uchar back_byte_h,back_byte_l;
; 
; 	Crystal=Baud_Config();
			; SOURCE LINE # 347
	LCALL	Baud_Config
	MOV  	Crystal?672,R6
	MOV  	Crystal?672+01H,R7
; 
; 	Crystal_r=Crystal+1;
			; SOURCE LINE # 349
	MOV  	A,Crystal?672+01H
	ADD  	A,#01H
	MOV  	Crystal_r?673+01H,A
	CLR  	A
	ADDC 	A,Crystal?672
	MOV  	Crystal_r?673,A
;  
; 	addrhh=Instruction[1];
			; SOURCE LINE # 351
	MOV  	addrhh?671,Instruction+01H
; 	addrll=Instruction[2];
			; SOURCE LINE # 352
	MOV  	addrll?670,Instruction+02H
;  	Data_Size_Write=(Instruction[3])*256+Instruction[4];
			; SOURCE LINE # 353
	MOV  	A,Instruction+03H
	MOV  	R6,A
	MOV  	R4,#00H
	CLR  	A
	ADD  	A,Instruction+04H
	MOV  	Data_Size_Write?674+01H,A
	MOV  	A,R4
	ADDC 	A,R6
	MOV  	Data_Size_Write?674,A
; 
; 	delay10ms();
			; SOURCE LINE # 355
	LCALL	delay10ms
; 	Config_Eeprom(Crystal);
			; SOURCE LINE # 356
	MOV  	R7,Crystal?672+01H
	MOV  	R6,Crystal?672
	LCALL	_Config_Eeprom
; 	delay10ms();
			; SOURCE LINE # 357
	LCALL	delay10ms
; 
; 
; 	Trbyte(0xC8,Crystal,Crystal);Trbyte(addrhh,Crystal,Crystal);Trbyte(addrll,Crystal,Crystal);
			; SOURCE LINE # 360
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#0C8H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,addrhh?671
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,addrll?670
	LCALL	_Trbyte
; 	Trbyte(0xff,Crystal,Crystal);Trbyte(0xff,Crystal,Crystal);
			; SOURCE LINE # 361
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#0FFH
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#0FFH
	LCALL	_Trbyte
; 	delay52us();
			; SOURCE LINE # 362
	LCALL	delay52us
; 	Trbyte(0xC0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x16,Crystal,Crystal);Trbyte(0x41,Crystal,Crystal);Trbyte(0x41,Crystal,Crystal);//C0 01 16 40 40 		Erase two words(fore bytes)
			; SOURCE LINE # 363
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#0C0H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#01H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#016H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#041H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#041H
	LCALL	_Trbyte
; 	delay52us();
			; SOURCE LINE # 364
	LCALL	delay52us
; 	Trbyte(0xC0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x15,Crystal,Crystal);Trbyte(0x80,Crystal,Crystal);Trbyte(0x80,Crystal,Crystal);//C0 01 15 80 80       Programme a word(two bytes)		
			; SOURCE LINE # 365
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#0C0H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#01H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#015H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#080H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#080H
	LCALL	_Trbyte
; 	delay52us();
			; SOURCE LINE # 366
	LCALL	delay52us
?C0036:
; 	do
; 		{
			; SOURCE LINE # 368
; 		delay104us();
			; SOURCE LINE # 369
	LCALL	delay104us
; 		Trbyte(0xE0,Crystal,Crystal);Trbyte(0x01,Crystal,Crystal);Trbyte(0x15,Crystal,Crystal);back_byte_h=RecByte(Crystal_r);back_byte_l=RecByte(Crystal_r);
			; SOURCE LINE # 370
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#0E0H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#01H
	LCALL	_Trbyte
	MOV  	R3,Crystal?672+01H
	MOV  	R2,Crystal?672
	MOV  	R5,Crystal?672+01H
	MOV  	R4,Crystal?672
	MOV  	R7,#015H
	LCALL	_Trbyte
	MOV  	R7,Crystal_r?673+01H
	LCALL	_RecByte
	MOV  	back_byte_h?675,R7
	MOV  	R7,Crystal_r?673+01H
	LCALL	_RecByte
;---- Variable 'back_byte_l?676' assigned to Register 'R7' ----
; 		}
			; SOURCE LINE # 371
; 		while((back_byte_l & 0x80)!=0x80);					//Erase 4 bytes
			; SOURCE LINE # 372
	MOV  	A,R7
	JNB  	ACC.7,?C0036
;  
; 	output(0x55);
			; SOURCE LINE # 374
	MOV  	R7,#055H
	LCALL	_output
; 	output(0xff);
			; SOURCE LINE # 375
	MOV  	R7,#0FFH
	LJMP 	_output
; END OF Erase_datas

	END

⌨️ 快捷键说明

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