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

📄 9-2.asm

📁 《DSP嵌入式系统开发典型案例》此书的源代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		.bss Tdr,4,4							; 微分Tdr值
		.bss DStCurrbss,4,4 					; 当前延迟状态指针
		.bss DelayPath,320,4 					; 延迟状态和路径状态向量(半字格式)
		.bss AccDist,32,4 					; 距离累积值向量(字格式)

		.bss Distance,32,4 					; 距离结果向量(字格式)
		.bss Dummy,2,2 						; 允许同步进入 
		.bss State,16,4 						; 状态向量(半字格式)
		.bss MCurr,4,4 						; 存储当前调制指针

SK 		.set 1024 							; 比例因子

		.sect "LUTable" 

MMMMM 	.set 0x7FFF 					; 有符号数据最大值
SS 			.set 0xFFFF 					; 无符号数据最大值 
SZ 			.set 3 						; 数据指针字大小

	.def _M14 							 
_M14: 									; 调整方式为14.4 kbps 
	.int M140 								; 首地址 
	.int 0x35E								; 提取第4和第5位 
	.int 0x39C 							; 提取第0到第3位
	.int 4 								; 移位累加值 

M140 .int M141 							; 下一个地址
	.short -5*SK,-6*SK,4*SK,4*SK,(3+1)*SZ,(4+1)*SZ 		; Ys,Xs,Yq,Xq,Ny+1,Nx+1 
	.short -7*SK,-4*SK,-3*SK,-8*SK,0x05,0x00 			; Y0,X0,Y1,X1,S0,S1 
	.short -7*SK,-4*SK,MMMMM,MMMMM,0x05,SS 
	.short -7*SK,+0*SK,MMMMM,MMMMM,0x07,SS 
	.short -7*SK,+4*SK,MMMMM,MMMMM,0x03,SS 
	.short -7*SK,+4*SK,-3*SK,+8*SK,0x03,0x01 
	.short -3*SK,-8*SK,MMMMM,MMMMM,0x00,SS 
	.short -3*SK,-4*SK,MMMMM,MMMMM,0x04,SS 
	.short -3*SK,+0*SK,MMMMM,MMMMM,0x06,SS 
	.short -3*SK,+4*SK,MMMMM,MMMMM,0x02,SS 
	.short -3*SK,+8*SK,MMMMM,MMMMM,0x01,SS 
	.short +1*SK,-8*SK,MMMMM,MMMMM,0x08,SS 
	.short +1*SK,-4*SK,MMMMM,MMMMM,0x0C,SS 
	.short +1*SK,+0*SK,MMMMM,MMMMM,0x0E,SS 
	.short +1*SK,+4*SK,MMMMM,MMMMM,0x0A,SS 
	.short +1*SK,+8*SK,MMMMM,MMMMM,0x09,SS 
	.short +5*SK,-4*SK,+1*SK,-8*SK,0x0D,0x08 
	.short +5*SK,-4*SK,MMMMM,MMMMM,0x0D,SS 
	.short +5*SK,+0*SK,MMMMM,MMMMM,0x0F,SS 
	.short +5*SK,+4*SK,MMMMM,MMMMM,0x0B,SS 
	.short +5*SK,+4*SK,+1*SK,+8*SK,0x0B,0x09 

