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

📄 设计最后.s

📁 PS2控制代码123456789
💻 S
📖 第 1 页 / 共 5 页
字号:
L106:
	.dbline 519
L107:
	.dbline 519
	inc R12
L109:
	.dbline 519
; 								for (TempCyc = 0;(UnShifted[TempCyc][0]!=ScanCode)&&(TempCyc<71); TempCyc++); //查表显示
	ldi R24,2
	mul R24,R12
	movw R30,R0
	ldi R24,<_UnShifted
	ldi R25,>_UnShifted
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	cp R2,R10
	breq L110
	mov R24,R12
	cpi R24,71
	brlo L106
L110:
	.dbline 520
; 								if (UnShifted[TempCyc][0] == ScanCode) 
	ldi R24,2
	mul R24,R12
	movw R30,R0
	ldi R24,<_UnShifted
	ldi R25,>_UnShifted
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	cp R2,R10
	breq X8
	xjmp L87
X8:
	.dbline 521
;                                    {  write_asiic(DisNumx, DisNumy, UnShifted[TempCyc][1]);
	.dbline 521
	ldi R24,2
	mul R24,R12
	movw R30,R0
	ldi R24,<_UnShifted+1
	ldi R25,>_UnShifted+1
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	std y+0,R2
	lds R18,_DisNumy
	lds R16,_DisNumx
	xcall _write_asiic
	.dbline 522
; 									  DisNumx++;
	lds R24,_DisNumx
	subi R24,255    ; addi 1
	sts _DisNumx,R24
	.dbline 523
; 									  if((ScanCode==0x70)||(ScanCode==0x69)||(ScanCode==0x72)||(ScanCode==0x7A)||(ScanCode==0x6B)||
	mov R24,R10
	cpi R24,112
	breq L124
	cpi R24,105
	breq L124
	cpi R24,114
	breq L124
	cpi R24,122
	breq L124
	cpi R24,107
	breq L124
	cpi R24,115
	breq L124
	cpi R24,116
	breq L124
	cpi R24,108
	breq L124
	cpi R24,117
	breq L124
	cpi R24,125
	breq X9
	xjmp L114
X9:
L124:
	.dbline 525
; 									  (ScanCode==0x73)||(ScanCode==0x74)||(ScanCode==0x6C)||(ScanCode==0x75)||(ScanCode==0x7D))
; 									   {DisNumx1++;
	.dbline 525
	lds R24,_DisNumx1
	subi R24,255    ; addi 1
	sts _DisNumx1,R24
	.dbline 526
; 									  switch(ScanCode)
	mov R14,R10
	clr R15
	movw R24,R14
	cpi R24,105
	ldi R30,0
	cpc R25,R30
	breq L129
	cpi R24,107
	ldi R30,0
	cpc R25,R30
	breq L132
	cpi R24,108
	ldi R30,0
	cpc R25,R30
	brne X10
	xjmp L135
X10:
	cpi R24,112
	ldi R30,0
	cpc R25,R30
	breq L128
	cpi R24,114
	ldi R30,0
	cpc R25,R30
	breq L130
	cpi R24,115
	ldi R30,0
	cpc R25,R30
	breq L133
	cpi R24,116
	ldi R30,0
	cpc R25,R30
	breq L134
	cpi R24,117
	ldi R30,0
	cpc R25,R30
	breq L136
	cpi R24,122
	ldi R30,0
	cpc R25,R30
	breq L131
	cpi R24,105
	ldi R30,0
	cpc R25,R30
	brlt L126
L138:
	movw R24,R14
	cpi R24,125
	ldi R30,0
	cpc R25,R30
	breq L137
	xjmp L126
X3:
	.dbline 527
; 									   {
L128:
	.dbline 528
; 									   case 0x70: keytemp=0;break;//小键盘
	clr R2
	sts _keytemp,R2
	.dbline 528
	xjmp L126
L129:
	.dbline 529
;                                        case 0x69: keytemp=1;break;
	ldi R24,1
	sts _keytemp,R24
	.dbline 529
	xjmp L126
L130:
	.dbline 530
;                                        case 0x72: keytemp=2;break;
	ldi R24,2
	sts _keytemp,R24
	.dbline 530
	xjmp L126
L131:
	.dbline 531
;                                        case 0x7A: keytemp=3;break;
	ldi R24,3
	sts _keytemp,R24
	.dbline 531
	xjmp L126
L132:
	.dbline 532
;                                        case 0x6B: keytemp=4;break;
	ldi R24,4
	sts _keytemp,R24
	.dbline 532
	xjmp L126
L133:
	.dbline 533
;                                        case 0x73: keytemp=5;break;
	ldi R24,5
	sts _keytemp,R24
	.dbline 533
	xjmp L126
L134:
	.dbline 534
;                                        case 0x74: keytemp=6;break;
	ldi R24,6
	sts _keytemp,R24
	.dbline 534
	xjmp L126
L135:
	.dbline 535
;                                        case 0x6C: keytemp=7;break;
	ldi R24,7
	sts _keytemp,R24
	.dbline 535
	xjmp L126
L136:
	.dbline 536
;                                        case 0x75: keytemp=8;break;
	ldi R24,8
	sts _keytemp,R24
	.dbline 536
	xjmp L126
L137:
	.dbline 537
;                                        case 0x7D: keytemp=9;break;
	ldi R24,9
	sts _keytemp,R24
	.dbline 537
	.dbline 538
;      	                               default:break;
L126:
	.dbline 540
; 									  }
; 									  switch(DisNumx1)
	lds R14,_DisNumx1
	clr R15
	movw R24,R14
	cpi R24,1
	ldi R30,0
	cpc R25,R30
	breq L142
	cpi R24,2
	ldi R30,0
	cpc R25,R30
	breq L143
	cpi R24,3
	ldi R30,0
	cpc R25,R30
	brne X11
	xjmp L144
X11:
	cpi R24,4
	ldi R30,0
	cpc R25,R30
	brne X12
	xjmp L145
X12:
	cpi R24,5
	ldi R30,0
	cpc R25,R30
	brne X13
	xjmp L146
X13:
	cpi R24,6
	ldi R30,0
	cpc R25,R30
	brne X14
	xjmp L147
X14:
	cpi R24,7
	ldi R30,0
	cpc R25,R30
	brne X15
	xjmp L148
X15:
	cpi R24,8
	ldi R30,0
	cpc R25,R30
	brne X16
	xjmp L149
X16:
	xjmp L140
X4:
	.dbline 541
; 									  {
L142:
	.dbline 542
; 									   case 1:value=keytemp;break;
	lds R2,_keytemp
	clr R3
	clr R4
	clr R5
	sts _value+1,R3
	sts _value,R2
	sts _value+2+1,R5
	sts _value+2,R4
	.dbline 542
	xjmp L140
L143:
	.dbline 543
;                                        case 2:value=value*10+keytemp;break;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	movw R4,R18
	lds R6,_keytemp
	clr R7
	clr R8
	clr R9
	add R2,R6
	adc R3,R7
	adc R4,R8
	adc R5,R9
	sts _value+1,R3
	sts _value,R2
	sts _value+2+1,R5
	sts _value+2,R4
	.dbline 543
	xjmp L140
L144:
	.dbline 544
;      	                               case 3:value=value*10+keytemp;break;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	movw R4,R18
	lds R6,_keytemp
	clr R7
	clr R8
	clr R9
	add R2,R6
	adc R3,R7
	adc R4,R8
	adc R5,R9
	sts _value+1,R3
	sts _value,R2
	sts _value+2+1,R5
	sts _value+2,R4
	.dbline 544
	xjmp L140
L145:
	.dbline 545
;      	                               case 4:value=value*10+keytemp;break;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	movw R4,R18
	lds R6,_keytemp
	clr R7
	clr R8
	clr R9
	add R2,R6
	adc R3,R7
	adc R4,R8
	adc R5,R9
	sts _value+1,R3
	sts _value,R2
	sts _value+2+1,R5
	sts _value+2,R4
	.dbline 545
	xjmp L140
L146:
	.dbline 546
;      	                               case 5:value=value*10+keytemp;break;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	movw R4,R18
	lds R6,_keytemp
	clr R7
	clr R8
	clr R9
	add R2,R6
	adc R3,R7
	adc R4,R8
	adc R5,R9
	sts _value+1,R3
	sts _value,R2
	sts _value+2+1,R5
	sts _value+2,R4
	.dbline 546
	xjmp L140
L147:
	.dbline 547
;      	                               case 6:value=value*10+keytemp;break;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	movw R4,R18
	lds R6,_keytemp
	clr R7
	clr R8
	clr R9
	add R2,R6
	adc R3,R7
	adc R4,R8
	adc R5,R9
	sts _value+1,R3
	sts _value,R2
	sts _value+2+1,R5
	sts _value+2,R4
	.dbline 547
	xjmp L140
L148:
	.dbline 548
;      	                               case 7:value=value*10+keytemp;break;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	movw R4,R18
	lds R6,_keytemp
	clr R7
	clr R8
	clr R9
	add R2,R6
	adc R3,R7
	adc R4,R8
	adc R5,R9
	sts _value+1,R3
	sts _value,R2
	sts _value+2+1,R5
	sts _value+2,R4
	.dbline 548
	xjmp L140
L149:
	.dbline 549
;      	                               case 8:value=value*10+keytemp;break;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	movw R4,R18
	lds R6,_keytemp
	clr R7
	clr R8
	clr R9
	add R2,R6
	adc R3,R7
	adc R4,R8
	adc R5,R9
	sts _value+1,R3
	sts _value,R2
	sts _value+2+1,R5
	sts _value+2,R4
	.dbline 549
	.dbline 550
;      	                               default:break;
L140:
	.dbline 552
; 									  }
; 									  }
L114:
	.dbline 553
; 									if(ScanCode==0x79)//+
	mov R24,R10
	cpi R24,121
	brne L150
	.dbline 554
;                                      {
	.dbline 555
; 									  valuefirst=value;value=0;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	sts _valuefirst+1,R3
	sts _valuefirst,R2
	sts _valuefirst+2+1,R5
	sts _valuefirst+2,R4
	.dbline 555
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _value+1,R21
	sts _value,R20
	sts _value+2+1,R23
	sts _value+2,R22
	.dbline 556
; 									  flag_add=1;DisNumx1=0;
	ldi R24,1
	sts _flag_add,R24
	.dbline 556
	clr R2
	sts _DisNumx1,R2
	.dbline 557
; 									 } 
L150:
	.dbline 558
; 									if(ScanCode==0x7B)//-
	mov R24,R10
	cpi R24,123
	brne L152
	.dbline 559
;                                     {
	.dbline 560
; 									 valuefirst=value;value=0;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	sts _valuefirst+1,R3
	sts _valuefirst,R2
	sts _valuefirst+2+1,R5
	sts _valuefirst+2,R4
	.dbline 560
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _value+1,R21
	sts _value,R20
	sts _value+2+1,R23
	sts _value+2,R22
	.dbline 561
; 									 flag_sub=1;DisNumx1=0;
	ldi R24,1
	sts _flag_sub,R24
	.dbline 561
	clr R2
	sts _DisNumx1,R2
	.dbline 562
; 									} 
L152:
	.dbline 563
; 									if(ScanCode==0x7c)//*
	mov R24,R10
	cpi R24,124
	brne L154
	.dbline 564
;                                     {
	.dbline 565
; 									 valuefirst=value;value=0;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	sts _valuefirst+1,R3
	sts _valuefirst,R2
	sts _valuefirst+2+1,R5
	sts _valuefirst+2,R4
	.dbline 565
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _value+1,R21
	sts _value,R20
	sts _value+2+1,R23
	sts _value+2,R22
	.dbline 566
; 									 flag_mul=1;DisNumx1=0;
	ldi R24,1
	sts _flag_mul,R24
	.dbline 566
	clr R2
	sts _DisNumx1,R2
	.dbline 567
; 									}  
L154:
	.dbline 568
; 									if(ScanCode==0x4a)///
	mov R24,R10
	cpi R24,74
	brne L156
	.dbline 569
;                                     {
	.dbline 570
; 									 valuefirst=value;value=0;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	sts _valuefirst+1,R3
	sts _valuefirst,R2
	sts _valuefirst+2+1,R5
	sts _valuefirst+2,R4
	.dbline 570
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _value+1,R21
	sts _value,R20
	sts _value+2+1,R23
	sts _value+2,R22
	.dbline 571
; 									 flag_mod=1;DisNumx1=0;
	ldi R24,1
	sts _flag_mod,R24
	.dbline 571
	clr R2
	sts _DisNumx1,R2
	.dbline 572
; 									}  
L156:
	.dbline 573
;                                     if(ScanCode==0x5a)//enter
	mov R24,R10
	cpi R24,90
	breq X17
	xjmp L87
X17:
	.dbline 574
; 	                                {     
	.dbline 575
; 	                                if(flag_add==1)
	lds R24,_flag_add
	cpi R24,1
	brne L160
	.dbline 576
; 									 {
	.dbline 577
; 									 rezult=valuefirst+value;DisNumx1=0;
	lds R4,_value+2
	lds R5,_value+2+1
	lds R2,_value
	lds R3,_value+1
	lds R8,_valuefirst+2
	lds R9,_valuefirst+2+1
	lds R6,_valuefirst
	lds R7,_valuefirst+1
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	sts _rezult+1,R7
	sts _rezult,R6
	sts _rezult+2+1,R9
	sts _rezult+2,R8
	.dbline 577
	clr R2
	sts _DisNumx1,R2
	.dbline 578
; 									 flag_add=0;
	sts _flag_add,R2
	.dbline 579
; 									 datechuli();
	xcall _datechuli
	.dbline 580
; 		                             }
L160:
	.dbline 581
; 									 if(flag_sub==1)
	lds R24,_flag_sub
	cpi 

⌨️ 快捷键说明

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