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

📄 _gptrget4.s

📁 sdcc是为51等小型嵌入式cpu设计的c语言编译器支持数种不同类型的cpu
💻 S
字号:
; -------------------------------------------------------------------------;  _gptrget4.S - read four bytes pointed to by a generic pointer;; 	Written By	Raphael Neider <rneider AT web.de> (2005);;  This library is free software; you can redistribute it and/or;  modify it under the terms of the GNU Library General Public;  License as published by the Free Software Foundation; either;  version 2 of the License, or (at your option) any later version.;;  This library is distributed in the hope that it will be useful,;  but WITHOUT ANY WARRANTY; without even the implied warranty of;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU;  Library General Public License for more details.;;  You should have received a copy of the GNU Library General Public;  License along with this library; if not, write to the ;  Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;  Boston, MA  02111-1307  USA.;;  In other words, you are welcome to use, share and improve this program.;  You are forbidden to forbid anyone else to use, share and improve;  what you give them.   Help stamp out software-hoarding!;;  $Id: _gptrget4.S 4148 2006-05-01 20:47:12Z tecodev $;  ------------------------------------------------------------------------; calling conventions:;   3 byte generic pointer is passed in via (WREG STK00 STK01).;   The result is returned in (WREG (STK00 (STK01 (STK02)))).; ;   unsigned char _gptrget  (void *gptr);;   unsigned char _gptrget1 (void *gptr);;   unsigned int  _gptrget2 (void *gptr);;   void *        _gptrget3 (void *gptr);;   unsigned long _gptrget4 (void *gptr);; ;   void _gptrput  (void *ptr, unsigned char val);;   void _gptrput1 (void *ptr, unsigned char val);;   void _gptrput2 (void *ptr, unsigned int  val);;   void _gptrput3 (void *ptr, unsigned int  val);;   void _gptrput4 (void *ptr, unsigned long val);include macros.incinclude p16f_common.inc	global	__gptrget4	extern	__codeptrget1		CODE__gptrget4:	select_routine __dataptrget4, __codeptrget4	; invalid tag -- return 0x00000000	clrf	STK02	clrf	STK01	clrf	STK00	retlw	0x00__dataptrget4:	setup_fsr	movf	_INDF, W	movwf	STK02		; LSB in STK02	inc_fsr	movf	_INDF, W	movwf	STK01		; 2nd byte in STK01	inc_fsr	movf	_INDF, W	movwf	STK00		; 3rd byte in STK00	inc_fsr	movf	_INDF, W	; MSB in WREG	return__codeptrget4:	pagesel	__codeptrget1	; might reside in different page	call	__codeptrget1	movwf	STK02		; temporarily store LSB	incfsz	STK01,F	; increment low address byte	decf	STK00,F	; undo increment of high address byte if low byte did not overflow	incf	STK00,F	; increment high address byte	pagesel	__codeptrget1	; might reside in different page	call	__codeptrget1	movwf	STK03		; temporarily store 2nd byte	incfsz	STK01,F	; increment low address byte	decf	STK00,F	; undo increment of high address byte if low byte did not overflow	incf	STK00,F	; increment high address byte	pagesel	__codeptrget1	; might reside in different page	call	__codeptrget1	movwf	STK04		; temporarily store 3rd byte	incfsz	STK01,F	; increment low address byte	decf	STK00,F	; undo increment of high address byte if low byte did not overflow	incf	STK00,F	; increment high address byte	pagesel	__codeptrget1	; might reside in different page	call	__codeptrget1	movwf	STK05		; temporarily store MSB	movf	STK02, W	movwf	STK02		; LSB in STK02	movf	STK03, W	movwf	STK01		; 2nd byte in STK01	movf	STK04, W	movwf	STK00		; 3rd byte in STK00	movf	STK05, W	; MSB in WREG	return	END

⌨️ 快捷键说明

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