M141 .int M142 										; 下一个地址
	.short -3*SK,-6*SK,4*SK,4*SK,(3+1)*SZ,(4+1)*SZ 			; Ys,Xs,Yq,Xq,Ny+1,Nx+1 
	.short -5*SK,-4*SK,-1*SK,-8*SK,0x1B,0x19 				; Y0,X0,Y1,X1,S0,S1 
	.short -5*SK,-4*SK,MMMMM,MMMMM,0x1B,SS 
	.short -5*SK,+0*SK,MMMMM,MMMMM,0x1F,SS 
	.short -5*SK,+4*SK,MMMMM,MMMMM,0x1D,SS 
	.short -5*SK,+4*SK,-1*SK,+8*SK,0x1D,0x18 
	.short -1*SK,-8*SK,MMMMM,MMMMM,0x19,SS 
	.short -1*SK,-4*SK,MMMMM,MMMMM,0x1A,SS 
	.short -1*SK,+0*SK,MMMMM,MMMMM,0x1E,SS 
	.short -1*SK,+4*SK,MMMMM,MMMMM,0x1C,SS 
	.short -1*SK,+8*SK,MMMMM,MMMMM,0x18,SS 
	.short +3*SK,-8*SK,MMMMM,MMMMM,0x11,SS 
	.short +3*SK,-4*SK,MMMMM,MMMMM,0x12,SS 
	.short +3*SK,+0*SK,MMMMM,MMMMM,0x16,SS 
	.short +3*SK,+4*SK,MMMMM,MMMMM,0x14,SS 
	.short +3*SK,+8*SK,MMMMM,MMMMM,0x10,SS 
	.short +7*SK,-4*SK,+3*SK,-8*SK,0x13,0x11 
	.short +7*SK,-4*SK,MMMMM,MMMMM,0x13,SS 
	.short +7*SK,+0*SK,MMMMM,MMMMM,0x17,SS 
	.short +7*SK,+4*SK,MMMMM,MMMMM,0x15,SS 
	.short +7*SK,+4*SK,+3*SK,+8*SK,0x15,0x10 
	
M142 .int M143 ; Next address 
	.short -7*SK,-4*SK,4*SK,4*SK,(4+1)*SZ,(3+1)*SZ 			; Ys,Xs,Yq,Xq,Ny+1,Nx+1 
	.short -9*SK,-2*SK,-5*SK,-6*SK,0x28,0x2D 				; Y0,X0,Y1,X1,S0,S1
	.short -9*SK,-2*SK,MMMMM,MMMMM,0x28,SS 
	.short -9*SK,+2*SK,MMMMM,MMMMM,0x20,SS 
	.short -9*SK,+2*SK,-5*SK,+6*SK,0x20,0x25 
	.short -5*SK,-6*SK,MMMMM,MMMMM,0x2D,SS 
	.short -5*SK,-2*SK,MMMMM,MMMMM,0x2C,SS 
	.short -5*SK,+2*SK,MMMMM,MMMMM,0x24,SS 
	.short -5*SK,+6*SK,MMMMM,MMMMM,0x25,SS 
	.short -1*SK,-6*SK,MMMMM,MMMMM,0x2F,SS 
	.short -1*SK,-2*SK,MMMMM,MMMMM,0x2E,SS 
	.short -1*SK,+2*SK,MMMMM,MMMMM,0x26,SS 
	.short -1*SK,+6*SK,MMMMM,MMMMM,0x27,SS 
	.short +3*SK,-6*SK,MMMMM,MMMMM,0x2B,SS 
	.short +3*SK,-2*SK,MMMMM,MMMMM,0x2A,SS 
	.short +3*SK,+2*SK,MMMMM,MMMMM,0x22,SS 
	.short +3*SK,+6*SK,MMMMM,MMMMM,0x23,SS 
	.short +7*SK,-2*SK,+3*SK,-6*SK,0x29,0x2B 
	.short +7*SK,-2*SK,MMMMM,MMMMM,0x29,SS 
	.short +7*SK,+2*SK,MMMMM,MMMMM,0x21,SS 
	.short +7*SK,+2*SK,+3*SK,+6*SK,0x21,0x23 
	
M143 .int M144 ; Next address 
	.short -5*SK,-4*SK,4*SK,4*SK,(4+1)*SZ,(3+1)*SZ 		; Ys,Xs,Yq,Xq,Ny+1,Nx+1 
	.short -7*SK,-2*SK,-3*SK,-6*SK,0x31,0x33 			; Y0,X0,Y1,X1,S0,S1 
	.short -7*SK,-2*SK,MMMMM,MMMMM,0x31,SS 
	.short -7*SK,+2*SK,MMMMM,MMMMM,0x39,SS 
	.short -7*SK,+2*SK,-3*SK,+6*SK,0x39,0x3B 
	.short -3*SK,-6*SK,MMMMM,MMMMM,0x33,SS 
	.short -3*SK,-2*SK,MMMMM,MMMMM,0x32,SS 
	.short -3*SK,+2*SK,MMMMM,MMMMM,0x3A,SS 
	.short -3*SK,+6*SK,MMMMM,MMMMM,0x3B,SS 
	.short +1*SK,-6*SK,MMMMM,MMMMM,0x37,SS 
	.short +1*SK,-2*SK,MMMMM,MMMMM,0x36,SS 
	.short +1*SK,+2*SK,MMMMM,MMMMM,0x3E,SS 
	.short +1*SK,+6*SK,MMMMM,MMMMM,0x3F,SS 
	.short +5*SK,-6*SK,MMMMM,MMMMM,0x35,SS 
	.short +5*SK,-2*SK,MMMMM,MMMMM,0x34,SS 
	.short +5*SK,+2*SK,MMMMM,MMMMM,0x3C,SS 
	.short +5*SK,+6*SK,MMMMM,MMMMM,0x3D,SS 
	.short +9*SK,-2*SK,+5*SK,-6*SK,0x30,0x35 
	.short +9*SK,-2*SK,MMMMM,MMMMM,0x30,SS 
	.short +9*SK,+2*SK,MMMMM,MMMMM,0x38,SS 
	.short +9*SK,+2*SK,+5*SK,+6*SK,0x38,0x3D 
	
