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

📄 vectors08.lis

📁 基于HC908GP32的计算器完整程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0494 A601              lda #1
 0496 B750              sta *_x
 0498           ;         if(x==1)
 0498 B650              lda *_x
 049A A101              cmp #1
 049C 2703              beq X11
 049E CC0BAC            jmp L56
 04A1           X11:
 04A1           ; 	  {
 04A1           ; 	  x=0;
 04A1 3F50              clr *_x
 04A3           ;         KB_valve=KB_Scan();     //扫描键值
 04A3 CD0000            jsr _KB_Scan
 04A6 95                tsx
 04A7 B700              sta *__r1
 04A9 E702              sta 2,X
 04AB           ;       KB_valve=KB_Def(KB_valve);  //键值转化为定义值
 04AB 87                psha
 04AC CD0000            jsr _KB_Def
 04AF A701              ais #1
 04B1 95                tsx
 04B2 B700              sta *__r1
 04B4 E702              sta 2,X
 04B6           ;       switch(KB_valve)
 04B6 7F                clr ,X
 04B7 E701              sta 1,X
 04B9 F6                lda ,X
 04BA B700              sta *__r0
 04BC 5500              ldhx *__r0
 04BE 65002A            cphx #42
 04C1 95                tsx
 04C2 9003              bge X12
 04C4 CC0B4B            jmp L58
 04C7           X12:
 04C7 E601              lda 1,X
 04C9 B700              sta *__r1
 04CB F6                lda ,X
 04CC B700              sta *__r0
 04CE 5500              ldhx *__r0
 04D0 65003D            cphx #61
 04D3 95                tsx
 04D4 9303              ble X13
 04D6 CC0B4B            jmp L58
 04D9           X13:
 04D9 E601              lda 1,X
 04DB A02A              sub #42
 04DD B700              sta *__r1
 04DF F6                lda ,X
 04E0 A200              sbc #0
 04E2 B700              sta *__r0
 04E4 3800              lsl *__r1
 04E6 3900              rol *__r0
 04E8 B600              lda *__r1
 04EA AB00              add #<L163
 04EC B700              sta *__r1
 04EE B600              lda *__r0
 04F0 A900              adc #>L163
 04F2 B700              sta *__r0
 04F4 5500              ldhx *__r0
 04F6 E601              lda 1,x
 04F8 B700              sta *__r1
 04FA F6                lda ,x
 04FB 95                tsx
 04FC B700              sta *__r0
 04FE B600              lda *__r1
 0500 87                psha
 0501 B600              lda *__r0
 0503 87                psha
 0504 81                rts
 0505           X9:
 0505           ;       {
 0505           L61:
 0505           ; case '1':n[t++]='1';s1=0;break;
 0505 3F00              clr *__r0
 0507 B621              lda *_t
 0509 B700              sta *__r1
 050B 5500              ldhx *__r0
 050D AF01              aix #1
 050F 3500              sthx *__r2
 0511 4E0021            mov *__r3,*_t
 0514 AB00              add #<_n
 0516 B700              sta *__r1
 0518 B600              lda *__r0
 051A A900              adc #>_n
 051C B700              sta *__r0
 051E A631              lda #49
 0520 5500              ldhx *__r0
 0522 F7                sta ,x
 0523 95                tsx
 0524 3F20              clr *_s1
 0526 CC0B4B            jmp L59
 0529           L62:
 0529           ; case '2':n[t++]='2';s1=0;break;
 0529 3F00              clr *__r0
 052B B621              lda *_t
 052D B700              sta *__r1
 052F 5500              ldhx *__r0
 0531 AF01              aix #1
 0533 3500              sthx *__r2
 0535 4E0021            mov *__r3,*_t
 0538 AB00              add #<_n
 053A B700              sta *__r1
 053C B600              lda *__r0
 053E A900              adc #>_n
 0540 B700              sta *__r0
 0542 A632              lda #50
 0544 5500              ldhx *__r0
 0546 F7                sta ,x
 0547 95                tsx
 0548 3F20              clr *_s1
 054A CC0B4B            jmp L59
 054D           L63:
 054D           ; case '3':n[t++]='3';s1=0;break;
 054D 3F00              clr *__r0
 054F B621              lda *_t
 0551 B700              sta *__r1
 0553 5500              ldhx *__r0
 0555 AF01              aix #1
 0557 3500              sthx *__r2
 0559 4E0021            mov *__r3,*_t
 055C AB00              add #<_n
 055E B700              sta *__r1
 0560 B600              lda *__r0
 0562 A900              adc #>_n
 0564 B700              sta *__r0
 0566 A633              lda #51
 0568 5500              ldhx *__r0
 056A F7                sta ,x
 056B 95                tsx
 056C 3F20              clr *_s1
 056E CC0B4B            jmp L59
 0571           L64:
 0571           ; case '4':n[t++]='4';s1=0;break;
 0571 3F00              clr *__r0
 0573 B621              lda *_t
 0575 B700              sta *__r1
 0577 5500              ldhx *__r0
 0579 AF01              aix #1
 057B 3500              sthx *__r2
 057D 4E0021            mov *__r3,*_t
 0580 AB00              add #<_n
 0582 B700              sta *__r1
 0584 B600              lda *__r0
 0586 A900              adc #>_n
 0588 B700              sta *__r0
 058A A634              lda #52
 058C 5500              ldhx *__r0
 058E F7                sta ,x
 058F 95                tsx
 0590 3F20              clr *_s1
 0592 CC0B4B            jmp L59
 0595           L65:
 0595           ; case '5':n[t++]='5';s1=0;break;
 0595 3F00              clr *__r0
 0597 B621              lda *_t
 0599 B700              sta *__r1
 059B 5500              ldhx *__r0
 059D AF01              aix #1
 059F 3500              sthx *__r2
 05A1 4E0021            mov *__r3,*_t
 05A4 AB00              add #<_n
 05A6 B700              sta *__r1
 05A8 B600              lda *__r0
 05AA A900              adc #>_n
 05AC B700              sta *__r0
 05AE A635              lda #53
 05B0 5500              ldhx *__r0
 05B2 F7                sta ,x
 05B3 95                tsx
 05B4 3F20              clr *_s1
 05B6 CC0B4B            jmp L59
 05B9           L66:
 05B9           ; case '6':n[t++]='6';s1=0;break;
 05B9 3F00              clr *__r0
 05BB B621              lda *_t
 05BD B700              sta *__r1
 05BF 5500              ldhx *__r0
 05C1 AF01              aix #1
 05C3 3500              sthx *__r2
 05C5 4E0021            mov *__r3,*_t
 05C8 AB00              add #<_n
 05CA B700              sta *__r1
 05CC B600              lda *__r0
 05CE A900              adc #>_n
 05D0 B700              sta *__r0
 05D2 A636              lda #54
 05D4 5500              ldhx *__r0
 05D6 F7                sta ,x
 05D7 95                tsx
 05D8 3F20              clr *_s1
 05DA CC0B4B            jmp L59
 05DD           L67:
 05DD           ; case '7':n[t++]='7';s1=0;break;
 05DD 3F00              clr *__r0
 05DF B621              lda *_t
 05E1 B700              sta *__r1
 05E3 5500              ldhx *__r0
 05E5 AF01              aix #1
 05E7 3500              sthx *__r2
 05E9 4E0021            mov *__r3,*_t
 05EC AB00              add #<_n
 05EE B700              sta *__r1
 05F0 B600              lda *__r0
 05F2 A900              adc #>_n
 05F4 B700              sta *__r0
 05F6 A637              lda #55
 05F8 5500              ldhx *__r0
 05FA F7                sta ,x
 05FB 95                tsx
 05FC 3F20              clr *_s1
 05FE CC0B4B            jmp L59
 0601           L68:
 0601           ; case '8':n[t++]='8';s1=0;break;
 0601 3F00              clr *__r0
 0603 B621              lda *_t
 0605 B700              sta *__r1
 0607 5500              ldhx *__r0
 0609 AF01              aix #1
 060B 3500              sthx *__r2
 060D 4E0021            mov *__r3,*_t
 0610 AB00              add #<_n
 0612 B700              sta *__r1
 0614 B600              lda *__r0
 0616 A900              adc #>_n
 0618 B700              sta *__r0
 061A A638              lda #56
 061C 5500              ldhx *__r0
 061E F7                sta ,x
 061F 95                tsx
 0620 3F20              clr *_s1
 0622 CC0B4B            jmp L59
 0625           L69:
 0625           ; case '9':n[t++]='9';s1=0;break;
 0625 3F00              clr *__r0
 0627 B621              lda *_t
 0629 B700              sta *__r1
 062B 5500              ldhx *__r0
 062D AF01              aix #1
 062F 3500              sthx *__r2
 0631 4E0021            mov *__r3,*_t
 0634 AB00              add #<_n
 0636 B700              sta *__r1
 0638 B600              lda *__r0
 063A A900              adc #>_n
 063C B700              sta *__r0
 063E A639              lda #57
 0640 5500              ldhx *__r0
 0642 F7                sta ,x
 0643 95                tsx
 0644 3F20              clr *_s1
 0646 CC0B4B            jmp L59
 0649           L70:
 0649           ; case '0':n[t++]='0';s1=0;break;
 0649 3F00              clr *__r0
 064B B621              lda *_t
 064D B700              sta *__r1
 064F 5500              ldhx *__r0
 0651 AF01              aix #1
 0653 3500              sthx *__r2
 0655 4E0021            mov *__r3,*_t
 0658 AB00              add #<_n
 065A B700              sta *__r1
 065C B600              lda *__r0
 065E A900              adc #>_n
 0660 B700              sta *__r0
 0662 A630              lda #48
 0664 5500              ldhx *__r0
 0666 F7                sta ,x
 0667 95                tsx
 0668 3F20              clr *_s1
 066A CC0B4B            jmp L59
 066D           L72:
 066D 3A21              dec *_t
 066F           L73:
 066F 3F00              clr *__r0
 0671 B621              lda *_t
 0673 ABFF              add #<_n-1
 0675 B700              sta *__r1
 0677 B600              lda *__r0
 0679 A9FF              adc #>_n-1
 067B B700              sta *__r0
 067D 5500              ldhx *__r0
 067F F6                lda ,x
 0680 95                tsx
 0681 A120              cmp #32
 0683 27E8              beq L72
 0685 B621              lda *_t
 0687 2718              beq L76
 0689 B621              lda *_t
 068B A001              sub #1
 068D B721              sta *_t
 068F 3F00              clr *__r0
 0691 AB00              add #<_n
 0693 B700              sta *__r1
 0695 B600              lda *__r0
 0697 A900              adc #>_n
 0699 B700              sta *__r0
 069B A620              lda #32
 069D 5500              ldhx *__r0
 069F F7                sta ,x
 06A0 95                tsx
 06A1           L76:
 06A1           ; case '<':while(n[t-1]==' ')t--;if(t!=0)n[--t]=' ';s1=2;break;
 06A1 A602              lda #2
 06A3 B720              sta *_s1
 06A5 CC0B4B            jmp L59
 06A8           L78:
 06A8           ; case '+':if(s1==1)
 06A8 B620              lda *_s1
 06AA A101              cmp #1
 06AC 2703              beq X14
 06AE CC0744            jmp L79
 06B1           X14:
 06B1           ; {
 06B1           ; s2=0;
 06B1 3F51              clr *_s2
 06B3 2002              bra L82
 06B5           L81:
 06B5 3C51              inc *_s2
 06B7           L82:
 06B7           ; while(n[s2]!='=')s2++;
 06B7 3F00              clr *__r0
 06B9 B651              lda *_s2
 06BB AB00              add #<_n
 06BD B700              sta *__r1
 06BF B600              lda *__r0
 06C1 A900              adc #>_n
 06C3 B700              sta *__r0
 06C5 5500              ldhx *__r0
 06C7 F6                lda ,x
 06C8 95                tsx
 06C9 A13D              cmp #61
 06CB 26E8              bne L81
 06CD 3F52              clr *_i
 06CF 203B              bra L87
 06D1           L84:
 06D1 3F00              clr *__r0
 06D3 B651              lda *_s2
 06D5 B700              sta *__r1
 06D7 3F00              clr *__r2
 06D9 B652              lda *_i
 06DB BB00              add *__r1
 06DD B700              sta *__r1
 06DF B600              lda *__r2
 06E1 B900              adc *__r0
 06E3 B700              sta *__r0
 06E5 B600              lda *__r1
 06E7 AB01              add #<_n+1
 06E9 B700              sta *__r1
 06EB B600              lda *__r0
 06ED A901              adc #>_n+1
 06EF B700              sta *__r0
 06F1 5500              ldhx *__r0
 06F3 F6                lda ,x
 06F4 B700              sta *__r1
 06F6 3F00              clr *__r2
 06F8 B652              lda *_i
 06FA AB00              add #<_n
 06FC B700              sta *__r3
 06FE B600              lda *__r2
 0700 A900              adc #>_n
 0702 B700              sta *__r2
 0704 B600              lda *__r1
 0706 5500              ldhx *__r2
 0708 F7                sta ,x
 0709 95                tsx
 070A           L85:
 070A 3C52              inc *_i
 070C           L87:
 070C           ; for(i=0;i<t-s2;i++)n[i]=n[i+s2+1];
 070C B621              lda *_t
 070E B051              sub *_s2
 0710 B700              sta *__r0
 0712 B652              lda *_i
 0714 B100              cmp *__r0
 0716 25B9              blo L84
 0718 B621              lda *_t
 071A B051              sub *_s2
 071C B752              sta *_i
 071E 2016              bra L92
 0720           L89:
 0720 3F00              clr *__r0
 0722 B652              lda *_i
 0724 AB00              add #<_n
 0726 B700              sta *__r1
 0728 B600              lda *__r0
 072A A900              adc #>_n
 072C B700              sta *__r0

⌨️ 快捷键说明

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