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

📄 bcda.lst

📁 bcd 码转hex码
💻 LST
📖 第 1 页 / 共 2 页
字号:
                                                                    页     1
                                                                    11-13-03
                                                                    11:24:10
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

            mend_data_bytes data    40h     ; 要修改的字节数
            ten_yuan_led    data    41h
            yuan_led        data    42h
            jiao_led        data    43h
            money_high      data    44h
            money_low       data    45h
            crc_data1       data    46h
            crc_data2       data    47h
            dec_unit1       data    48h
            dec_unit2       data    49h
            warning1        data    4ah
            warning2        data    4bh
            money_high_bak  data    50h
            money_data_bak  data    51h
            ;---------------
            sign            data    20h
            lack_of_money   bit     00h
            no_money        bit     01h
            org 0100h
0100 753001 start:          mov 30h,#01h
0103 753102                 mov 31h,#02h
0106 753203                 mov 32h,#03h
0109 753304                 mov 33h,#04h
010C 753405                 mov 34h,#05h
010F 753506                 mov 35h,#06h
0112 753607                 mov 36h,#07h
0115 753708                 mov 37h,#08h
0118 753809                 mov 38h,#09h
011B 753901                 mov 39h,#01h
011E 753A01                 mov 3ah,#01h
0121 753B01                 mov 3bh,#01h
0124 753C01                 mov 3ch,#01h
0127 753D0A                 mov 3dh,#0ah
                            
                            
012A 7830                   mov r0,#30h
012C 7932                   mov r1,#32h
012E 7F02                   mov r7,#2
0130 7E06                   mov r6,#6
0132 3198   add_lop:                acall bcda
0134 09                     inc r1
0135 09                     inc r1
0136 DEFA                   djnz r6,add_lop
                            
0138 80FE                   sjmp $
            ;-------------------------------------------------
            ;  name:   mend_data
            ;  func:   进行扣费及LED码变换


F:\HJC\TRY\BCDA\BCDA.ASM                                        
 
                                                                    页     2
                                                                    11-13-03
                                                                    11:24:10
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

            ;  calls:  bcdb(多字节BCD码减法)
            ;  InPara: money_high, money_high_bak, mend_data_bytes
            ;  OutPara:  ten_yuan_led, yuan_led ,  jiao_led
            ;  usage register:  A, r0, r1, r2, r3, r7,psw
            ;-------------------------------------------------
013A 7844   mend_data:      mov r0,#money_high
013C 7950                   mov r1,#money_high_bak
013E 7A02                   mov r2,#2
0140 E6     mend_data_bak1: mov a,@r0
0141 F7                     mov @r1,a
0142 08                     inc r0
0143 09                     inc r1
0144 DAFA                   djnz r2,mend_data_bak1
0146 7850                   mov r0,#money_high_bak          ;被减数的地址,
0148 794A                   mov r1,#warning1                ;减数的地址
014A AF40                   mov r7,mend_data_bytes
014C 1201A9                 lcall bcdb                      ;判断金额是否小于报警金额
014F 5002                   jnc mend_data_dec               ;
0151 D200                   setb lack_of_money              ;小于则置缺钱标志位
0153 7844   mend_data_dec:  mov r0,#money_high
0155 7950                   mov r1,#money_high_bak
0157 7A02                   mov r2,#2
0159 E6     mend_data_bak2: mov a,@r0
015A F7                     mov @r1,a
015B 08                     inc r0
015C 09                     inc r1
015D DAFA                   djnz r2,mend_data_bak2
015F 7850                   mov r0,#money_high_bak          ;被减数的地址,
0161 7948                   mov r1,#dec_unit1               ;减数的地址
0163 AF40                   mov r7,mend_data_bytes
0165 1201A9                 lcall bcdb                      ;开始扣费
0168 5004                   jnc mend_data_save              ;判断金额是否小于扣费单位
016A D201                   setb no_money                   ;小于则置无钱标志位
016C 800C                   sjmp mend_data_div
016E 7844   mend_data_save: mov r0,#money_high              ;把修改后的金额保存在待写进IC卡的单元
0170 7950                   mov r1,#money_high_bak
0172 7A02                   mov r2,#2
0174 E7     mend_data_save1:mov a,@r1
0175 F6                     mov @r0,a
0176 08                     inc r0
0177 09                     inc r1
0178 DAFA                   djnz r2,mend_data_save1
            ; 把金额分离成三字节BCD 码,