M144 .int M145 									; 下一个地址
	.short -4*SK,-5*SK,4*SK,4*SK,(3+1)*SZ,(4+1)*SZ 		; Ys,Xs,Yq,Xq,Ny+1,Nx+1 
	.short -6*SK,-3*SK,-2*SK,-7*SK,0x4B,0x49				; Y0,X0,Y1,X1,S0,S1 
	.short -6*SK,-3*SK,MMMMM,MMMMM,0x4B,SS 
	.short -6*SK,+1*SK,MMMMM,MMMMM,0x4F,SS 
	.short -6*SK,+5*SK,MMMMM,MMMMM,0x4D,SS 
	.short -6*SK,+5*SK,-2*SK,+9*SK,0x4D,0x48 
	.short -2*SK,-7*SK,MMMMM,MMMMM,0x49,SS 
	.short -2*SK,-3*SK,MMMMM,MMMMM,0x4A,SS 
	.short -2*SK,+1*SK,MMMMM,MMMMM,0x4E,SS 
	.short -2*SK,+5*SK,MMMMM,MMMMM,0x4C,SS 
	.short -2*SK,+9*SK,MMMMM,MMMMM,0x48,SS 
	.short +2*SK,-7*SK,MMMMM,MMMMM,0x41,SS 
	.short +2*SK,-3*SK,MMMMM,MMMMM,0x42,SS 
	.short +2*SK,+1*SK,MMMMM,MMMMM,0x46,SS 
	.short +2*SK,+5*SK,MMMMM,MMMMM,0x44,SS 
	.short +2*SK,+9*SK,MMMMM,MMMMM,0x40,SS 
	.short +6*SK,-3*SK,+2*SK,-7*SK,0x43,0x41 
	.short +6*SK,-3*SK,MMMMM,MMMMM,0x43,SS 
	.short +6*SK,+1*SK,MMMMM,MMMMM,0x47,SS 
	.short +6*SK,+5*SK,MMMMM,MMMMM,0x45,SS 
	.short +6*SK,+5*SK,+2*SK,+9*SK,0x45,0x40 
	
M145 .int M146 										; 下一个地址
	.short -4*SK,-7*SK,4*SK,4*SK,(3+1)*SZ,(4+1)*SZ 			; Ys,Xs,Yq,Xq,Ny+1,Nx+1 
	.short -6*SK,-5*SK,-2*SK,-9*SK,0x55,0x50 				; Y0,X0,Y1,X1,S0,S1 
	.short -6*SK,-5*SK,MMMMM,MMMMM,0x55,SS 
	.short -6*SK,-1*SK,MMMMM,MMMMM,0x57,SS 
	.short -6*SK,+3*SK,MMMMM,MMMMM,0x53,SS 
	.short -6*SK,+3*SK,-2*SK,+7*SK,0x53,0x51 
	.short -2*SK,-9*SK,MMMMM,MMMMM,0x50,SS 
	.short -2*SK,-5*SK,MMMMM,MMMMM,0x54,SS 
	.short -2*SK,-1*SK,MMMMM,MMMMM,0x56,SS 
	.short -2*SK,+3*SK,MMMMM,MMMMM,0x52,SS 
	.short -2*SK,+7*SK,MMMMM,MMMMM,0x51,SS 
	.short +2*SK,-9*SK,MMMMM,MMMMM,0x58,SS 
	.short +2*SK,-5*SK,MMMMM,MMMMM,0x5C,SS 
	.short +2*SK,-1*SK,MMMMM,MMMMM,0x5E,SS 
	.short +2*SK,+3*SK,MMMMM,MMMMM,0x5A,SS 
	.short +2*SK,+7*SK,MMMMM,MMMMM,0x59,SS 
	.short +6*SK,-5*SK,+2*SK,-9*SK,0x5D,0x58 
	.short +6*SK,-5*SK,MMMMM,MMMMM,0x5D,SS 
	.short +6*SK,-1*SK,MMMMM,MMMMM,0x5F,SS 
	.short +6*SK,+3*SK,MMMMM,MMMMM,0x5B,SS 
	.short +6*SK,+3*SK,+2*SK,+7*SK,0x5B,0x59 
	
