📄 13.lst
字号:
07-30-03
00:02:30
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
015A CA XCH A,R2
015B 33 RLC A
015C CA XCH A,R2
015D 92D5 MOV F0,C ;保存溢出位
015F C3 CLR C
0160 9F SUBB A,R7 ;计算(R2R3-R6R7)
0161 F9 MOV R1,A
0162 EA MOV A,R2
0163 9E SUBB A,R6
0164 B0D5 ANL C,/F0 ;结果判断
0166 4004 JC DVD3
0168 FA MOV R2,A ;够减,存放新的余数
0169 E9 MOV A,R1
016A FB MOV R3,A
016B 0D INC R5 ;商的低位置一
016C D5F0E1 DVD3: DJNZ B,DVD2 ;计算完十六位商(R4R5)
016F EC MOV A,R4 ;将商移到R2R3中
0170 FA MOV R2,A
0171 ED MOV A,R5
0172 FB MOV R3,A
0173 C2D2 CLR OV ;设立成功标志
;以下程序为追加。
0175 22 RET
BCD_CODE:
0176 7942 MOV R1,#JE_GO
0178 E54D MOV A,KMM
017A 6002 JZ JEGO1 ;检测km/m的状态,如果为m(f0=0)则往下执行,为km(f0-1)则je_go=je_go*3.6
017C 09 INC R1
017D 09 INC R1
JEGO1:
017E E7 MOV A,@R1
017F FE MOV R6,A
0180 09 INC R1
0181 E7 MOV A,@R1
0182 FF MOV R7,A
0183 31C6 ACALL CG_BCD ;转换成bcd码
0185 7947 MOV R1,#SUM ;将转换后的bcd数存放在sum的六个单元内.
0187 EB MOV A,R3
0188 54F0 ANL A,#0F0H
018A 31C1 ACALL RRA
018C F7 MOV @R1,A
018D 09 INC R1
018E EB MOV A,R3
018F 540F ANL A,#0FH
0191 F7 MOV @R1,A
0192 09 INC R1
F:\DOWNLOAD\QQ\13.ASM
页 7
07-30-03
00:02:30
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
0193 EC MOV A,R4
0194 54F0 ANL A,#0F0H
0196 31C1 ACALL RRA
0198 F7 MOV @R1,A
0199 09 INC R1
019A EC MOV A,R4
019B 540F ANL A,#0FH
019D F7 MOV @R1,A
019E 09 INC R1
019F ED MOV A,R5
01A0 54F0 ANL A,#0F0H
01A2 31C1 ACALL RRA
01A4 F7 MOV @R1,A
01A5 09 INC R1
01A6 ED MOV A,R5
01A7 540F ANL A,#0FH
01A9 F7 MOV @R1,A
;*************
01AA 1B DEC R3
01AB BBFF0F CJNE R3,#255,POINT0 ;根据6位bcd数的结果,可以求出小数点的位置,
01AE EC MOV A,R4 ;如果r3的值大于0,则结果没有小数点.(01****)
01AF 54F0 ANL A,#11110000B ;如果第三位的值大于0,则有一位小数.
01B1 9410 SUBB A,#00010000B ;除此之外有二位小数.
01B3 5004 JNC POINT1
01B5 754602 MOV DOT,#2
01B8 22 RET
01B9 754601 POINT1: MOV DOT,#1
01BC 22 RET
01BD 754600 POINT0: MOV DOT,#0
01C0 22 RET
01C1 03 RRA: RR A
01C2 03 RR A
01C3 03 RR A
01C4 03 RR A
01C5 22 RET
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
01C6 00 CG_BCD: NOP
;功能:双字节十六进制整数转换成双字节BCD码整数
; 入口条件:待转换的双字节十六进制整数在R6、R7中。
;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
;影响资源:PSW、A、R2~R7 堆栈需求: 2字节
01C7 E4 HB2: CLR A ;BCD码初始化
01C8 FB MOV R3,A
F:\DOWNLOAD\QQ\13.ASM
页 8
07-30-03
00:02:30
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
01C9 FC MOV R4,A
01CA FD MOV R5,A
01CB 7A10 MOV R2,#10H ;转换双字节十六进制整数
01CD EF HB3: MOV A,R7 ;从高端移出待转换数的一位到CY中
01CE 33 RLC A
01CF FF MOV R7,A
01D0 EE MOV A,R6
01D1 33 RLC A
01D2 FE MOV R6,A
01D3 ED MOV A,R5 ;BCD码带进位自身相加,相当于乘2
01D4 3D ADDC A,R5
01D5 D4 DA A ;十进制调整
01D6 FD MOV R5,A
01D7 EC MOV A,R4
01D8 3C ADDC A,R4
01D9 D4 DA A
01DA FC MOV R4,A
01DB EB MOV A,R3
01DC 3B ADDC A,R3
01DD FB MOV R3,A ;双字节十六进制数的万位数不超过6,不用调整
01DE DAED DJNZ R2,HB3 ;处理完16bit
01E0 22 RET
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
01E1 00 M_KM: NOP
01E2 7942 MOV R1,#JE_GO
01E4 E7 MOV A,@R1
01E5 FA MOV R2,A
01E6 09 INC R1
01E7 E7 MOV A,@R1
01E8 FB MOV R3,A
01E9 7E00 MOV R6,#0H
01EB 7F24 MOV R7,#36
;(5) 标号: MULD 功能:双字节二进制无符号数乘法
;入口条件:被乘数在R2、R3中,乘数在R6、R7中。
;出口信息:乘积在R2、R3、R4、R5中。
;影响资源:PSW、A、B、R2~R7 堆栈需求: 2字节
01ED EB MULD: MOV A,R3 ;计算R3乘R7
01EE 8FF0 MOV B,R7
01F0 A4 MUL AB
01F1 ACF0 MOV R4,B ;暂存部分积
01F3 FD MOV R5,A
01F4 EB MOV A,R3 ;计算R3乘R6
01F5 8EF0 MOV B,R6
01F7 A4 MUL AB
01F8 2C ADD A,R4 ;累加部分积
01F9 FC MOV R4,A
01FA E4 CLR A
01FB 35F0 ADDC A,B
F:\DOWNLOAD\QQ\13.ASM
页 9
07-30-03
00:02:30
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
01FD FB MOV R3,A
01FE EA MOV A,R2 ;计算R2乘R7
01FF 8FF0 MOV B,R7
0201 A4 MUL AB
0202 2C ADD A,R4 ;累加部分积
0203 FC MOV R4,A
0204 EB MOV A,R3
0205 35F0 ADDC A,B
0207 FB MOV R3,A
0208 E4 CLR A
0209 33 RLC A
020A CA XCH A,R2 ;计算R2乘R6
020B 8EF0 MOV B,R6
020D A4 MUL AB
020E 2B ADD A,R3 ;累加部分积
020F FB MOV R3,A
0210 EA MOV A,R2
0211 35F0 ADDC A,B
0213 FA MOV R2,A
;*#############向右移动一位后送入je_go中。
0214 7E00 MOV R6,#0H
0216 7F0A MOV R7,#0AH
0218 3136 ACALL DIVD
021A 7942 MOV R1,#JE_GO
021C 09 INC R1
021D 09 INC R1
021E EA MOV A,R2
021F F7 MOV @R1,A
0220 09 INC R1
0221 EB MOV A,R3
0222 F7 MOV @R1,A
0223 22 RET
0224 793F EROO: MOV R1,#BUFFER
0226 770E MOV @R1,#0EH
0228 09 INC R1
0229 7710 MOV @R1,#16
022B 09 INC R1
022C 7710 MOV @R1,#16
022E 22 RET
;********************************************
022F D2B1 INSTALL: SETB P3.1 ;安装程序,当int0端有底电平时,led亮.
0231 30B101 JNB P3.1,INST_LP1
0234 22 RET
0235 5184 INST_LP1: ACALL DELAY1
0237 30B101 JNB P3.1,INST_LP3
023A 22 RET
023B 7905 INST_LP3: MOV R1,#5
F:\DOWNLOAD\QQ\13.ASM
页 10
07-30-03
00:02:30
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
023D B2B7 INST_LP4: CPL P3.7
023F 518D ACALL DELAY2
0241 D9FA DJNZ R1,INST_LP4
0243 D2B7 INST_LP2:SETB P3.7
0245 D2B2 SETB P3.2
0247 20B2F9 JB P3.2,INST_LP2
024A 7F20 MOV R7,#020H
024C 7EFF INST_LP5: MOV R6,#0FFH
024E 20B2F2 INST_LP6: JB P3.2,INST_LP2
0251 DEFB DJNZ R6,INST_LP6
0253 DFF7 DJNZ R7,INST_LP5
0255 C2B7 INST_LP0: CLR P3.7
0257 30B2FB JNB P3.2,INST_LP0
025A 4143 AJMP INST_LP2
025C 22 RET
;********************************************
;********************************************
TEST_N:
025D E54E MOV A,N
025F 04 INC A
0260 7010 JNZ TESTN_LP1
0262 754600 MOV DOT,#0
0265 793F MOV R1,#BUFFER
0267 770E MOV @R1,#0EH
0269 09 INC R1
026A 7711 MOV @R1,#17
026C 09 INC R1
026D 7711 MOV @R1,#17
026F C28C CLR TR0
0271 22 RET
0272 04 TESTN_LP1:INC A
0273 6001 JZ TESTN_LP0
0275 22 RET
0276 793F TESTN_LP0: MOV R1,#BUFFER
0278 7700 MOV @R1,#0
027A 09 INC R1
027B 7700 MOV @R1,#0
027D 09 INC R1
027E 7700 MOV @R1,#0
0280 754602 MOV DOT,#2
0283 22 RET
;********************************************
0284 7F01 DELAY1: MOV R7,#1H
0286 7EFF DELAY1_LP1: MOV R6,#0FFH
0288 DEFE DELAY1_LP0: DJNZ R6,DELAY1_LP0
F:\DOWNLOAD\QQ\13.ASM
页 11
07-30-03
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -