vectors08.lis
来自「基于HC908GP32的计算器完整程序」· LIS 代码 · 共 1,938 行 · 第 1/5 页
LIS
1,938 行
0994 ; }
0994 L128:
0994 ; if(t==0)break;
0994 B621 lda *_t
0996 2603 bne L142
0998 CC0B4B jmp L59
099B L142:
099B ; else n[t++]='/';
099B 3F00 clr *__r0
099D B621 lda *_t
099F B700 sta *__r1
09A1 5500 ldhx *__r0
09A3 AF01 aix #1
09A5 3500 sthx *__r2
09A7 4E0021 mov *__r3,*_t
09AA AB00 add #<_n
09AC B700 sta *__r1
09AE B600 lda *__r0
09B0 A900 adc #>_n
09B2 B700 sta *__r0
09B4 A62F lda #47
09B6 5500 ldhx *__r0
09B8 F7 sta ,x
09B9 95 tsx
09BA ; s1=0;break;
09BA 3F20 clr *_s1
09BC CC0B4B jmp L59
09BF L144:
09BF ; case '=':
09BF ; n[t++]='=';
09BF 3F00 clr *__r0
09C1 B621 lda *_t
09C3 B700 sta *__r1
09C5 5500 ldhx *__r0
09C7 AF01 aix #1
09C9 3500 sthx *__r2
09CB 4E0021 mov *__r3,*_t
09CE AB00 add #<_n
09D0 B700 sta *__r1
09D2 B600 lda *__r0
09D4 A900 adc #>_n
09D6 B700 sta *__r0
09D8 A63D lda #61
09DA 5500 ldhx *__r0
09DC F7 sta ,x
09DD 95 tsx
09DE ; for(i=0;i<t;i++)
09DE 3F52 clr *_i
09E0 2029 bra L148
09E2 L145:
09E2 3F00 clr *__r0
09E4 B652 lda *_i
09E6 AB00 add #<_n
09E8 B700 sta *__r1
09EA B600 lda *__r0
09EC A900 adc #>_n
09EE B700 sta *__r0
09F0 5500 ldhx *__r0
09F2 F6 lda ,x
09F3 B700 sta *__r1
09F5 3F00 clr *__r2
09F7 B652 lda *_i
09F9 AB74 add #<_m
09FB B700 sta *__r3
09FD B600 lda *__r2
09FF A974 adc #>_m
0A01 B700 sta *__r2
0A03 B600 lda *__r1
0A05 5500 ldhx *__r2
0A07 F7 sta ,x
0A08 95 tsx
0A09 L146:
0A09 3C52 inc *_i
0A0B L148:
0A0B B652 lda *_i
0A0D B121 cmp *_t
0A0F 25D1 blo L145
0A11 ; m[i]=n[i];
0A11 ; mm=result(m);
0A11 450074 ldhx #_m
0A14 89 pshx
0A15 8B pshh
0A16 CD0000 jsr _result
0A19 A702 ais #2
0A1B 95 tsx
0A1C 4E004D mov *__r0,*_mm
0A1F 4E004E mov *__r1,*_mm+1
0A22 ; if(t<17)
0A22 B621 lda *_t
0A24 A111 cmp #17
0A26 241C bhs L149
0A28 ; {n[t-1]=' ';n[16]='=';t=17;}
0A28 3F00 clr *__r0
0A2A B621 lda *_t
0A2C ABFF add #<_n-1
0A2E B700 sta *__r1
0A30 B600 lda *__r0
0A32 A9FF adc #>_n-1
0A34 B700 sta *__r0
0A36 A620 lda #32
0A38 5500 ldhx *__r0
0A3A F7 sta ,x
0A3B 95 tsx
0A3C A63D lda #61
0A3E B710 sta *_n+16
0A40 A611 lda #17
0A42 B721 sta *_t
0A44 L149:
0A44 ; if(mm<0)
0A44 554D ldhx *_mm
0A46 650000 cphx #0
0A49 95 tsx
0A4A 9029 bge L153
0A4C ; {
0A4C ; n[t++]='-';
0A4C 3F00 clr *__r0
0A4E B621 lda *_t
0A50 B700 sta *__r1
0A52 5500 ldhx *__r0
0A54 AF01 aix #1
0A56 3500 sthx *__r2
0A58 4E0021 mov *__r3,*_t
0A5B AB00 add #<_n
0A5D B700 sta *__r1
0A5F B600 lda *__r0
0A61 A900 adc #>_n
0A63 B700 sta *__r0
0A65 A62D lda #45
0A67 5500 ldhx *__r0
0A69 F7 sta ,x
0A6A 95 tsx
0A6B ; mm=0-mm;
0A6B 4F clra
0A6C B04E sub *_mm+1
0A6E B74E sta *_mm+1
0A70 4F clra
0A71 B24D sbc *_mm
0A73 B74D sta *_mm
0A75 ; }
0A75 L153:
0A75 ; t1=0;
0A75 3F4F clr *_t1
0A77 ; if(mm==0)n[t++]='0';
0A77 554D ldhx *_mm
0A79 650000 cphx #0
0A7C 95 tsx
0A7D 2703 beq X18
0A7F CC0AFF jmp L158
0A82 X18:
0A82 3F00 clr *__r0
0A84 B621 lda *_t
0A86 B700 sta *__r1
0A88 5500 ldhx *__r0
0A8A AF01 aix #1
0A8C 3500 sthx *__r2
0A8E 4E0021 mov *__r3,*_t
0A91 AB00 add #<_n
0A93 B700 sta *__r1
0A95 B600 lda *__r0
0A97 A900 adc #>_n
0A99 B700 sta *__r0
0A9B A630 lda #48
0A9D 5500 ldhx *__r0
0A9F F7 sta ,x
0AA0 95 tsx
0AA1 CC0B47 jmp L156
0AA4 X10:
0AA4 ; else
0AA4 ; {
0AA4 L157:
0AA4 3F00 clr *__r0
0AA6 B64F lda *_t1
0AA8 B700 sta *__r1
0AAA 5500 ldhx *__r0
0AAC AF01 aix #1
0AAE 3500 sthx *__r2
0AB0 4E004F mov *__r3,*_t1
0AB3 B64E lda *_mm+1
0AB5 B700 sta *__rlo
0AB7 B64D lda *_mm
0AB9 B700 sta *__rhi
0ABB A60A lda #10
0ABD 87 psha
0ABE 4F clra
0ABF 87 psha
0AC0 CD0000 jsr __divmod16s
0AC3 86 pula
0AC4 B700 sta *__r2
0AC6 86 pula
0AC7 B700 sta *__r3
0AC9 5500 ldhx *__r2
0ACB AF30 aix #48
0ACD 3500 sthx *__r2
0ACF B600 lda *__r1
0AD1 AB54 add #<_mn
0AD3 B700 sta *__r1
0AD5 B600 lda *__r0
0AD7 A954 adc #>_mn
0AD9 B700 sta *__r0
0ADB B600 lda *__r3
0ADD 5500 ldhx *__r0
0ADF F7 sta ,x
0AE0 95 tsx
0AE1 B64E lda *_mm+1
0AE3 B700 sta *__rlo
0AE5 B64D lda *_mm
0AE7 B700 sta *__rhi
0AE9 A60A lda #10
0AEB 87 psha
0AEC 4F clra
0AED 87 psha
0AEE CD0000 jsr __divmod16s
0AF1 A702 ais #2
0AF3 4E0000 mov *__rhi,*__r0
0AF6 4E0000 mov *__rlo,*__r1
0AF9 4E004D mov *__r0,*_mm
0AFC 4E004E mov *__r1,*_mm+1
0AFF L158:
0AFF ; while(mm)
0AFF 554D ldhx *_mm
0B01 650000 cphx #0
0B04 95 tsx
0B05 269D bne L157
0B07 2038 bra L161
0B09 L160:
0B09 3F00 clr *__r0
0B0B B621 lda *_t
0B0D B700 sta *__r1
0B0F 5500 ldhx *__r0
0B11 AF01 aix #1
0B13 3500 sthx *__r2
0B15 4E0021 mov *__r3,*_t
0B18 B64F lda *_t1
0B1A A001 sub #1
0B1C B74F sta *_t1
0B1E 3F00 clr *__r2
0B20 AB54 add #<_mn
0B22 B700 sta *__r3
0B24 B600 lda *__r2
0B26 A954 adc #>_mn
0B28 B700 sta *__r2
0B2A 5500 ldhx *__r2
0B2C F6 lda ,x
0B2D B700 sta *__r3
0B2F B600 lda *__r1
0B31 AB00 add #<_n
0B33 B700 sta *__r1
0B35 B600 lda *__r0
0B37 A900 adc #>_n
0B39 B700 sta *__r0
0B3B B600 lda *__r3
0B3D 5500 ldhx *__r0
0B3F F7 sta ,x
0B40 95 tsx
0B41 L161:
0B41 ; {
0B41 ; mn[t1++]=mm%10+'0';
0B41 ; mm=mm/10;
0B41 ; }
0B41 ; while(t1>0)n[t++]=mn[--t1];}
0B41 B64F lda *_t1
0B43 A100 cmp #0
0B45 22C2 bhi L160
0B47 L156:
0B47 ; s1=1;break;
0B47 A601 lda #1
0B49 B720 sta *_s1
0B4B L58:
0B4B L59:
0B4B ; }
0B4B ; Lcd_Command(0b00001100);
0B4B A60C lda #12
0B4D 87 psha
0B4E CD0000 jsr _Lcd_Command
0B51 A701 ais #1
0B53 ; lcdshow(n);
0B53 450000 ldhx #_n
0B56 89 pshx
0B57 8B pshh
0B58 CD0000 jsr _lcdshow
0B5B A702 ais #2
0B5D 95 tsx
0B5E ; if(t>32)
0B5E B621 lda *_t
0B60 A120 cmp #32
0B62 2335 bls L164
0B64 ; {
0B64 3F52 clr *_i
0B66 2016 bra L169
0B68 L166:
0B68 3F00 clr *__r0
0B6A B652 lda *_i
0B6C AB00 add #<_n
0B6E B700 sta *__r1
0B70 B600 lda *__r0
0B72 A900 adc #>_n
0B74 B700 sta *__r0
0B76 A620 lda #32
0B78 5500 ldhx *__r0
0B7A F7 sta ,x
0B7B 95 tsx
0B7C L167:
0B7C 3C52 inc *_i
0B7E L169:
0B7E ; for(i=0;i<32;i++)n[i]=' ';
0B7E B652 lda *_i
0B80 A120 cmp #32
0B82 25E4 blo L166
0B84 ; lcdshow(n);
0B84 450000 ldhx #_n
0B87 89 pshx
0B88 8B pshh
0B89 CD0000 jsr _lcdshow
0B8C A702 ais #2
0B8E ; t=t%32;
0B8E B621 lda *_t
0B90 AE20 ldx #32
0B92 8C clrh
0B93 52 div
0B94 8B pshh
0B95 86 pula
0B96 95 tsx
0B97 B721 sta *_t
0B99 ; }
0B99 L164:
0B99 ; if(s1==2)
0B99 B620 lda *_s1
0B9B A102 cmp #2
0B9D 260D bne L170
0B9F ; {
0B9F ; lcdshow(n);
0B9F 450000 ldhx #_n
0BA2 89 pshx
0BA3 8B pshh
0BA4 CD0000 jsr _lcdshow
0BA7 A702 ais #2
0BA9 95 tsx
0BAA ; s1=0;
0BAA 3F20 clr *_s1
0BAC ; }
0BAC L170:
0BAC ; }
0BAC L56:
0BAC ; KB_Init(); //重新初始化键盘
0BAC CD0000 jsr _KB_Init
0BAF 95 tsx
0BB0 ; INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
0BB0 131A bclr #1,0x1a
0BB2 ; asm("CLI"); //开总中断
0BB2 9A CLI
0BB3 L55:
0BB3 A703 ais #3
0BB5 .dbline 0 ; func end
0BB5 86 pula
0BB6 B700 sta *__rlo
0BB8 86 pula
0BB9 B700 sta *__rhi
0BBB 86 pula
0BBC B700 sta *__r11
0BBE 86 pula
0BBF B700 sta *__r10
0BC1 86 pula
0BC2 B700 sta *__r9
0BC4 86 pula
0BC5 B700 sta *__r8
0BC7 86 pula
0BC8 B700 sta *__r7
0BCA 86 pula
0BCB B700 sta *__r6
0BCD 86 pula
0BCE B700 sta *__r5
0BD0 86 pula
0BD1 B700 sta *__r4
0BD3 86 pula
0BD4 B700 sta *__r3
0BD6 86 pula
0BD7 B700 sta *__r2
0BD9 86 pula
0BDA B700 sta *__r1
0BDC 86 pula
0BDD B700 sta *__r0
0BDF 8A pulh
0BE0 80 rti
0BE1 _isrDummy::
0BE1 8B pshh
0BE2
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?