M146 .int M147 										; 下一个地址
	.short -6*SK,-5*SK,4*SK,4*SK,(4+1)*SZ,(3+1)*SZ 			; Ys,Xs,Yq,Xq,Ny+1,Nx+1 
	.short -8*SK,-3*SK,-4*SK,-7*SK,0x61,0x63 				; Y0,X0,Y1,X1,S0,S1 
	.short -8*SK,-3*SK,MMMMM,MMMMM,0x61,SS 
	.short -8*SK,+1*SK,MMMMM,MMMMM,0x69,SS 
	.short -8*SK,+1*SK,-4*SK,+5*SK,0x69,0x6B 
	.short -4*SK,-7*SK,MMMMM,MMMMM,0x63,SS 
	.short -4*SK,-3*SK,MMMMM,MMMMM,0x62,SS 
	.short -4*SK,+1*SK,MMMMM,MMMMM,0x6A,SS 
	.short -4*SK,+5*SK,MMMMM,MMMMM,0x6B,SS 
	.short +0*SK,-7*SK,MMMMM,MMMMM,0x67,SS 
	.short +0*SK,-3*SK,MMMMM,MMMMM,0x66,SS 
	.short +0*SK,+1*SK,MMMMM,MMMMM,0x6E,SS 
	.short +0*SK,+5*SK,MMMMM,MMMMM,0x6F,SS 
	.short +4*SK,-7*SK,MMMMM,MMMMM,0x65,SS 
	.short +4*SK,-3*SK,MMMMM,MMMMM,0x64,SS 
	.short +4*SK,+1*SK,MMMMM,MMMMM,0x6C,SS 
	.short +4*SK,+5*SK,MMMMM,MMMMM,0x6D,SS 
	.short +8*SK,-3*SK,+4*SK,-7*SK,0x60,0x65 
	.short +8*SK,-3*SK,MMMMM,MMMMM,0x60,SS 
	.short +8*SK,+1*SK,MMMMM,MMMMM,0x68,SS 
	.short +8*SK,+1*SK,+4*SK,+5*SK,0x68,0x6D 
	
M147 .int M140 										; 下一个地址
	.short -6*SK,-3*SK,4*SK,4*SK,(4+1)*SZ,(3+1)*SZ 			; Ys,Xs,Yq,Xq,Ny+1,Nx+1 
	.short -8*SK,-1*SK,-4*SK,-5*SK,0x78,0x7D 				; Y0,X0,Y1,X1,S0,S1 
	.short -8*SK,-1*SK,MMMMM,MMMMM,0x78,SS 
	.short -8*SK,+3*SK,MMMMM,MMMMM,0x70,SS 
	.short -8*SK,+3*SK,-4*SK,+7*SK,0x70,0x75 
	.short -4*SK,-5*SK,MMMMM,MMMMM,0x7D,SS 
	.short -4*SK,-1*SK,MMMMM,MMMMM,0x7C,SS 
	.short -4*SK,+3*SK,MMMMM,MMMMM,0x74,SS 
	.short -4*SK,+7*SK,MMMMM,MMMMM,0x75,SS 
	.short +0*SK,-5*SK,MMMMM,MMMMM,0x7F,SS 
	.short +0*SK,-1*SK,MMMMM,MMMMM,0x7E,SS 
	.short +0*SK,+3*SK,MMMMM,MMMMM,0x76,SS 
	.short +0*SK,+7*SK,MMMMM,MMMMM,0x77,SS 
	.short +4*SK,-5*SK,MMMMM,MMMMM,0x7B,SS 
	.short +4*SK,-1*SK,MMMMM,MMMMM,0x7A,SS 
	.short +4*SK,+3*SK,MMMMM,MMMMM,0x72,SS 
	.short +4*SK,+7*SK,MMMMM,MMMMM,0x73,SS 
	.short +8*SK,-1*SK,+4*SK,-5*SK,0x79,0x7B 
	.short +8*SK,-1*SK,MMMMM,MMMMM,0x79,SS 
	.short +8*SK,+3*SK,MMMMM,MMMMM,0x71,SS 
	.short +8*SK,+3*SK,+4*SK,+7*SK,0x71,0x73 
	
	.def _M12 ; Make this table visible to outside. 
