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

📄 main.lst

📁 详细讲解PS/2键盘通信接口及协议
💻 LST
📖 第 1 页 / 共 3 页
字号:
 344               	.global	Delay
 346               	Delay:
 347               	.LFB8:
 348               	.LM10:
 349               	/* prologue: frame size=0 */
 350               	/* prologue end (size=0) */
 351               	.L16:
 352               	.LM11:
 353 002c 0097      		sbiw r24,0
 354 002e 11F0      		breq .L15
 355               	.LM12:
 356 0030 0197      		sbiw r24,1
 357 0032 FCCF      		rjmp .L16
 358               	.L15:
 359 0034 0895      		ret
 360               	/* epilogue: frame size=0 */
 361               	/* epilogue: noreturn */
 362               	/* epilogue end (size=0) */
 363               	/* function Delay size 5 (5) */
 364               	.LFE8:
 366               	.global	En_Toggle
 368               	En_Toggle:
 369               	.LFB9:
 370               	.LM13:
 371               	/* prologue: frame size=0 */
 372               	/* prologue end (size=0) */
 373               	.LM14:
 374 0036 82E0      		ldi r24,lo8(2)
 375 0038 0E94 0000 		call sbbi
 376               	.LM15:
 377 003c 8AE0      		ldi r24,lo8(10)
 378 003e 90E0      		ldi r25,hi8(10)
 379 0040 0E94 0000 		call Delay
 380               	.LM16:
 381 0044 82E0      		ldi r24,lo8(2)
 382 0046 0E94 0000 		call cbbi
 383               	.LM17:
 384 004a 8AE0      		ldi r24,lo8(10)
 385 004c 90E0      		ldi r25,hi8(10)
 386 004e 0E94 0000 		call Delay
 387               	/* epilogue: frame size=0 */
 388 0052 0895      		ret
 389               	/* epilogue end (size=1) */
 390               	/* function En_Toggle size 15 (14) */
 391               	.LFE9:
 393               	.global	Wait_Until_Ready
 395               	Wait_Until_Ready:
 396               	.LFB10:
 397               	.LM18:
 398               	/* prologue: frame size=0 */
 399               	/* prologue end (size=0) */
 400               	.LM19:
 401 0054 81E0      		ldi r24,lo8(1)
 402 0056 0E94 0000 		call sbbi
 403               	.LM20:
 404 005a 80E0      		ldi r24,lo8(0)
 405 005c 0E94 0000 		call cbbi
 406               	.LM21:
 407 0060 1ABA      		out 58-0x20,__zero_reg__
 408               	.LM22:
 409 0062 1BBA      		out 59-0x20,__zero_reg__
 410               	.LM23:
 411 0064 82E0      		ldi r24,lo8(2)
 412 0066 0E94 0000 		call sbbi
 413               	.LM24:
 414 006a 8AE0      		ldi r24,lo8(10)
 415 006c 90E0      		ldi r25,hi8(10)
 416 006e 0E94 0000 		call Delay
 417               	.L19:
 418               	.LM25:
 419 0072 CF99      		sbic 57-0x20,7
 420 0074 FECF      		rjmp .L19
 421               	.LM26:
 422 0076 82E0      		ldi r24,lo8(2)
 423 0078 0E94 0000 		call cbbi
 424               	/* epilogue: frame size=0 */
 425 007c 0895      		ret
 426               	/* epilogue end (size=1) */
 427               	/* function Wait_Until_Ready size 21 (20) */
 428               	.LFE10:
 430               	.global	Write_Command
 432               	Write_Command:
 433               	.LFB11:
 434               	.LM27:
 435               	/* prologue: frame size=0 */
 436 007e 1F93      		push r17
 437               	/* prologue end (size=1) */
 438 0080 182F      		mov r17,r24
 439               	.LM28:
 440 0082 81E0      		ldi r24,lo8(1)
 441 0084 0E94 0000 		call cbbi
 442               	.LM29:
 443 0088 80E0      		ldi r24,lo8(0)
 444 008a 0E94 0000 		call cbbi
 445               	.LM30:
 446 008e 8FEF      		ldi r24,lo8(-1)
 447 0090 8ABB      		out 58-0x20,r24
 448               	.LM31:
 449 0092 1BBB      		out 59-0x20,r17
 450               	.LM32:
 451 0094 0E94 0000 		call En_Toggle
 452               	.LM33:
 453 0098 0E94 0000 		call Wait_Until_Ready
 454               	/* epilogue: frame size=0 */
 455 009c 1F91      		pop r17
 456 009e 0895      		ret
 457               	/* epilogue end (size=2) */
 458               	/* function Write_Command size 17 (14) */
 459               	.LFE11:
 461               	.global	Write_Data
 463               	Write_Data:
 464               	.LFB12:
 465               	.LM34:
 466               	/* prologue: frame size=0 */
 467 00a0 1F93      		push r17
 468               	/* prologue end (size=1) */
 469 00a2 182F      		mov r17,r24
 470               	.LM35:
 471 00a4 81E0      		ldi r24,lo8(1)
 472 00a6 0E94 0000 		call cbbi
 473               	.LM36:
 474 00aa 80E0      		ldi r24,lo8(0)
 475 00ac 0E94 0000 		call sbbi
 476               	.LM37:
 477 00b0 8FEF      		ldi r24,lo8(-1)
 478 00b2 8ABB      		out 58-0x20,r24
 479               	.LM38:
 480 00b4 1BBB      		out 59-0x20,r17
 481               	.LM39:
 482 00b6 0E94 0000 		call En_Toggle
 483               	.LM40:
 484 00ba 0E94 0000 		call Wait_Until_Ready
 485               	/* epilogue: frame size=0 */
 486 00be 1F91      		pop r17
 487 00c0 0895      		ret
 488               	/* epilogue end (size=2) */
 489               	/* function Write_Data size 17 (14) */
 490               	.LFE12:
 492               	.global	Write_Position
 494               	Write_Position:
 495               	.LFB13:
 496               	.LM41:
 497               	/* prologue: frame size=0 */
 498               	/* prologue end (size=0) */
 499               	.LM42:
 500 00c2 8130      		cpi r24,lo8(1)
 501 00c4 19F4      		brne .L25
 502               	.LM43:
 503 00c6 862F      		mov r24,r22
 504 00c8 8158      		subi r24,lo8(-(127))
 505 00ca 02C0      		rjmp .L27
 506               	.L25:
 507               	.LM44:
 508 00cc 862F      		mov r24,r22
 509 00ce 8154      		subi r24,lo8(-(-65))
 510               	.L27:
 511 00d0 0E94 0000 		call Write_Command
 512 00d4 0895      		ret
 513               	/* epilogue: frame size=0 */
 514               	/* epilogue: noreturn */
 515               	/* epilogue end (size=0) */
 516               	/* function Write_Position size 10 (10) */
 517               	.LFE13:
 519               	.global	Write_String
 521               	Write_String:
 522               	.LFB14:
 523               	.LM45:
 524               	/* prologue: frame size=0 */
 525 00d6 CF93      		push r28
 526 00d8 DF93      		push r29
 527               	/* prologue end (size=2) */
 528 00da EC01      		movw r28,r24
 529               	.LM46:
 530 00dc 8881      		ld r24,Y
 531 00de 8823      		tst r24
 532 00e0 31F0      		breq .L34
 533               	.L32:
 534               	.LM47:
 535 00e2 8991      		ld r24,Y+
 536 00e4 0E94 0000 		call Write_Data
 537               	.LM48:
 538 00e8 8881      		ld r24,Y
 539 00ea 8823      		tst r24
 540 00ec D1F7      		brne .L32
 541               	.L34:
 542               	/* epilogue: frame size=0 */
 543 00ee DF91      		pop r29
 544 00f0 CF91      		pop r28
 545 00f2 0895      		ret
 546               	/* epilogue end (size=3) */
 547               	/* function Write_String size 15 (10) */
 548               	.LFE14:
 550               	.global	Initialize_LCD
 552               	Initialize_LCD:
 553               	.LFB15:
 554               	.LM49:
 555               	/* prologue: frame size=0 */
 556               	/* prologue end (size=0) */
 557               	.LM50:
 558 00f4 8FEF      		ldi r24,lo8(-1)
 559 00f6 87BB      		out 55-0x20,r24
 560               	.LM51:
 561 00f8 88E3      		ldi r24,lo8(56)
 562 00fa 0E94 0000 		call Write_Command
 563               	.LM52:
 564 00fe 86E0      		ldi r24,lo8(6)
 565 0100 0E94 0000 		call Write_Command
 566               	.LM53:
 567 0104 8CE0      		ldi r24,lo8(12)
 568 0106 0E94 0000 		call Write_Command
 569               	.LM54:
 570 010a 81E0      		ldi r24,lo8(1)
 571 010c 0E94 0000 		call Write_Command
 572               	/* epilogue: frame size=0 */
 573 0110 0895      		ret
 574               	/* epilogue end (size=1) */
 575               	/* function Initialize_LCD size 15 (14) */
 576               	.LFE15:
 578               	.global	Write_Word
 580               	Write_Word:
 581               	.LFB16:
 582               	.LM55:
 583               	/* prologue: frame size=0 */
 584 0112 1F93      		push r17
 585               	/* prologue end (size=1) */
 586 0114 142F      		mov r17,r20
 587               	.LM56:
 588 0116 0E94 0000 		call Write_Position
 589               	.LM57:
 590 011a 812F      		mov r24,r17
 591 011c 0E94 0000 		call Write_Data
 592               	/* epilogue: frame size=0 */
 593 0120 1F91      		pop r17
 594 0122 0895      		ret
 595               	/* epilogue end (size=2) */
 596               	/* function Write_Word size 9 (6) */
 597               	.LFE16:
 599               	.global	ssbi
 601               	ssbi:
 602               	.LFB17:
 603               	.LM58:
 604               	/* prologue: frame size=0 */
 605               	/* prologue end (size=0) */
 606               	.LM59:
 607 0124 21E0      		ldi r18,lo8(1)
 608 0126 30E0      		ldi r19,hi8(1)
 609 0128 02C0      		rjmp 2f
 610 012a 220F      	1:	lsl r18
 611 012c 331F      		rol r19
 612 012e 8A95      	2:	dec r24
 613 0130 E2F7      		brpl 1b
 614 0132 82B3      		in r24,50-0x20
 615 0134 822B      		or r24,r18
 616 0136 82BB      		out 50-0x20,r24
 617               	/* epilogue: frame size=0 */
 618 0138 0895      		ret
 619               	/* epilogue end (size=1) */
 620               	/* function ssbi size 12 (11) */
 621               	.LFE17:
 623               	.global	ccbi
 625               	ccbi:
 626               	.LFB18:
 627               	.LM60:
 628               	/* prologue: frame size=0 */
 629               	/* prologue end (size=0) */
 630               	.LM61:
 631 013a 9EEF      		ldi r25,lo8(-2)
 632               	.L45:
 633               	.LM62:
 634 013c 8823      		tst r24
 635 013e 21F0      		breq .L44
 636               	.LM63:
 637 0140 990F      		lsl r25
 638               	.LM64:
 639 0142 9160      		ori r25,lo8(1)
 640               	.LM65:
 641 0144 8150      		subi r24,lo8(-(-1))
 642 0146 FACF      		rjmp .L45
 643               	.L44:
 644               	.LM66:
 645 0148 82B3      		in r24,50-0x20
 646 014a 8923      		and r24,r25
 647 014c 82BB      		out 50-0x20,r24
 648               	/* epilogue: frame size=0 */
 649 014e 0895      		ret
 650               	/* epilogue end (size=1) */
 651               	/* function ccbi size 11 (10) */
 652               	.LFE18:
 654               	.global	KB_Write
 656               	KB_Write:
 657               	.LFB19:
 658               	.LM67:
 659               	/* prologue: frame size=0 */
 660 0150 1F93      		push r17
 661 0152 CF93      		push r28
 662               	/* prologue end (size=2) */
 663 0154 C82F      		mov r28,r24
 664               	.LM68:
 665 0156 10E0      		ldi r17,lo8(0)
 666               	.LM69:
 667 0158 8FE0      		ldi r24,lo8(15)
 668 015a 81BB      		out 49-0x20,r24
 669               	.LM70:
 670 015c 82E0      		ldi r24,lo8(2)
 671 015e 0E94 0000 		call ccbi
 672               	.LBB2:
 673               	.LBB3:
 674               	.LBB4:
 675               	.LBB5:
 676               	.LM71:
 677 0162 812F      		mov r24,r17
 678               	/* #APP */
 679 0164 8A95      		1: dec r24
 680 0166 F1F7      		brne 1b
 681               	/* #NOAPP */
 682               	.LBE5:
 683               	.LBE4:
 684               	.LBE3:
 685               	.LBE2:
 686               	.LM72:

⌨️ 快捷键说明

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