017A 854441 mend_data_div:  mov ten_yuan_led,money_high
017D E545                   mov a,money_low
017F 54F0                   anl a,#0f0h
0181 C4                     swap a
0182 F542                   mov yuan_led,a


F:\HJC\TRY\BCDA\BCDA.ASM                                        
 
                                                                    页     3
                                                                    11-13-03
                                                                    11:24:10
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0184 E545                   mov a,money_low
0186 540F                   anl a,#0fh
0188 F543                   mov jiao_led,a
             ;再转换成LED码
018A 7A03                   mov r2,#3
018C 9001D6                 mov dptr,#led_tab
018F 7841                   mov r0,#ten_yuan_led
0191 E6     mend_data_led:  mov a,@r0
0192 93                     movc a,@a+dptr
0193 F6                     mov @r0,a
0194 08                     inc r0
0195 DAFA                   djnz r2,mend_data_led
0197 22                     ret
            
            mend_data_ret:
            ;--------------------------------------
            ;   name:    bcda
            ;   func:    多字节bcd 码加法
            ;   usage register:     r0, r1, r2, r7 ,C
            ;   r7: 相加的字节数, r0:被加数的地址, r1:加数的地址
            ;   C: 进位
            ;-------------------------------------
0198 EF     bcda:           mov a,r7
0199 FA                     mov r2,a
019A 28                     add a,r0
019B F8                     mov r0,a
019C EA                     mov a,r2
019D 29                     add a,r1
019E F9                     mov r1,a
019F C3                     clr c
01A0 18     bcd1:           dec r0
01A1 19                     dec r1
01A2 E6                     mov a,@r0
01A3 37                     addc a,@r1
01A4 D4                     da a
01A5 F6                     mov @r0,a
01A6 DAF8                   djnz r2,bcd1
01A8 22                     ret
            ;--------------------------------------
            ;   name:    bcdb
            ;   func:    多字节bcd 码减法
            ;   usage register:     A, r0, r1, r2, r3, r7,psw
            ;   r7: 相减的字节数, r0:被减数的地址, r1:减数的地址
            ;   c:借位
            ;-------------------------------------
01A9 1201B8 bcdb:           lcall neg1
01AC 120198                 lcall bcda
01AF B3                     cpl c


F:\HJC\TRY\BCDA\BCDA.ASM                                        
 
                                                                    页     4
                                                                    11-13-03
                                                                    11:24:10
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

01B0 92D5                   mov f0,c
01B2 1201B8                 lcall neg1
01B5 A2D5                   mov c,f0
01B7 22                     ret
01B8 E8     neg1:           mov a,r0
01B9 C9                     xch a,r1
01BA C8                     xch a,r0
01BB 1201C2                 lcall neg
01BE E8                     mov a,r0
01BF C9                     xch a,r1
01C0 C8                     xch a,r0
01C1 22                     ret
            ;--------------------------------------
            ;   name:    neg
            ;   func:    多字节bcd 码取补
            ;   usage register:     r0,  r2, r3, psw
            ;   r7: 字节数, r0:操作数的地址,
            ;-------------------------------------
01C2 EF     neg:            mov a,r7
01C3 14                     dec a
01C4 FA                     mov r2,a
01C5 E8                     mov a,r0
01C6 FB                     mov r3,a

⌨️ 快捷键说明

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