_M12: 											; 调制方式为12.0 kbps,代码同上
												; 参数不同,根据需要修改参数
	; . . . 
		
TMBack 	.int 0x03122130 								; 定义矩阵43 42 41 40 03 02 01 00 
		.int 0x65475674 						  			; 	53 52 51 50 13 12 11 10 
		.int 0x12033021 									; 	63 62 61 60 23 22 21 20 
		.int 0x74564765 									; 	73 72 71 70 33 32 31 30 
	
Diff .int 0x1B4EE1B4 								 

	.text 
	.def _Init 
_Init: 												; DStCurrbss = *DelayPath.
	MVK DStCurrbss,A0 
	MVKH DStCurrbss,A0 
	MVK DelayPath,A1 
	MVKH DelayPath,A1 
	STW A1,*A0 
	MVK 16,B0 
PLoop: 												; DelayPath[i][j] = 0
	MVK 10,B1 										; i=0~15, j=0~9
	ZERO A0 
KLoop: 
	SUB 10,B1,A3 
	STH A0,*+A1[A3] 
	[B1] SUB B1,1,B1 
	[B1] B KLoop 
	NOP 5 
	ADDAH A1,10,A1 
	[B0] SUB B0,1,B0 
	[B0] B PLoop 
	NOP 5 
	
	MVK SK/2,A0 
	MVK AccDist,A1 
	MVKH AccDist,A1 
	MVK 8,B0 
ILoop: 												; AccDist[i] = 512, i=1~7
	SUB 8,B0,A3 										; AccDist[0] = 0
	STW A0,*+A1[A3] 
	[B0] SUB B0,1,B0 
	[B0] B ILoop 
	NOP 5 
	ZERO A0 
	STW A0,*+A1[0] 
	
	ZERO A0 
	MVK Tdr,A1 
	MVKH Tdr,A1 
	STW A0,*A1 
	
	B B3 
	NOP 5 

DStCurr 	.set A13 					; 当前延迟状态指针
TT0 		.set A1  					; 临时变量,用于测试
TT1 		.set B1  					; 临时变量,用于测试
Q0 		.set A3  					; 临时变量
Q1 		.set B3  					; 临时变量
W0 		.set A6  					; 临时变量
W1 		.set B6  					; 临时变量
DS0 		.set A0  					; 延迟状态0 
DS1 		.set B0  					; 延迟状态1 
DS2	 	.set A1  					; 延迟状态2 
DS3 		.set B1 					; 延迟状态3 
DS4 		.set A2 					; 延迟状态4 
DS5 		.set B2  					; 延迟状态5 
DS6 		.set A3  					; 延迟状态6 
DS7 		.set B3  					; 延迟状态7 
Dist0 	.set A7  					; 距离0 
Dist1 	.set B7  					; 距离1 

G0 		.set A5  					; 距离累积值0 
G1 		.set B5  					; 距离累积值1
G2 		.set A10 					; 距离累积值2
G3 		.set B10  					; 距离累积值3
G4		.set A11  					; 距离累积值4
G5 		.set B11  					; 距离累积值5
G6 		.set A9  					; 距离累积值6
G7 		.set B9  					; 距离累积值7

TTT 	.set A8 					; 跟踪回溯状态地址

	.def _Viterbi 
	.text 
