📄 bcd_byte.lst
字号:
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 1
MCS-51 Family Macro Assembler A S E M - 5 1 V 1.3
=====================================================
Source File: E:\MiCrOConTroller\Coba_M-IDE\BCD_byte\bcd_byte.asm
Object File: E:\MiCrOConTroller\Coba_M-IDE\BCD_byte\bcd_byte.hex
List File: E:\MiCrOConTroller\Coba_M-IDE\BCD_byte\bcd_byte.lst
Line I Addr Code Source
1: ;#############################################################################
2: ;# VAULT INFORMATION SERVICES - 8052 CODE EXAMPLE #
3: ;# (C) Copyright 1997 by Vault Information Services #
4: ;# #
5: ;# This code fragment is provided to the public free of charge and WITHOUT #
6: ;# OF ANY KIND, NEITHER EXPRESS OR IMPLIED. This code is offered as an #
7: ;# example of 8052 programming. VIS extends no warranty regarding its #
8: ;# functionality or fitness for a specific purpose.;# #
9: ;# The user may utilize this code in any way he/she sees fit, including #
10: ;# using it in his/her own program, commercial or otherwise. However, by #
11: ;# using this code the user states his/her acceptance of the above and #
12: ;# holds VIS indemnified against any and all claims that may arise due to #
13: ;# the use or misuse of this code. #
14: ;#############################################################################
15:
16: ;********************************************************************
17: ;********************************************************************
18: ;** Function: bcd_to_byte **
19: ;** Purpose: Convert a two-byte BCD into a single byte **
20: ;** Input: A = Hi byte to convert (ASCII 0x30-0x39,0x41-0x46)**
21: ;** R0 = Lo byte to convert (ASCII 0x30-0x39,0x41-0x46)**
22: ;** Output: A = Converted value (binary 0x00-0xFF) **
23: ;** Destroyed Registers: None **
24: ;********************************************************************
25: ;********************************************************************
26: 0000 bcd_to_byte:
27: 0000 C8 XCH A,R0
28: 0001 94 30 SUBB A,#30h
29: 0003 30 E4 02 JNB ACC.4,bcd_to_byte_2
30: 0006 94 07 SUBB A,#07h
31: 0008 bcd_to_byte_2:
32: 0008 C8 XCH A,R0
33: 0009 94 30 SUBB A,#30h
34: 000B 30 E4 02 JNB ACC.4,bcd_to_byte_3
35: 000E 94 07 SUBB A,#07h
36: 0010 bcd_to_byte_3:
37: 0010 C4 SWAP A
38: 0011 48 ORL A,R0
39: 0012 22 RET
40:
41: ;********************************************************************
42: ;********************************************************************
43: ;** Function: byte_to_bcd **
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: ;** Purpose: Convert a single byte into two BCD digits **
45: ;** Input: A = Byte to convert (0x00-0xFF) **
46: ;** Output: A = High nibble (ASCII 0x30-0x39,0x41-0x46) **
47: ;** R0 = Low nibble (ASCII 0x30-0x39, 0x41-0x46) **
48: ;** Destroyed Registers: None **
49: ;********************************************************************
50: ;********************************************************************
51: 0013 byte_to_bcd:
52: 0013 F8 MOV R0,A
53: 0014 54 0F ANL A,#0Fh
54: 0016 24 F6 ADD A,#0F6h
55: 0018 50 02 JNC byte_to_bcd_2
56: 001A 24 07 ADD A,#07h
57: 001C byte_to_bcd_2:
58: 001C 24 3A ADD A,#3Ah
59: 001E C8 XCH A,R0
60: 001F C4 SWAP A
61: 0020 54 0F ANL A,#0Fh
62: 0022 24 F6 ADD A,#0F6h
63: 0024 50 02 JNC byte_to_bcd_3
64: 0026 24 07 ADD A,#07h
65: 0028 byte_to_bcd_3:
66: 0028 24 3A ADD A,#3Ah
67: 002A 22 RET
68:
69: END
register banks used: ---
no errors
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 3
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
??ASEM_51 NUMBER 8051
??VERSION NUMBER 0130
AC BIT D6
ACC DATA E0
B DATA F0
BCD_TO_BYTE CODE 0000 26
BCD_TO_BYTE_2 CODE 0008 31
BCD_TO_BYTE_3 CODE 0010 36
BYTE_TO_BCD CODE 0013 51
BYTE_TO_BCD_2 CODE 001C 57
BYTE_TO_BCD_3 CODE 0028 65
CY BIT D7
DPH DATA 83
DPL DATA 82
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXTI0 CODE 0003
EXTI1 CODE 0013
F0 BIT D5
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
RI BIT 98
RS0 BIT D3
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
T0 BIT B4
T1 BIT B5
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -