📄 tstmpy.lst
字号:
TSTMPY PAGE 1
1 $mod51
2 $nolist
117 $list
118
4000 119 org tpa
4000 754810 120 start: mov radix,#16
4003 754902 121 mov radsiz,#2
4006 120112 122 again: call ilprt
4009 4D756C74 123 db 'Multiplier : ',0
400D 69706C69
4011 65722020
4015 3A2000
4018 120130 124 call getln
401B 7942 125 mov r1,#42h ; result in 42/43
401D 7830 126 mov r0,#30h ; buffer
401F 120145 127 call getrad
4022 120112 128 call ilprt
4025 4D756C74 129 db 'Multiplicand: ',0
4029 69706C69
402D 63616E64
4031 3A2000
4034 120130 130 call getln
4037 7944 131 mov r1,#44h ; result in 44/45
4039 7830 132 mov r0,#30h ; buffer
403B 120145 133 call getrad
134
403E 12012D 135 call crlf
4041 E544 136 mov a,44h
4043 120115 137 call prtrad
4046 120112 138 call ilprt
4049 202A2000 139 db ' * ',0
404D E542 140 mov a,42h
404F 120115 141 call prtrad
4052 120112 142 call ilprt
4055 203D2000 143 db ' = ',0
4059 E544 144 mov a,44h ; get low multiplicand
405B F5F0 145 mov b,a
405D E542 146 mov a,42h ; get low multiplier
405F 12406A 147 call mpy ; a = a * b
148
4062 120115 149 call prtrad ; print hi product
4065 12012D 150 call crlf
4068 809C 151 jmp again
152 ;
153 ;$include(mpy.asm)
=1 154 $include(sysmpy.asm)
0000 =1 155 shonfo equ 0
=1 156 ; signed multiply a * b
406A =1 157 mpy:
=1 158 if(shonfo)
=1 159 push acc
=1 160 push acc
=1 161 mov a,#5bh
=1 162 call sndchr
=1 163 pop acc
=1 164 call psprad
=1 165 mov a,b
=1 166 call psprad
TSTMPY PAGE 2
=1 167 pop acc
=1 168 endif
=1 169
406A FF =1 170 mov r7,a ; save multiplier
406B 65F0 =1 171 xrl a,b ; xor signs
406D A2E7 =1 172 mov c,acc.7
406F C0D0 =1 173 push psw ; save result sign
4071 C3 =1 174 clr c
4072 EF =1 175 mov a,r7 ; get multiplier
4073 30E702 =1 176 jnb acc.7,mpy2
4076 F4 =1 177 cpl a
4077 04 =1 178 inc a
4078 C5F0 =1 179 mpy2: xch a,b
407A 30E702 =1 180 jnb acc.7,mpy3
407D F4 =1 181 cpl a
407E 04 =1 182 inc a
407F A4 =1 183 mpy3: mul ab ; unsigned math
4080 D0D0 =1 184 pop psw ; get result sign
4082 500A =1 185 jnc mpy1
4084 F4 =1 186 cpl a
4085 3400 =1 187 addc a,#0
4087 C5F0 =1 188 xch a,b
4089 F4 =1 189 cpl a
408A 3400 =1 190 addc a,#0
408C C5F0 =1 191 xch a,b
408E 33 =1 192 mpy1: rlc a
408F C5F0 =1 193 xch a,b
4091 33 =1 194 rlc a
=1 195 if(shonfo)
=1 196 push acc
=1 197 call psprad
=1 198 mov a,#5dh
=1 199 call sndchr
=1 200 pop acc
=1 201 endif
4092 22 =1 202 ret
203
204 end
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -