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

📄 posutils.src

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 SRC
字号:
; .\out_sst89e564\posutils.SRC generated from: source\posutils.c
; COMPILER INVOKED BY:
;        C:\Keil\C51\BIN\C51.EXE source\posutils.c LARGE BROWSE ORDER NOAREGS DEBUG OBJECTEXTEND PRINT(.\posutils.lst) SRC(.\out_sst89e564\posutils.SRC)


NAME	POSUTILS

?PR?_bcd2hex?POSUTILS                    SEGMENT CODE 
?PR?_hex2bcd?POSUTILS                    SEGMENT CODE 
	EXTRN	CODE (?C?CLDPTR)
	EXTRN	CODE (?C?IMUL)
	EXTRN	CODE (?C?CLDOPTR)
	EXTRN	CODE (?C?CSTPTR)
	EXTRN	CODE (?C?CILDPTR)
	EXTRN	CODE (?C?CSTOPTR)
	EXTRN	CODE (?C?CILDOPTR)
	PUBLIC	_hex2bcd
	PUBLIC	_bcd2hex
; #include "posutils.h" 
; 
; /***************************************************************************
;   SUPPOSE dsp CONTAINS THE ASSCII ARRAY "12345F" AND WE EXECUTE THIS FUNCTION
;   THEN THE ARRAY  AT hex WILL CONTAIN 12H,34H, 5FH
; ****************************************************************************
; void DSP_2_HEX(unsigned char *dsp, unsigned char *hex, int count)
; {
;     int i;
; 
;     for (i = 0; i < count; i++)
;     {
;         hex[i] = ((dsp[i << 1] <= 0x39) ? dsp[i << 1] - 0x30
;                                        : dsp[i << 1] - 0x41 + 10);
;         hex[i] = hex[i] << 4;
;         hex[i] += ((dsp[(i << 1) + 1] <= 0x39) ? dsp[(i << 1) + 1] - 0x30
;                                        : dsp[(i << 1) + 1] - 0x41 + 10);
;     }
; }
; 
; /***************************************************************************
;  SUPPOSE HEX CONTAINS THREE BYTES:12H 34H, 5FH AND WE EXECUTE THIS FUNCTION
;  THEN dsp WILL CONTAIN ASCII BYTES "12345F"
; **************************************************************************
; void HEX_2_DSP(unsigned char *hex, unsigned char *dsp, int count)
; {
;     int i;
;     unsigned char ch;
;     
;     for(i = 0; i < count; i++)
;     {
;         ch = (hex[i] & 0xf0) >> 4;
;         dsp[i << 1] = (ch > 9) ? ch + 0x41 - 10 : ch + 0x30;
;         ch = hex[i] & 0xf;
;         dsp[(i << 1) + 1] = (ch > 9) ? ch + 0x41 - 10 : ch + 0x30;
;     }
; }
; 
; /*将两字节bcd码转换成hex码*/
; unsigned int bcd2hex(unsigned char *buf)

	RSEG  ?PR?_bcd2hex?POSUTILS
_bcd2hex:
	USING	0
			; SOURCE LINE # 40
;---- Variable 'buf?040' assigned to Register 'R1/R2/R3' ----
; {
			; SOURCE LINE # 41
; 	unsigned int temp;
; 	temp=(buf[0]>>4)*1000 + (buf[0]&0x0f)*100 + (buf[1]>>4)*10 + (buf[1]&0x0f);
			; SOURCE LINE # 43
	LCALL	?C?CLDPTR
	SWAP 	A
	ANL  	A,#0FH
	MOV  	R7,A
	MOV  	R6,#00H
	MOV  	R4,#03H
	MOV  	R5,#0E8H
	LCALL	?C?IMUL
	XCH  	A,R4
	MOV  	A,R6
	XCH  	A,R4
	XCH  	A,R5
	MOV  	A,R7
	XCH  	A,R5
	LCALL	?C?CLDPTR
	ANL  	A,#0FH
	MOV  	B,#064H
	MUL  	AB
	ADD  	A,R5
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,B
	MOV  	R4,A
	MOV  	DPTR,#01H
	LCALL	?C?CLDOPTR
	SWAP 	A
	ANL  	A,#0FH
	MOV  	B,#0AH
	MUL  	AB
	ADD  	A,R5
	MOV  	R7,A
	MOV  	A,B
	ADDC 	A,R4
	MOV  	R6,A
	MOV  	DPTR,#01H
	LCALL	?C?CLDOPTR
	ANL  	A,#0FH
	MOV  	R4,#00H
	ADD  	A,R7
	MOV  	R7,A
	MOV  	A,R4
	ADDC 	A,R6
	MOV  	R6,A
;---- Variable 'temp?041' assigned to Register 'R6/R7' ----
;     return(temp);
			; SOURCE LINE # 44
; }
			; SOURCE LINE # 45
?C0001:
	RET  	
; END OF _bcd2hex

; /***********************************************/
; /* 将整形数字转换成两字节bcd码放入 buf*/
; void hex2bcd(int hexnum, unsigned char *buf)

	RSEG  ?PR?_hex2bcd?POSUTILS
_hex2bcd:
	USING	0
			; SOURCE LINE # 48
;---- Variable 'hexnum?142' assigned to Register 'R6/R7' ----
;---- Variable 'buf?143' assigned to Register 'R1/R2/R3' ----
; {
			; SOURCE LINE # 49
; //	int data th, ha, te, on;
; 
; 	for(buf[0]=0; hexnum >= 1000; buf[0] += 0x10, hexnum -= 1000);
			; SOURCE LINE # 52
	CLR  	A
	LCALL	?C?CSTPTR
?C0002:
	CLR  	C
	MOV  	A,R7
	SUBB 	A,#0E8H
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#083H
	JC   	?C0005
	MOV  	A,#010H
	LCALL	?C?CILDPTR
	MOV  	A,#018H
	ADD  	A,R7
	MOV  	R7,A
	MOV  	A,#0FCH
	ADDC 	A,R6
	MOV  	R6,A
	SJMP 	?C0002
; 	for(        ; hexnum >= 100;  buf[0] += 0x01, hexnum -= 100);
			; SOURCE LINE # 53
?C0005:
	CLR  	C
	MOV  	A,R7
	SUBB 	A,#064H
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?C0006
	MOV  	A,#01H
	LCALL	?C?CILDPTR
	MOV  	A,#09CH
	ADD  	A,R7
	MOV  	R7,A
	MOV  	A,#0FFH
	ADDC 	A,R6
	MOV  	R6,A
	SJMP 	?C0005
?C0006:
; 	for(buf[1]=0; hexnum >= 10;   buf[1] += 0x10, hexnum -= 10);
			; SOURCE LINE # 54
	MOV  	DPTR,#01H
	CLR  	A
	LCALL	?C?CSTOPTR
?C0008:
	CLR  	C
	MOV  	A,R7
	SUBB 	A,#0AH
	MOV  	A,R6
	XRL  	A,#080H
	SUBB 	A,#080H
	JC   	?C0009
	MOV  	DPTR,#01H
	MOV  	A,#010H
	LCALL	?C?CILDOPTR
	MOV  	A,#0F6H
	ADD  	A,R7
	MOV  	R7,A
	MOV  	A,#0FFH
	ADDC 	A,R6
	MOV  	R6,A
	SJMP 	?C0008
?C0009:
; 	buf[1] += hexnum;
			; SOURCE LINE # 55
	MOV  	DPTR,#01H
	MOV  	A,R7
	LJMP 	?C?CILDOPTR
; END OF _hex2bcd

	END

⌨️ 快捷键说明

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