_Viterbi: 
								; Viterbi译码第一步
								; 分配堆栈空间存储B3、A10~A13、B10~B13
								; 将参数3(A6)存储到MCurr
								; 设置当前延迟状态指针为DStCurr
	MV A6,B6 ;* 
	|| LDW *A6,MCurr0 				; 得到首个调制数据表
	|| SUBAW B15,9,B15 				; 分配存储空间
	
	MVK MCurr,B0 				 
	|| MVK DStCurrbss,A1 			 
	|| MV B15,A9 					; 设置快速存储寄存器 
	|| STW B3,*+B15[1] 				; 保存寄存器内容
	
	MVKH MCurr,B0 				 
	|| MVKH DStCurrbss,A1 			 
	|| STW A13,*+A9[8] 				; 保存寄存器内容
	|| STW B13,*+B15[9] 				; 保存寄存器内容
	
	STW B6,*B0 					; 保存当前指针
	|| LDW *A1,DStCurr 				; 取延迟状态指针

	STW A12,*+A9[6] 				; 保存寄存器内容
	|| STW B12,*+B15[7] 				; 保存寄存器内容
								; Viterbi译码第二步
								; 输入为Xi和Yi,输出为距离和状态
								; 基于输入Xi和Yi计算距离和状态值
XY 		.set A0 					; X、Y 用于SUB2指令操作
Cc 		.set B0 					; 循环计数器
Xt 		.set A1 					; 测试X 
Yt 		.set B1 					; 测试Y 
S1 		.set A1 					; 状态 1 
S0 		.set B1 					; 状态0 
TT 		.set B2 					; 临时变量 
Nx 		.set A3 					; Nx 
Ny 		.set B3 					; Ny 
Xi 		.set A4 					; 接收数据参数1
Yi 		.set B4 					; 接收数据参数2 
Xs 		.set A5 					; Xs 
Ys 		.set B5					; Ys 
MCurr0 	.set A6 					; 位速率调整表 
StateP 	.set B6 					; 状态结果指针 
Xq 		.set A7 					; Xq 
Yq 		.set B7 					; Yq 
DistP 	.set A8 					; 距离结果指针
MCurr1 	.set B8 					; B组寄存器指针
Ix 		.set A9 					; X索引
Iy 		.set B9 					; Y索引
Id0 		.set A9 					; 区域结果
Id1 		.set B9 					; B组寄存器区域结果
P2 		.set A9 					; 乘法寄存器
P3 		.set B9 					; 乘法寄存器
T0 		.set A10 					; 临时寄存器 
T1 		.set B10 					; 临时寄存器
P0 		.set A10 					; 乘法寄存器
P1 		.set B10 					; 乘法寄存器
T2 		.set A11 					; 临时寄存器
T3 		.set B11 					; 临时寄存器
MNext0 	.set A12 					; 下一个表指针

Step2: 
	MV MCurr0,TT 				 
	|| MVK State,StateP 				; 设置状态结果指针
	|| MVK Distance,DistP 			; 设置距离结果指针
	|| STW A11,*+A9[4] 				; 保存寄存器
	|| STW B11,*+B15[5] 				; 保存寄存器

	LDH *+MCurr0[3],Xs 			; 取Xs和Ys
	|| LDH *+TT[2],Ys 				  
	|| MVKH State,StateP 				  
	|| MVKH Distance,DistP 			  
	
	LDH *+MCurr0[5],Xq 			; 取Xq和Yq 
	|| LDH *+TT[4],Yq 				  
	
	LDH *+MCurr0[7],Nx 			; 取Nx和Ny 
	|| LDH *+TT[6],Ny 				  
	|| ZERO Ix 					; 初始化索引
	|| ZERO Iy 					  
	|| MVK 8,Cc 					; 初始化循环计数器
	
	STW A10,*+A9[2] 				; 保存寄存器 
	|| STW B10,*+B15[3] 				; 保存寄存器 
	
	NOP 2 						  
	
Cloop: 
	CMPGT Xi,Xs,Xt 				; 比较和增加测试水平
	|| ADD Xs,Xq,Xs 				  
	|| CMPGT Yi,Ys,Yt 				  
	|| ADD Ys,Yq,Ys 				  
	|| LDW *MCurr0,MNext0 			; 为下一个循环准备
	|| MV MCurr0,TT 				  
	
	.loop 4 						; 设置Max (Nx, Ny). 

⌨️ 快捷键说明

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