📄 vectors08.s
字号:
; case '9':n[t++]='9';s1=0;break;
clr *__r0
lda *_t
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #57
ldhx *__r0
sta ,x
tsx
clr *_s1
jmp L59
L70:
; case '0':n[t++]='0';s1=0;break;
clr *__r0
lda *_t
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #48
ldhx *__r0
sta ,x
tsx
clr *_s1
jmp L59
L72:
dec *_t
L73:
clr *__r0
lda *_t
add #<_n-1
sta *__r1
lda *__r0
adc #>_n-1
sta *__r0
ldhx *__r0
lda ,x
tsx
cmp #32
beq L72
lda *_t
beq L76
lda *_t
sub #1
sta *_t
clr *__r0
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #32
ldhx *__r0
sta ,x
tsx
L76:
; case '<':while(n[t-1]==' ')t--;if(t!=0)n[--t]=' ';s1=2;break;
lda #2
sta *_s1
jmp L59
L78:
; case '+':if(s1==1)
lda *_s1
cmp #1
beq X14
jmp L79
X14:
; {
; s2=0;
clr *_s2
bra L82
L81:
inc *_s2
L82:
; while(n[s2]!='=')s2++;
clr *__r0
lda *_s2
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
ldhx *__r0
lda ,x
tsx
cmp #61
bne L81
clr *_i
bra L87
L84:
clr *__r0
lda *_s2
sta *__r1
clr *__r2
lda *_i
add *__r1
sta *__r1
lda *__r2
adc *__r0
sta *__r0
lda *__r1
add #<_n+1
sta *__r1
lda *__r0
adc #>_n+1
sta *__r0
ldhx *__r0
lda ,x
sta *__r1
clr *__r2
lda *_i
add #<_n
sta *__r3
lda *__r2
adc #>_n
sta *__r2
lda *__r1
ldhx *__r2
sta ,x
tsx
L85:
inc *_i
L87:
; for(i=0;i<t-s2;i++)n[i]=n[i+s2+1];
lda *_t
sub *_s2
sta *__r0
lda *_i
cmp *__r0
blo L84
lda *_t
sub *_s2
sta *_i
bra L92
L89:
clr *__r0
lda *_i
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #32
ldhx *__r0
sta ,x
tsx
L90:
inc *_i
L92:
; for(i=t-s2;i<32;i++)n[i]=' ';
lda *_i
cmp #32
blo L89
; t=t-s2-1;
lda *_t
sub *_s2
sub #1
sta *_t
; }
L79:
; if(t==0)break;
lda *_t
bne L93
jmp L59
L93:
; else n[t++]='+';
clr *__r0
lda *_t
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #43
ldhx *__r0
sta ,x
tsx
; s1=0;break;
clr *_s1
jmp L59
L95:
; case '-':if(s1==1)
lda *_s1
cmp #1
beq X15
jmp L96
X15:
; {
; s2=0;
clr *_s2
bra L99
L98:
inc *_s2
L99:
; while(n[s2]!='=')s2++;
clr *__r0
lda *_s2
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
ldhx *__r0
lda ,x
tsx
cmp #61
bne L98
clr *_i
bra L104
L101:
clr *__r0
lda *_s2
sta *__r1
clr *__r2
lda *_i
add *__r1
sta *__r1
lda *__r2
adc *__r0
sta *__r0
lda *__r1
add #<_n+1
sta *__r1
lda *__r0
adc #>_n+1
sta *__r0
ldhx *__r0
lda ,x
sta *__r1
clr *__r2
lda *_i
add #<_n
sta *__r3
lda *__r2
adc #>_n
sta *__r2
lda *__r1
ldhx *__r2
sta ,x
tsx
L102:
inc *_i
L104:
; for(i=0;i<t-s2;i++)n[i]=n[i+s2+1];
lda *_t
sub *_s2
sta *__r0
lda *_i
cmp *__r0
blo L101
lda *_t
sub *_s2
sta *_i
bra L109
L106:
clr *__r0
lda *_i
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #32
ldhx *__r0
sta ,x
tsx
L107:
inc *_i
L109:
; for(i=t-s2;i<32;i++)n[i]=' ';
lda *_i
cmp #32
blo L106
; t=t-s2-1;
lda *_t
sub *_s2
sub #1
sta *_t
; }
bra L97
L96:
; else n[t++]='-';
clr *__r0
lda *_t
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #45
ldhx *__r0
sta ,x
tsx
L97:
; s1=0;break;
clr *_s1
jmp L59
L110:
; case '*':if(s1==1)
lda *_s1
cmp #1
beq X16
jmp L111
X16:
; {
; s2=0;
clr *_s2
bra L114
L113:
inc *_s2
L114:
; while(n[s2]!='=')s2++;
clr *__r0
lda *_s2
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
ldhx *__r0
lda ,x
tsx
cmp #61
bne L113
clr *_i
bra L119
L116:
clr *__r0
lda *_s2
sta *__r1
clr *__r2
lda *_i
add *__r1
sta *__r1
lda *__r2
adc *__r0
sta *__r0
lda *__r1
add #<_n+1
sta *__r1
lda *__r0
adc #>_n+1
sta *__r0
ldhx *__r0
lda ,x
sta *__r1
clr *__r2
lda *_i
add #<_n
sta *__r3
lda *__r2
adc #>_n
sta *__r2
lda *__r1
ldhx *__r2
sta ,x
tsx
L117:
inc *_i
L119:
; for(i=0;i<t-s2;i++)n[i]=n[i+s2+1];
lda *_t
sub *_s2
sta *__r0
lda *_i
cmp *__r0
blo L116
lda *_t
sub *_s2
sta *_i
bra L124
L121:
clr *__r0
lda *_i
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #32
ldhx *__r0
sta ,x
tsx
L122:
inc *_i
L124:
; for(i=t-s2;i<32;i++)n[i]=' ';
lda *_i
cmp #32
blo L121
; t=t-s2-1;
lda *_t
sub *_s2
sub #1
sta *_t
; }
L111:
; if(t==0)break;
lda *_t
bne L125
jmp L59
L125:
; else n[t++]='*';
clr *__r0
lda *_t
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #42
ldhx *__r0
sta ,x
tsx
; s1=0;break;
clr *_s1
jmp L59
L127:
; case '/':if(s1==1)
lda *_s1
cmp #1
beq X17
jmp L128
X17:
; {
; s2=0;
clr *_s2
bra L131
L130:
inc *_s2
L131:
; while(n[s2]!='=')s2++;
clr *__r0
lda *_s2
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
ldhx *__r0
lda ,x
tsx
cmp #61
bne L130
clr *_i
bra L136
L133:
clr *__r0
lda *_s2
sta *__r1
clr *__r2
lda *_i
add *__r1
sta *__r1
lda *__r2
adc *__r0
sta *__r0
lda *__r1
add #<_n+1
sta *__r1
lda *__r0
adc #>_n+1
sta *__r0
ldhx *__r0
lda ,x
sta *__r1
clr *__r2
lda *_i
add #<_n
sta *__r3
lda *__r2
adc #>_n
sta *__r2
lda *__r1
ldhx *__r2
sta ,x
tsx
L134:
inc *_i
L136:
; for(i=0;i<t-s2;i++)n[i]=n[i+s2+1];
lda *_t
sub *_s2
sta *__r0
lda *_i
cmp *__r0
blo L133
lda *_t
sub *_s2
sta *_i
bra L141
L138:
clr *__r0
lda *_i
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #32
ldhx *__r0
sta ,x
tsx
L139:
inc *_i
L141:
; for(i=t-s2;i<32;i++)n[i]=' ';
lda *_i
cmp #32
blo L138
; t=t-s2-1;
lda *_t
sub *_s2
sub #1
sta *_t
; }
L128:
; if(t==0)break;
lda *_t
bne L142
jmp L59
L142:
; else n[t++]='/';
clr *__r0
lda *_t
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #47
ldhx *__r0
sta ,x
tsx
; s1=0;break;
clr *_s1
jmp L59
L144:
; case '=':
; n[t++]='=';
clr *__r0
lda *_t
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #61
ldhx *__r0
sta ,x
tsx
; for(i=0;i<t;i++)
clr *_i
bra L148
L145:
clr *__r0
lda *_i
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
ldhx *__r0
lda ,x
sta *__r1
clr *__r2
lda *_i
add #<_m
sta *__r3
lda *__r2
adc #>_m
sta *__r2
lda *__r1
ldhx *__r2
sta ,x
tsx
L146:
inc *_i
L148:
lda *_i
cmp *_t
blo L145
; m[i]=n[i];
; mm=result(m);
ldhx #_m
pshx
pshh
jsr _result
ais #2
tsx
mov *__r0,*_mm
mov *__r1,*_mm+1
; if(t<17)
lda *_t
cmp #17
bhs L149
; {n[t-1]=' ';n[16]='=';t=17;}
clr *__r0
lda *_t
add #<_n-1
sta *__r1
lda *__r0
adc #>_n-1
sta *__r0
lda #32
ldhx *__r0
sta ,x
tsx
lda #61
sta *_n+16
lda #17
sta *_t
L149:
; if(mm<0)
ldhx *_mm
cphx #0
tsx
bge L153
; {
; n[t++]='-';
clr *__r0
lda *_t
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #45
ldhx *__r0
sta ,x
tsx
; mm=0-mm;
clra
sub *_mm+1
sta *_mm+1
clra
sbc *_mm
sta *_mm
; }
L153:
; t1=0;
clr *_t1
; if(mm==0)n[t++]='0';
ldhx *_mm
cphx #0
tsx
beq X18
jmp L158
X18:
clr *__r0
lda *_t
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #48
ldhx *__r0
sta ,x
tsx
jmp L156
X10:
; else
; {
L157:
clr *__r0
lda *_t1
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t1
lda *_mm+1
sta *__rlo
lda *_mm
sta *__rhi
lda #10
psha
clra
psha
jsr __divmod16s
pula
sta *__r2
pula
sta *__r3
ldhx *__r2
aix #48
sthx *__r2
lda *__r1
add #<_mn
sta *__r1
lda *__r0
adc #>_mn
sta *__r0
lda *__r3
ldhx *__r0
sta ,x
tsx
lda *_mm+1
sta *__rlo
lda *_mm
sta *__rhi
lda #10
psha
clra
psha
jsr __divmod16s
ais #2
mov *__rhi,*__r0
mov *__rlo,*__r1
mov *__r0,*_mm
mov *__r1,*_mm+1
L158:
; while(mm)
ldhx *_mm
cphx #0
tsx
bne L157
bra L161
L160:
clr *__r0
lda *_t
sta *__r1
ldhx *__r0
aix #1
sthx *__r2
mov *__r3,*_t
lda *_t1
sub #1
sta *_t1
clr *__r2
add #<_mn
sta *__r3
lda *__r2
adc #>_mn
sta *__r2
ldhx *__r2
lda ,x
sta *__r3
lda *__r1
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda *__r3
ldhx *__r0
sta ,x
tsx
L161:
; {
; mn[t1++]=mm%10+'0';
; mm=mm/10;
; }
; while(t1>0)n[t++]=mn[--t1];}
lda *_t1
cmp #0
bhi L160
L156:
; s1=1;break;
lda #1
sta *_s1
L58:
L59:
; }
; Lcd_Command(0b00001100);
lda #12
psha
jsr _Lcd_Command
ais #1
; lcdshow(n);
ldhx #_n
pshx
pshh
jsr _lcdshow
ais #2
tsx
; if(t>32)
lda *_t
cmp #32
bls L164
; {
clr *_i
bra L169
L166:
clr *__r0
lda *_i
add #<_n
sta *__r1
lda *__r0
adc #>_n
sta *__r0
lda #32
ldhx *__r0
sta ,x
tsx
L167:
inc *_i
L169:
; for(i=0;i<32;i++)n[i]=' ';
lda *_i
cmp #32
blo L166
; lcdshow(n);
ldhx #_n
pshx
pshh
jsr _lcdshow
ais #2
; t=t%32;
lda *_t
ldx #32
clrh
div
pshh
pula
tsx
sta *_t
; }
L164:
; if(s1==2)
lda *_s1
cmp #2
bne L170
; {
; lcdshow(n);
ldhx #_n
pshx
pshh
jsr _lcdshow
ais #2
tsx
; s1=0;
clr *_s1
; }
L170:
; }
L56:
; KB_Init(); //重新初始化键盘
jsr _KB_Init
tsx
; INTKBSCR&= ~(1<<IntBit); //打开键盘中断(IMASKK=0)
bclr #1,0x1a
; asm("CLI"); //开总中断
CLI
L55:
ais #3
.dbline 0 ; func end
pula
sta *__rlo
pula
sta *__rhi
pula
sta *__r11
pula
sta *__r10
pula
sta *__r9
pula
sta *__r8
pula
sta *__r7
pula
sta *__r6
pula
sta *__r5
pula
sta *__r4
pula
sta *__r3
pula
sta *__r2
pula
sta *__r1
pula
sta *__r0
pulh
rti
_isrDummy::
pshh
; }
; //未定义的中断处理函数,本函数不能删除
; #pragma interrupt_handler isrDummy
; void isrDummy(void)
; {
L172:
.dbline 0 ; func end
pulh
rti
.area memory(abs)
.org 0xffdc
__vectab::
.word _isrDummy
.word _isrDummy
.word _isrKBI
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.word _isrDummy
.area lit
.area bss
_res::
.blkb 2
_r::
.blkb 32
_sign2::
.blkb 16
_sign1::
.blkb 16
_i9::
.blkb 1
_i8::
.blkb 1
_i7::
.blkb 1
_i6::
.blkb 1
_i5::
.blkb 1
_i42::
.blkb 1
_i41::
.blkb 1
_i4::
.blkb 1
_i3::
.blkb 1
_i2::
.blkb 1
_i1::
.blkb 1
_mm::
.blkb 2
_t1::
.blkb 1
_x::
.blkb 1
_s2::
.blkb 1
_i::
.blkb 1
_KB_valve::
.blkb 1
_mn::
.blkb 32
_m::
.blkb 32
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -