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

📄 bcd sub.lst

📁 Proteus在MCS-51%26ARM7系统中的应用百例 Proteus在MCS-51%26ARM7系统中的应用百例
💻 LST
字号:
A51 MACRO ASSEMBLER  BCD_SUB                                                              07/22/2006 15:32:30 PAGE     1


MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN BCD Sub.OBJ
ASSEMBLER INVOKED BY: E:\Keil\C51\BIN\A51.EXE BCD Sub.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

0000                   1                     ORG             00H
0000 753057            2                     MOV             30H,#57H
0003 753182            3                     MOV             31H,#82H
0006 753264            4                     MOV             32H,#64H;设置被减数为578264
0009 753438            5                     MOV             34H,#38H
000C 753565            6                     MOV             35H,#65H
000F 753629            7                     MOV             36H,#29H;设置减数为386529
0012 7F03              8                     MOV             R7,#03H
0014 7830              9                     MOV             R0,#30H
0016 7934             10                     MOV             R1,#34H
0018 120028           11     BCDB:   LCALL   NEG1    ;减数[R1]十进制取补 
001B 120046           12                     LCALL   BCDA    ;按多字节BCD码加法处理 
001E B3               13                     CPL     C               ;将补码加法的进位标志转换成借位标志 
001F 92D5             14                     MOV     F0,C    ;保护借位标志 
0021 120028           15                     LCALL   NEG1    ;恢复减数[R1]的原始值 
0024 A2D5             16                     MOV     C,F0    ;恢复借位标志 
0026 80FE             17                     SJMP    $ 
0028 E8               18     NEG1:   MOV     A,R0    ;[R1]十进制取补子程序入口 
0029 C9               19                     XCH     A,R1    ;交换指针 
002A C8               20                     XCH     A,R0 
002B 120032           21                     LCALL   NEG             ;通过[R0]实现[R1]取补 
002E E8               22                     MOV     A,R0 
002F C9               23                     XCH     A,R1    ;换回指针 
0030 C8               24                     XCH     A,R0 
0031 22               25                     RET 
0032 EF               26     NEG:    MOV     A,R7    ;取(字节数减一)至R2中 
0033 14               27                     DEC     A 
0034 FA               28                     MOV     R2,A 
0035 E8               29                     MOV     A,R0    ;保护指针 
0036 FB               30                     MOV     R3,A 
0037 C3               31     NEG0:   CLR     C 
0038 7499             32                     MOV     A,#99H 
003A 96               33                     SUBB    A,@R0   ;按字节十进制取补 
003B F6               34                     MOV     @R0,A   ;存回[R0]中 
003C 08               35                     INC     R0              ;调整数据指针 
003D DAF8             36                     DJNZ    R2,NEG0 ;处理完(R2)字节 
003F 749A             37                     MOV     A,#9AH  ;最低字节单独取补 
0041 96               38                     SUBB    A,@R0 
0042 F6               39                     MOV     @R0,A 
0043 EB               40                     MOV     A,R3    ;恢复指针 
0044 F8               41                     MOV     R0,A 
0045 22               42                     RET 
0046 EF               43     BCDA:   MOV     A,R7    ;取字节数至R2中 
0047 FA               44                     MOV     R2,A 
0048 28               45                     ADD     A,R0    ;初始化数据指针 
0049 F8               46                     MOV     R0,A 
004A EA               47                     MOV     A,R2 
004B 29               48                     ADD     A,R1 
004C F9               49                     MOV     R1,A 
004D C3               50                     CLR     C 
004E 18               51     BCD1:   DEC     R0              ;调整数据指针 
004F 19               52                     DEC     R1 
0050 E6               53                     MOV     A,@R0 
0051 37               54                     ADDC    A,@R1   ;按字节相加 
0052 D4               55                     DA              A               ;十进制调整 
0053 F6               56                     MOV     @R0,A   ;和存回[R0]中 
0054 DAF8             57                     DJNZ    R2,BCD1 ;处理完所有字节 
0056 22               58                     RET
A51 MACRO ASSEMBLER  BCD_SUB                                                              07/22/2006 15:32:30 PAGE     2

                      59                     END 
A51 MACRO ASSEMBLER  BCD_SUB                                                              07/22/2006 15:32:30 PAGE     3

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

BCD1 . . . . . . .  C ADDR   004EH   A   
BCDA . . . . . . .  C ADDR   0046H   A   
BCDB . . . . . . .  C ADDR   0018H   A   
F0 . . . . . . . .  B ADDR   00D0H.5 A   
NEG. . . . . . . .  C ADDR   0032H   A   
NEG0 . . . . . . .  C ADDR   0037H   A   
NEG1 . . . . . . .  C ADDR   0028H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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