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

📄 main.asm

📁 An applicaion that utilize a fingerprint scanner to turn off the PC
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;  ASM code generated by mikroVirtualMachine for PIC - V. 8.0.0.0
;  Date/Time: 7/20/2008 5:30:50 PM
;  Info: http://www.mikroe.com


; ADDRESS	OPCODE	ASM
; ----------------------------------------------
$0000	$2BEA			GOTO	_main
$0004	$	_Delay_1us:
;delays.c,7 :: 		void Delay_1us() {
;delays.c,8 :: 		Delay_us(1);
$0004	$0000			NOP
$0005	$0000			NOP
;delays.c,9 :: 		}
$0006	$0008			RETURN
$0007	$	_Delay_5500us:
;delays.c,31 :: 		void Delay_5500us() {
;delays.c,32 :: 		Delay_us(5500);
$0007	$300F			MOVLW	15
$0008	$1303			BCF	STATUS, RP1
$0009	$1283			BCF	STATUS, RP0
$000A	$00FB			MOVWF	STACK_11
$000B	$30FF			MOVLW	255
$000C	$00FA			MOVWF	STACK_10
$000D	$0BFB			DECFSZ	STACK_11, F
$000E	$2810			GOTO	$+2
$000F	$2813			GOTO	$+4
$0010	$0BFA			DECFSZ	STACK_10, F
$0011	$2810			GOTO	$-1
$0012	$280D			GOTO	$-5
$0013	$303E			MOVLW	62
$0014	$00FA			MOVWF	STACK_10
$0015	$0BFA			DECFSZ	STACK_10, F
$0016	$2815			GOTO	$-1
;delays.c,33 :: 		}
$0017	$0008			RETURN
$0018	$	_Delay_50us:
;delays.c,19 :: 		void Delay_50us() {
;delays.c,20 :: 		Delay_us(50);
$0018	$3021			MOVLW	33
$0019	$1303			BCF	STATUS, RP1
$001A	$1283			BCF	STATUS, RP0
$001B	$00FA			MOVWF	STACK_10
$001C	$0BFA			DECFSZ	STACK_10, F
$001D	$281C			GOTO	$-1
;delays.c,21 :: 		}
$001E	$0008			RETURN
$001F	$	_Lcd_Cmd:
$001F	$1303			BCF	STATUS, RP1
$0020	$1283			BCF	STATUS, RP0
$0021	$0820			MOVF	LCD_port_address, 0
$0022	$0084			MOVWF	FSR
$0023	$0857			MOVF	FARG_Lcd_Cmd+0, 0
$0024	$1903			BTFSC	STATUS, Z
$0025	$2826			GOTO	L_Lcd_Cmd_0
$0026	$	L_Lcd_Cmd_0:
$0026	$1180			BCF	INDF, ___ENABLE
$0027	$1100			BCF	INDF, ___RS
$0028	$1380			BCF	INDF, ___DB7
$0029	$1300			BCF	INDF, ___DB6
$002A	$1280			BCF	INDF, ___DB5
$002B	$1200			BCF	INDF, ___DB4
$002C	$1BD7			BTFSC	FARG_Lcd_Cmd+0, 7
$002D	$1780			BSF	INDF, ___DB7
$002E	$1B57			BTFSC	FARG_Lcd_Cmd+0, 6
$002F	$1700			BSF	INDF, ___DB6
$0030	$1AD7			BTFSC	FARG_Lcd_Cmd+0, 5
$0031	$1680			BSF	INDF, ___DB5
$0032	$1A57			BTFSC	FARG_Lcd_Cmd+0, 4
$0033	$1600			BSF	INDF, ___DB4
$0034	$0821			MOVF	LCD_cmd_status, 0
$0035	$1903			BTFSC	STATUS, Z
$0036	$2839			GOTO	L_Lcd_Cmd_1
$0037	$1100			BCF	INDF, ___RS
$0038	$283A			GOTO	L_Lcd_Cmd_2
$0039	$	L_Lcd_Cmd_1:
$0039	$1500			BSF	INDF, ___RS
$003A	$	L_Lcd_Cmd_2:
$003A	$1580			BSF	INDF, ___ENABLE
$003B	$2004			CALL	_Delay_1us
$003C	$0857			MOVF	FARG_Lcd_Cmd+0, 0
$003D	$1903			BTFSC	STATUS, Z
$003E	$283F			GOTO	L_Lcd_Cmd_3
$003F	$	L_Lcd_Cmd_3:
$003F	$1180			BCF	INDF, ___ENABLE
$0040	$1100			BCF	INDF, ___RS
$0041	$1380			BCF	INDF, ___DB7
$0042	$1300			BCF	INDF, ___DB6
$0043	$1280			BCF	INDF, ___DB5
$0044	$1200			BCF	INDF, ___DB4
$0045	$19D7			BTFSC	FARG_Lcd_Cmd+0, 3
$0046	$1780			BSF	INDF, ___DB7
$0047	$1957			BTFSC	FARG_Lcd_Cmd+0, 2
$0048	$1700			BSF	INDF, ___DB6
$0049	$18D7			BTFSC	FARG_Lcd_Cmd+0, 1
$004A	$1680			BSF	INDF, ___DB5
$004B	$1857			BTFSC	FARG_Lcd_Cmd+0, 0
$004C	$1600			BSF	INDF, ___DB4
$004D	$0821			MOVF	LCD_cmd_status, 0
$004E	$1903			BTFSC	STATUS, Z
$004F	$2852			GOTO	L_Lcd_Cmd_4
$0050	$1100			BCF	INDF, ___RS
$0051	$2853			GOTO	L_Lcd_Cmd_5
$0052	$	L_Lcd_Cmd_4:
$0052	$1500			BSF	INDF, ___RS
$0053	$	L_Lcd_Cmd_5:
$0053	$1580			BSF	INDF, ___ENABLE
$0054	$2004			CALL	_Delay_1us
$0055	$1180			BCF	INDF, ___ENABLE
$0056	$0821			MOVF	LCD_cmd_status, 0
$0057	$1903			BTFSC	STATUS, Z
$0058	$285B			GOTO	L_Lcd_Cmd_6
$0059	$2007			CALL	_Delay_5500us
$005A	$285C			GOTO	L_Lcd_Cmd_7
$005B	$	L_Lcd_Cmd_6:
$005B	$2018			CALL	_Delay_50us
$005C	$	L_Lcd_Cmd_7:
$005C	$0008			RETURN
$005D	$	_Determine_Checksum_of_Data_frame:
;main.c,112 :: 		void Determine_Checksum_of_Data_frame()
;main.c,115 :: 		^ data_frame[2]
$005D	$1303			BCF	STATUS, RP1
$005E	$1283			BCF	STATUS, RP0
$005F	$0824			MOVF	_data_frame+2, 0
$0060	$0623			XORWF	_data_frame+1, 0
$0061	$00A8			MOVWF	_data_frame+6
;main.c,116 :: 		^ data_frame[3]
$0062	$0825			MOVF	_data_frame+3, 0
$0063	$06A8			XORWF	_data_frame+6, 1
;main.c,117 :: 		^ data_frame[4]
$0064	$0826			MOVF	_data_frame+4, 0
$0065	$06A8			XORWF	_data_frame+6, 1
;main.c,118 :: 		^ data_frame[5];
$0066	$0827			MOVF	_data_frame+5, 0
$0067	$06A8			XORWF	_data_frame+6, 1
;main.c,119 :: 		}
$0068	$0008			RETURN
$0069	$	_Usart_Write:
$0069	$	L_Usart_Write_3:
$0069	$3000			MOVLW	0
$006A	$1303			BCF	STATUS, RP1
$006B	$1683			BSF	STATUS, RP0
$006C	$1898			BTFSC	TXSTA, 1
$006D	$3001			MOVLW	1
$006E	$00F1			MOVWF	STACK_1
$006F	$0871			MOVF	STACK_1, 0
$0070	$3A00			XORLW	0
$0071	$1D03			BTFSS	STATUS, Z
$0072	$2875			GOTO	L_Usart_Write_4
$0073	$0000			NOP
$0074	$2869			GOTO	L_Usart_Write_3
$0075	$	L_Usart_Write_4:
$0075	$1283			BCF	STATUS, RP0
$0076	$0854			MOVF	FARG_Usart_Write+0, 0
$0077	$0099			MOVWF	TXREG
$0078	$0008			RETURN
$0079	$	_Clear_Buffer_Registers:
;main.c,39 :: 		void Clear_Buffer_Registers()
;main.c,41 :: 		data_frame[0] = 0;
$0079	$1303			BCF	STATUS, RP1
$007A	$1283			BCF	STATUS, RP0
$007B	$01A2			CLRF	_data_frame, 1
;main.c,42 :: 		data_frame[1] = 0;
$007C	$01A3			CLRF	_data_frame+1, 1
;main.c,43 :: 		data_frame[2] = 0;
$007D	$01A4			CLRF	_data_frame+2, 1
;main.c,44 :: 		data_frame[3] = 0;
$007E	$01A5			CLRF	_data_frame+3, 1
;main.c,45 :: 		data_frame[4] = 0;
$007F	$01A6			CLRF	_data_frame+4, 1
;main.c,46 :: 		data_frame[5] = 0;
$0080	$01A7			CLRF	_data_frame+5, 1
;main.c,47 :: 		data_frame[6] = 0;
$0081	$01A8			CLRF	_data_frame+6, 1
;main.c,48 :: 		data_frame[7] = 0;
$0082	$01A9			CLRF	_data_frame+7, 1
;main.c,49 :: 		}
$0083	$0008			RETURN
$0084	$	_Usart_Read:
$0084	$1303			BCF	STATUS, RP1
$0085	$1283			BCF	STATUS, RP0
$0086	$081A			MOVF	RCREG, 0
$0087	$00D4			MOVWF	Usart_Read_tmp_L0
$0088	$1C98			BTFSS	RCSTA, 1
$0089	$288C			GOTO	L_Usart_Read_2
$008A	$1218			BCF	RCSTA, 4
$008B	$1618			BSF	RCSTA, 4
$008C	$	L_Usart_Read_2:
$008C	$0854			MOVF	Usart_Read_tmp_L0, 0
$008D	$00F0			MOVWF	STACK_0
$008E	$0008			RETURN
$008F	$	_Lcd_Chr_CP:
$008F	$1303			BCF	STATUS, RP1
$0090	$1283			BCF	STATUS, RP0
$0091	$01A1			CLRF	LCD_cmd_status, 1
$0092	$0854			MOVF	FARG_Lcd_Chr_CP+0, 0
$0093	$00D7			MOVWF	FARG_Lcd_Cmd+0
$0094	$201F			CALL	_Lcd_Cmd
$0095	$3001			MOVLW	1
$0096	$00A1			MOVWF	LCD_cmd_status
$0097	$0008			RETURN
$0098	$	_EEprom_read:
$0098	$1303			BCF	STATUS, RP1
$0099	$1283			BCF	STATUS, RP0
$009A	$0854			MOVF	FARG_EEprom_read+0, 0
$009B	$1703			BSF	STATUS, RP1
$009C	$008D			MOVWF	EEADR
$009D	$1683			BSF	STATUS, RP0
$009E	$138C			BCF	EECON1, 7
$009F	$140C			BSF	EECON1, 0
$00A0	$1283			BCF	STATUS, RP0
$00A1	$080C			MOVF	EEDATA, 0
$00A2	$00F0			MOVWF	STACK_0
$00A3	$0008			RETURN
$00A4	$	_Lcd_Chr:
$00A4	$28B6			GOTO	L_Lcd_Chr_8
$00A5	$	L_Lcd_Chr_10:
$00A5	$3080			MOVLW	128
$00A6	$1303			BCF	STATUS, RP1
$00A7	$1283			BCF	STATUS, RP0
$00A8	$00D4			MOVWF	FARG_Lcd_Chr+0
$00A9	$28C9			GOTO	L_Lcd_Chr_9
$00AA	$	L_Lcd_Chr_11:
$00AA	$30C0			MOVLW	192
$00AB	$00D4			MOVWF	FARG_Lcd_Chr+0
$00AC	$28C9			GOTO	L_Lcd_Chr_9
$00AD	$	L_Lcd_Chr_12:
$00AD	$3094			MOVLW	148
$00AE	$00D4			MOVWF	FARG_Lcd_Chr+0
$00AF	$28C9			GOTO	L_Lcd_Chr_9
$00B0	$	L_Lcd_Chr_13:
$00B0	$30D4			MOVLW	212
$00B1	$00D4			MOVWF	FARG_Lcd_Chr+0
$00B2	$28C9			GOTO	L_Lcd_Chr_9
$00B3	$	L_Lcd_Chr_14:
$00B3	$3080			MOVLW	128
$00B4	$00D4			MOVWF	FARG_Lcd_Chr+0
$00B5	$28C9			GOTO	L_Lcd_Chr_9
$00B6	$	L_Lcd_Chr_8:
$00B6	$1303			BCF	STATUS, RP1
$00B7	$1283			BCF	STATUS, RP0
$00B8	$0854			MOVF	FARG_Lcd_Chr+0, 0
$00B9	$3A01			XORLW	1
$00BA	$1903			BTFSC	STATUS, Z
$00BB	$28A5			GOTO	L_Lcd_Chr_10
$00BC	$0854			MOVF	FARG_Lcd_Chr+0, 0
$00BD	$3A02			XORLW	2
$00BE	$1903			BTFSC	STATUS, Z
$00BF	$28AA			GOTO	L_Lcd_Chr_11
$00C0	$0854			MOVF	FARG_Lcd_Chr+0, 0
$00C1	$3A03			XORLW	3
$00C2	$1903			BTFSC	STATUS, Z
$00C3	$28AD			GOTO	L_Lcd_Chr_12
$00C4	$0854			MOVF	FARG_Lcd_Chr+0, 0
$00C5	$3A04			XORLW	4
$00C6	$1903			BTFSC	STATUS, Z
$00C7	$28B0			GOTO	L_Lcd_Chr_13
$00C8	$28B3			GOTO	L_Lcd_Chr_14
$00C9	$	L_Lcd_Chr_9:
$00C9	$0355			DECF	FARG_Lcd_Chr+1, 0
$00CA	$00F0			MOVWF	STACK_0
$00CB	$0854			MOVF	FARG_Lcd_Chr+0, 0
$00CC	$07F0			ADDWF	STACK_0, 1
$00CD	$0870			MOVF	STACK_0, 0
$00CE	$00D4			MOVWF	FARG_Lcd_Chr+0
$00CF	$3001			MOVLW	1
$00D0	$00A1			MOVWF	LCD_cmd_status
$00D1	$0870			MOVF	STACK_0, 0
$00D2	$00D7			MOVWF	FARG_Lcd_Cmd+0
$00D3	$201F			CALL	_Lcd_Cmd
$00D4	$01A1			CLRF	LCD_cmd_status, 1
$00D5	$0856			MOVF	FARG_Lcd_Chr+2, 0
$00D6	$00D7			MOVWF	FARG_Lcd_Cmd+0
$00D7	$201F			CALL	_Lcd_Cmd
$00D8	$3001			MOVLW	1
$00D9	$00A1			MOVWF	LCD_cmd_status
$00DA	$0008			RETURN
$00DB	$	_Mul_16x16_S:
$00DB	$1303			BCF	STATUS, RP1
$00DC	$1283			BCF	STATUS, RP0
$00DD	$01FB			CLRF	STACK_11
$00DE	$01FA			CLRF	STACK_10
$00DF	$01F9			CLRF	STACK_9
$00E0	$3080			MOVLW	128
$00E1	$00F8			MOVWF	STACK_8
$00E2	$01FD			CLRF	STACK_13
$00E3	$1FF1			BTFSS	STACK_1, 7
$00E4	$28EB			GOTO	$+7
$00E5	$09F1			COMF	STACK_1, F
$00E6	$09F0			COMF	STACK_0, F
$00E7	$0AF0			INCF	STACK_0, F
$00E8	$1903			BTFSC	STATUS, Z
$00E9	$0AF1			INCF	STACK_1, F
$00EA	$0AFD			INCF	STACK_13, F
$00EB	$1FF5			BTFSS	STACK_5, 7
$00EC	$28F3			GOTO	$+7
$00ED	$09F5			COMF	STACK_5, F
$00EE	$09F4			COMF	STACK_4, F
$00EF	$0AF4			INCF	STACK_4, F
$00F0	$1903			BTFSC	STATUS, Z
$00F1	$0AF5			INCF	STACK_5, F
$00F2	$0AFD			INCF	STACK_13, F
$00F3	$0CF1			RRF	STACK_1, F
$00F4	$0CF0			RRF	STACK_0, F
$00F5	$1C03			BTFSS	STATUS, C
$00F6	$2900			GOTO	$+10
$00F7	$0874			MOVF	STACK_4, W
$00F8	$07F9			ADDWF	STACK_9, F
$00F9	$0875			MOVF	STACK_5, W
$00FA	$1803			BTFSC	STATUS, C
$00FB	$0F75			INCFSZ	STACK_5, W
$00FC	$07FA			ADDWF	STACK_10, F
$00FD	$1803			BTFSC	STATUS, C
$00FE	$0AFB			INCF	STACK_11, F
$00FF	$1003			BCF	STATUS, C
$0100	$1FF0			BTFSS	STACK_0, 7
$0101	$2908			GOTO	$+7
$0102	$0874			MOVF	STACK_4, W
$0103	$07FA			ADDWF	STACK_10, F
$0104	$1803			BTFSC	STATUS, C
$0105	$0AFB			INCF	STACK_11, F
$0106	$0875			MOVF	STACK_5, W
$0107	$07FB			ADDWF	STACK_11, F
$0108	$0CFB			RRF	STACK_11, F
$0109	$0CFA			RRF	STACK_10, F
$010A	$0CF9			RRF	STACK_9, F
$010B	$0CF8			RRF	STACK_8, F
$010C	$1C03			BTFSS	STATUS, C
$010D	$28F3			GOTO	$-26
$010E	$1C7D			BTFSS	STACK_13, 0
$010F	$291B			GOTO	$+12
$0110	$09FB			COMF	STACK_11, F
$0111	$09FA			COMF	STACK_10, F
$0112	$09F9			COMF	STACK_9, F
$0113	$09F8			COMF	STACK_8, F
$0114	$0AF8			INCF	STACK_8, F
$0115	$1903			BTFSC	STATUS, Z
$0116	$0AF9			INCF	STACK_9, F
$0117	$1903			BTFSC	STATUS, Z
$0118	$0AFA			INCF	STACK_10, F
$0119	$1903			BTFSC	STATUS, Z
$011A	$0AFB			INCF	STACK_11, F
$011B	$087B			MOVF	STACK_11, W
$011C	$00F3			MOVWF	STACK_3
$011D	$087A			MOVF	STACK_10, W
$011E	$00F2			MOVWF	STACK_2
$011F	$0879			MOVF	STACK_9, W
$0120	$00F1			MOVWF	STACK_1
$0121	$0878			MOVF	STACK_8, W
$0122	$00F0			MOVWF	STACK_0
$0123	$0000			NOP
$0124	$0008			RETURN
$0125	$	_Construct_Scanner_Command:
;main.c,121 :: 		void Construct_Scanner_Command()
;main.c,123 :: 		data_frame[0] = header;
$0125	$30F5			MOVLW	245
$0126	$1303			BCF	STATUS, RP1
$0127	$1283			BCF	STATUS, RP0
$0128	$00A2			MOVWF	_data_frame
;main.c,124 :: 		data_frame[5] = 0;
$0129	$01A7			CLRF	_data_frame+5, 1
;main.c,125 :: 		data_frame[7] = header;
$012A	$30F5			MOVLW	245
$012B	$00A9			MOVWF	_data_frame+7
;main.c,126 :: 		Determine_Checksum_of_Data_frame();
$012C	$205D			CALL	_Determine_Checksum_of_Data_frame
;main.c,127 :: 		}
$012D	$0008			RETURN
$012E	$	_Transmit_Command_to_Scanner:
;main.c,60 :: 		void Transmit_Command_to_Scanner()
;main.c,62 :: 		count = 0;
$012E	$1303			BCF	STATUS, RP1
$012F	$1283			BCF	STATUS, RP0

⌨️ 快捷键说明

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