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

📄 10millions.lst

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 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\HEX2BCD10millions\10millions.asm
	Object File:	E:\MiCrOConTroller\Coba_M-IDE\HEX2BCD10millions\10millions.hex
	List File:	E:\MiCrOConTroller\Coba_M-IDE\HEX2BCD10millions\10millions.lst



 Line  I  Addr  Code            Source

    1:				$MOD51
    2:				;---------------------------------------------------------------------------------------
    3:				; sistem konversi dari 3 bytes heksa ke desimal 8 digit
    4:				; max value : 10000000 <sepuluh juta>
    5:				; input R5,R6,R7 (LSB-MSB) --> 3 bytes
    6:				; output ASCHII di ram 20h-28h 8 digits
    7:				; by: Herlambang Aribowo
    8:				; D3 Instrumentasi dan elektronika UNDIP, Semarang, Jawa tengah, Indonesia
    9:				; contact : cah_imuth@yahoo.com
   10:				; Phone : +6281328828042
   11:				;---------------------------------------------------------------------------------------
   12:
   13:	  0000	C3		Hex3DecConv:	CLR		C
   14:	  0001	7C 00							MOV		R4,#0		;bersihkan counter (jutaan)
   15:
   16:	  0003	EF		Hex3DecLoop1:	MOV			A,R7				;how many time we can subtra
				ct 10000000 (989680H) without carry
   17:	  0004	94 80							SUBB		A,#80H
   18:	  0006	FF							MOV		R7,A
   19:	  0007	EE							MOV		A,R6
   20:	  0008	94 96							SUBB		A,#96H
   21:	  000A	FE							MOV		R6,A
   22:	  000B	ED							MOV		A,R5
   23:	  000C	94 98							SUBB		A,#98H
   24:	  000E	FD							MOV		R5,A
   25:	  000F	40 03							JC		Hex3DecSkip1
   26:	  0011	0C							INC		R4
   27:	  0012	80 EF							JMP		Hex3DecLoop1
   28:	  0014	EC		Hex3DecSkip1:	MOV		A,R4
   29:	  0015	C0 E0							PUSH		ACC		 ;push counter onto stack
   30:	  0017	EF							MOV		A,R7
   31:	  0018	24 80							ADD		A,#80H
   32:	  001A	FF							MOV		R7,A
   33:	  001B	EE							MOV		A,R6
   34:	  001C	34 96							ADDC		A,#96H
   35:	  001E	FE							MOV		R6,A
   36:	  001F	ED							MOV		A,R5
   37:	  0020	34 98							ADDC		A,#98H
   38:	  0022	FD							MOV		R5,A
   39:	  0023	C3							CLR		C
   40:	  0024	7C 00							MOV		R4,#0
   41:	  0026	EF		Hex3DecLoop2:	MOV		A,R7					 ;how many times we can subt
				ract 1000000 (F4240H) without carry

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   42:	  0027	94 40							SUBB		A,#40H
   43:	  0029	FF							MOV		R7,A
   44:	  002A	EE							MOV		A,R6
   45:	  002B	94 42							SUBB		A,#42H
   46:	  002D	FE							MOV		R6,A
   47:	  002E	ED							MOV		A,R5
   48:	  002F	94 0F							SUBB		A,#0FH
   49:	  0031	FD							MOV		R5,A
   50:	  0032	40 03							JC		Hex3DecSkip2
   51:	  0034	0C							INC		R4
   52:	  0035	80 EF							JMP		Hex3DecLoop2
   53:	  0037	EC		Hex3DecSkip2:	MOV		A,R4
   54:	  0038	C0 E0							PUSH		ACC	          ;push counter onto stack
   55:	  003A	EF							MOV		A,R7
   56:	  003B	24 40							ADD		A,#40H
   57:	  003D	FF							MOV		R7,A
   58:	  003E	EE							MOV		A,R6
   59:	  003F	34 42							ADDC		A,#42H
   60:	  0041	FE							MOV		R6,A
   61:	  0042	ED							MOV		A,R5
   62:	  0043	34 0F							ADDC		A,#0FH
   63:	  0045	FD							MOV		R5,A
   64:	  0046	C3							CLR		C
   65:	  0047	7C 00							MOV		R4,#0
   66:	  0049	EF		Hex3DecLoop3:	MOV		A,R7					  ;100000 (186A0H)?
   67:	  004A	94 A0							SUBB		A,#0A0H
   68:	  004C	FF							MOV		R7,A
   69:	  004D	EE							MOV		A,R6
   70:	  004E	94 86							SUBB		A,#86H
   71:	  0050	FE							MOV		R6,A
   72:	  0051	ED							MOV		A,R5
   73:	  0052	94 01							SUBB		A,#01H
   74:	  0054	FD							MOV		R5,A
   75:	  0055	40 03							JC		Hex3DecSkip3
   76:	  0057	0C							INC		R4
   77:	  0058	80 EF							JMP		Hex3DecLoop3
   78:
   79:	  005A	EC		Hex3DecSkip3:	MOV		A,R4
   80:	  005B	C0 E0							PUSH		ACC		   ;onto stack
   81:	  005D	EF							MOV		A,R7
   82:	  005E	24 A0							ADD		A,#0A0H
   83:	  0060	FF							MOV		R7,A
   84:	  0061	EE							MOV		A,R6
   85:	  0062	34 86							ADDC		A,#86H
   86:	  0064	FE							MOV		R6,A
   87:	  0065	ED							MOV		A,R5
   88:	  0066	34 01							ADDC		A,#01H
   89:	  0068	FD							MOV		R5,A
   90:
   91:	  0069	7C 00		Hex2DecConv:	MOV		R4,#0
   92:	  006B	C3							CLR		C
   93:	  006C	EF		Hex2DecLoop1:	MOV		A,R7					    ;10000 (2710h)?
   94:	  006D	94 10							SUBB		A,#010H
   95:	  006F	FF							MOV		R7,A
   96:	  0070	EE							MOV		A,R6
   97:	  0071	94 27							SUBB		A,#27H

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

   98:	  0073	FE							MOV		R6,A
   99:	  0074	ED							MOV		A,R5
  100:	  0075	94 00							SUBB		A,#0
  101:	  0077	FD							MOV		R5,A
  102:	  0078	40 03							JC		Hex2DecSkip1
  103:	  007A	0C							INC		R4
  104:	  007B	80 EF							JMP		Hex2DecLoop1
  105:	  007D	EC		Hex2DecSkip1:	MOV		A,R4					     ;onto stack
  106:	  007E	C0 E0							PUSH		ACC
  107:	  0080	EF							MOV		A,R7
  108:	  0081	24 10							ADD		A,#010H
  109:	  0083	FF							MOV		R7,A
  110:	  0084	EE							MOV		A,R6
  111:	  0085	34 27							ADDC		A,#27H
  112:	  0087	FE							MOV		R6,A
  113:
  114:	  0088	C3							CLR		C
  115:	  0089	7C 00							MOV		R4,#0
  116:	  008B	EF		Hex2DecLoop2:	MOV		A,R7					     ;1000 (3E8h)?
  117:	  008C	94 E8							SUBB		A,#0E8H
  118:	  008E	FF							MOV		R7,A
  119:	  008F	EE							MOV		A,R6
  120:	  0090	94 03							SUBB		A,#03H
  121:	  0092	FE							MOV		R6,A
  122:	  0093	40 03							JC		Hex2DecSkip2
  123:	  0095	0C							INC		R4
  124:	  0096	80 F3							JMP		Hex2DecLoop2
  125:	  0098	EC		Hex2DecSkip2:	MOV		A,R4					      ;onto satck
  126:	  0099	C0 E0							PUSH		ACC
  127:	  009B	EF							MOV		A,R7
  128:	  009C	24 E8							ADD		A,#0E8H
  129:	  009E	FF							MOV		R7,A
  130:	  009F	EE							MOV		A,R6
  131:	  00A0	34 03							ADDC		A,#03H
  132:	  00A2	FE							MOV		R6,A
  133:
  134:	  00A3	C3							CLR		C
  135:	  00A4	7C 00							MOV		R4,#0
  136:	  00A6	EF		Hex2DecLoop3:	MOV		A,R7					      ;100 (64h)?
  137:	  00A7	94 64							SUBB		A,#064H
  138:	  00A9	FF							MOV		R7,A
  139:	  00AA	EE							MOV		A,R6
  140:	  00AB	94 00							SUBB		A,#0H
  141:	  00AD	FE							MOV		R6,A
  142:	  00AE	40 03							JC		Hex2DecSkip3
  143:	  00B0	0C							INC		R4
  144:	  00B1	80 F3							JMP		Hex2DecLoop3
  145:	  00B3	EC		Hex2DecSkip3:	MOV		A,R4					      ;onto stack
  146:	  00B4	C0 E0							PUSH		ACC
  147:	  00B6	EF							MOV		A,R7
  148:	  00B7	24 64							ADD		A,#064H
  149:	  00B9	FF							MOV		R7,A
  150:	  00BA	EE							MOV		A,R6
  151:	  00BB	34 00							ADDC		A,#0H
  152:	  00BD	FE							MOV		R6,A
  153:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

  154:	  00BE	C3							CLR		C
  155:	  00BF	7C 00							MOV		R4,#0
  156:	  00C1	EF		Hex2DecLoop4:	MOV		A,R7					      ;10 (0Ah)?
  157:	  00C2	94 0A							SUBB		A,#0AH
  158:	  00C4	FF							MOV		R7,A
  159:	  00C5	40 03							JC		Hex2DecSkip4
  160:	  00C7	0C							INC		R4
  161:	  00C8	80 F7							JMP		Hex2DecLoop4
  162:	  00CA	EC		Hex2DecSkip4:	MOV		A,R4					      ;onto stack
  163:	  00CB	C0 E0							PUSH		ACC
  164:	  00CD	24 0A							ADD		A,#0AH	              ;1
  165:
  166:	  00CF	EF							MOV		A,R7		      ;tens & ones in w R7
  167:	  00D0	24 0A							ADD		A,#0AH
  168:	  00D2	FF							MOV		R7,A
  169:	  00D3	D0 E0							POP		ACC
  170:	  00D5	C4							SWAP		A
  171:	  00D6	2F							ADD		A,R7
  172:	  00D7	FF							MOV		R7,A
  173:	  00D8	D0 E0							POP		ACC		      ;thousands & hundreds
				in R6
  174:	  00DA	FE							MOV		R6,A
  175:	  00DB	D0 E0							POP		ACC
  176:	  00DD	C4							SWAP		A
  177:	  00DE	2E							ADD		A,R6
  178:	  00DF	FE							MOV		R6,A
  179:	  00E0	D0 E0							POP		ACC		      ;tens thousands & hund
				reds thousands in R5
  180:	  00E2	FD							MOV		R5,A
  181:	  00E3	D0 E0							POP		ACC
  182:	  00E5	C4							SWAP		A
  183:	  00E6	2D							ADD		A,R5
  184:	  00E7	FD							MOV		R5,A
  185:	  00E8	D0 E0							POP		ACC		      ;milins & tens milions
				 in R4
  186:	  00EA	FC							MOV		R4,A
  187:	  00EB	D0 E0							POP		ACC
  188:	  00ED	C4							SWAP		A
  189:	  00EE	2C							ADD		A,R4
  190:	  00EF	FC							MOV		R4,A
  191:	  00F0	22							RET
  192:
  193:				;konversi desimal ke ASCHII
  194:				;nilai desimal di r4(msb),r5,r6,r7(lsb),hasil terletak di ram buffer 20h-28h
  195:				;note:numbers are in correct order after hex2dec conversion routine
  196:				;routine mengambil semua nomor desimal (4 bits dari 8 bit register) dan menambahnya dengan 0 ascii c
				ode character
  197:				;contoh : 15 => '0'+1 -> '1' , '0'+5 -> '5'
  198:	  00F1	E5 20		Dec2AsciiConv:				MOV		A,20H
  199:	  00F3	F8							MOV		R0,A		      ;pointer to lcd_1
  200:	  00F4	EC							MOV		A,R4
  201:	  00F5	54 F0							ANL		A,#0F0H
  202:	  00F7	C4							SWAP		A
  203:	  00F8	24 30							ADD		A,#'0'
  204:	  00FA	F6							MOV		@R0,A
  205:	  00FB	08							INC		R0

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 5



 Line  I  Addr  Code            Source

  206:	  00FC	EC							MOV		A,R4
  207:	  00FD	54 0F							ANL		A,#0FH
  208:	  00FF	24 30							ADD		A,#'0'
  209:	  0101	F6							MOV		@R0,A
  210:	  0102	08							INC		R0
  211:	  0103	ED							MOV		A,R5
  212:	  0104	54 F0							ANL		A,#0F0H
  213:	  0106	C4							SWAP		A
  214:	  0107	24 30							ADD		A,#'0'
  215:	  0109	F6							MOV		@R0,A
  216:	  010A	08							INC		R0
  217:	  010B	ED							MOV		A,R5
  218:	  010C	54 0F							ANL		A,#0FH
  219:	  010E	24 30							ADD		A,#'0'
  220:	  0110	F6							MOV		@R0,A
  221:	  0111	08							INC		R0
  222:	  0112	EE							MOV		A,R6
  223:	  0113	54 F0							ANL		A,#0F0H
  224:	  0115	C4							SWAP		A
  225:	  0116	24 30							ADD		A,#'0'
  226:	  0118	F6							MOV		@R0,A
  227:	  0119	08							INC		R0
  228:	  011A	EE							MOV		A,R6
  229:	  011B	54 0F							ANL		A,#0FH
  230:	  011D	24 30							ADD		A,#'0'
  231:	  011F	F6							MOV		@R0,A
  232:	  0120	08							INC		R0
  233:	  0121	EF							MOV		A,R7
  234:	  0122	54 F0							ANL		A,#0F0H
  235:	  0124	C4							SWAP		A
  236:	  0125	24 30							ADD		A,#'0'
  237:	  0127	F6							MOV		@R0,A
  238:	  0128	08							INC		R0
  239:	  0129	EF							MOV		A,R7
  240:	  012A	54 0F							ANL		A,#0FH
  241:	  012C	24 30							ADD		A,#'0'
  242:	  012E	F6							MOV		@R0,A
  243:	  012F	08							INC		R0		       ;put the end of strin
				g code
  244:	  0130	74 00							MOV		A,#0
  245:	  0132	F6							MOV		@R0,A
  246:	  0133	22							RET
  247:
  248:				END





                     register banks used:  ---

                     no errors




ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 6





	       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
CY				  BIT	      D7
DEC2ASCIICONV			  CODE	    00F1	 198
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
HEX2DECCONV			  CODE	    0069	  91
HEX2DECLOOP1			  CODE	    006C	  93
HEX2DECLOOP2			  CODE	    008B	 116
HEX2DECLOOP3			  CODE	    00A6	 136
HEX2DECLOOP4			  CODE	    00C1	 156
HEX2DECSKIP1			  CODE	    007D	 105
HEX2DECSKIP2			  CODE	    0098	 125
HEX2DECSKIP3			  CODE	    00B3	 145
HEX2DECSKIP4			  CODE	    00CA	 162
HEX3DECCONV			  CODE	    0000	  13
HEX3DECLOOP1			  CODE	    0003	  16
HEX3DECLOOP2			  CODE	    0026	  41
HEX3DECLOOP3			  CODE	    0049	  66
HEX3DECSKIP1			  CODE	    0014	  28
HEX3DECSKIP2			  CODE	    0037	  53
HEX3DECSKIP3			  CODE	    005A	  79
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

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 7



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
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
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 + -