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

📄 libfunc.lst

📁 protues仿真
💻 LST
字号:
   1               		.file	"LibFunc.c"
   2               		.arch atmega128
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  84               	.global	_Z9CopyNbytePvS_j
  86               	_Z9CopyNbytePvS_j:
   1:LibFunc.c     **** /*
   2:LibFunc.c     **** ;**************************************************************************************************
   3:LibFunc.c     **** ;*									Copyright (c) 2006 by JiaoJinXing. 
   4:LibFunc.c     **** ;*											All rights reserved.
   5:LibFunc.c     **** ;*
   6:LibFunc.c     **** ;*---- 文件信息 -----------------------------------------------------------------------------------
   7:LibFunc.c     **** ;* 文   件   名 : libfunc.c
   8:LibFunc.c     **** ;* 创   建   人 : 焦进星
   9:LibFunc.c     **** ;* 描        述 : 库函数文件
  10:LibFunc.c     **** ;*
  11:LibFunc.c     **** ;*---- 历史版本信息 -------------------------------------------------------------------------------
  12:LibFunc.c     **** ;* 日   期  : 2008年 12 月 15 日
  13:LibFunc.c     **** ;* 创 建 人  : 焦进星
  14:LibFunc.c     **** ;* 描   述  : 建立版本 V1.0.0
  15:LibFunc.c     **** ;*
  16:LibFunc.c     **** ;*---- 联系方式 -----------------------------------------------------------------------------------
  17:LibFunc.c     **** ;* Email    : wyoujtg@163.com
  18:LibFunc.c     **** ;* Web      : http://wyoujtg.blog.163.com  
  19:LibFunc.c     **** ;**************************************************************************************************
  20:LibFunc.c     **** ;*/
  21:LibFunc.c     **** 
  22:LibFunc.c     **** #include "minifs.h"
  23:LibFunc.c     **** 
  24:LibFunc.c     **** /*
  25:LibFunc.c     **** ;**************************************************************************************************
  26:LibFunc.c     **** ;* 函数名称 : CopyNbyte
  27:LibFunc.c     **** ;* 描    述 : 拷贝N字节
  28:LibFunc.c     **** ;* 输 	 入 : dest: 目的地, src: 源地址, nbyte: 字节数
  29:LibFunc.c     **** ;*        
  30:LibFunc.c     **** ;* 输 	 出 : 无
  31:LibFunc.c     **** ;**************************************************************************************************
  32:LibFunc.c     **** ;*/
  33:LibFunc.c     **** void CopyNbyte(void *Dest, void *Src, uint16 nbyte)
  34:LibFunc.c     **** {
  88               	.LM1:
  89               	/* prologue: frame size=0 */
  90               	/* prologue end (size=0) */
  91               	.LBB2:
  92               	.LBB3:
  35:LibFunc.c     **** 	uint16 i;
  36:LibFunc.c     **** 	uint8 *dest = (uint8 *)Dest;
  94               	.LM2:
  95 0000 DC01      		movw r26,r24
  37:LibFunc.c     **** 	uint8 *src = (uint8 *)Src;
  97               	.LM3:
  98 0002 FB01      		movw r30,r22
  99               	.L8:
  38:LibFunc.c     **** 		
  39:LibFunc.c     **** 	for (i = 0; i < nbyte; i++)
 101               	.LM4:
 102 0004 4115      		cp r20,__zero_reg__
 103 0006 5105      		cpc r21,__zero_reg__
 104 0008 29F0      		breq .L7
  40:LibFunc.c     **** 	{
  41:LibFunc.c     **** 		*dest++ = *src++;
 106               	.LM5:
 107 000a 8191      		ld r24,Z+
 108 000c 8D93      		st X+,r24
 110               	.LM6:
 111 000e 4150      		subi r20,lo8(-(-1))
 112 0010 5040      		sbci r21,hi8(-(-1))
 113 0012 F8CF      		rjmp .L8
 114               	.L7:
 115 0014 0895      		ret
 116               	.LBE3:
 117               	.LBE2:
 118               	/* epilogue: frame size=0 */
 119               	/* epilogue: noreturn */
 120               	/* epilogue end (size=0) */
 121               	/* function void CopyNbyte(void*, void*, uint16) size 11 (11) */
 132               	.global	_Z7IsEqualPvS_j
 134               	_Z7IsEqualPvS_j:
  42:LibFunc.c     **** 	}
  43:LibFunc.c     **** }
  44:LibFunc.c     **** 
  45:LibFunc.c     **** /*
  46:LibFunc.c     **** ;**************************************************************************************************
  47:LibFunc.c     **** ;* 函数名称 : IsEqual
  48:LibFunc.c     **** ;* 描    述 : 判断是否相等
  49:LibFunc.c     **** ;* 输 	 入 : a: a内容地址, b: b内容地址, nbyte: 字节数
  50:LibFunc.c     **** ;*        
  51:LibFunc.c     **** ;* 输 	 出 : TRUE OR FALSE
  52:LibFunc.c     **** ;**************************************************************************************************
  53:LibFunc.c     **** ;*/	
  54:LibFunc.c     **** uint8 IsEqual(void *A, void *B, uint16 nbyte)
  55:LibFunc.c     **** {
 136               	.LM7:
 137               	/* prologue: frame size=0 */
 138               	/* prologue end (size=0) */
 139               	.LBB4:
 140               	.LBB5:
  56:LibFunc.c     **** 	uint16 i;
  57:LibFunc.c     **** 	uint8 *a = (uint8 *)A;
 142               	.LM8:
 143 0016 DC01      		movw r26,r24
  58:LibFunc.c     **** 	uint8 *b = (uint8 *)B;
 145               	.LM9:
 146 0018 FB01      		movw r30,r22
  59:LibFunc.c     **** 	
  60:LibFunc.c     **** 	for (i = 0; i < nbyte; i++)
 148               	.LM10:
 149 001a 20E0      		ldi r18,lo8(0)
 150 001c 30E0      		ldi r19,hi8(0)
 151               	.L17:
 153               	.LM11:
 154 001e 2417      		cp r18,r20
 155 0020 3507      		cpc r19,r21
 156 0022 50F4      		brsh .L16
  61:LibFunc.c     **** 	{
  62:LibFunc.c     **** 		if (*a++ != *b++)
 158               	.LM12:
 159 0024 9191      		ld r25,Z+
 160 0026 8D91      		ld r24,X+
 161 0028 8917      		cp r24,r25
 162 002a 19F0      		breq .L12
  63:LibFunc.c     **** 		{
  64:LibFunc.c     **** 			return FALSE;
 164               	.LM13:
 165 002c 80E0      		ldi r24,lo8(0)
 166 002e 90E0      		ldi r25,hi8(0)
 167 0030 0895      		ret
 168               	.L12:
 170               	.LM14:
 171 0032 2F5F      		subi r18,lo8(-(1))
 172 0034 3F4F      		sbci r19,hi8(-(1))
 173 0036 F3CF      		rjmp .L17
 174               	.L16:
  65:LibFunc.c     **** 		}
  66:LibFunc.c     **** 	}
  67:LibFunc.c     **** 	return TRUE;
 176               	.LM15:
 177 0038 81E0      		ldi r24,lo8(1)
 178 003a 90E0      		ldi r25,hi8(1)
 179               	.LBE5:
 180               	.LBE4:
  68:LibFunc.c     **** }
 182               	.LM16:
 183 003c 0895      		ret
 184               	/* epilogue: frame size=0 */
 185 003e 0895      		ret
 186               	/* epilogue end (size=1) */
 187               	/* function uint8 IsEqual(void*, void*, uint16) size 21 (20) */
 197               	.global	_Z10ClearNbytePvj
 199               	_Z10ClearNbytePvj:
  69:LibFunc.c     **** 
  70:LibFunc.c     **** /*
  71:LibFunc.c     **** ;**************************************************************************************************
  72:LibFunc.c     **** ;* 函数名称 : ClearNbyte
  73:LibFunc.c     **** ;* 描    述 : 清除N字节
  74:LibFunc.c     **** ;* 输 	 入 : src: 源地址, nbyte: 字节数
  75:LibFunc.c     **** ;*        
  76:LibFunc.c     **** ;* 输 	 出 : 无
  77:LibFunc.c     **** ;**************************************************************************************************
  78:LibFunc.c     **** ;*/
  79:LibFunc.c     **** void ClearNbyte(void *Src, uint16 nbyte)
  80:LibFunc.c     **** {
 201               	.LM17:
 202               	/* prologue: frame size=0 */
 203               	/* prologue end (size=0) */
 204               	.LBB6:
 205               	.LBB7:
  81:LibFunc.c     **** 	uint16 i;
  82:LibFunc.c     **** 	uint8 *src = (uint8 *)Src;
 207               	.LM18:
 208 0040 FC01      		movw r30,r24
 209               	.L25:
  83:LibFunc.c     **** 	
  84:LibFunc.c     **** 	for (i = 0; i < nbyte; i++)
 211               	.LM19:
 212 0042 6115      		cp r22,__zero_reg__
 213 0044 7105      		cpc r23,__zero_reg__
 214 0046 21F0      		breq .L24
  85:LibFunc.c     **** 	{
  86:LibFunc.c     **** 		*src++ = 0x00;
 216               	.LM20:
 217 0048 1192      		st Z+,__zero_reg__
 219               	.LM21:
 220 004a 6150      		subi r22,lo8(-(-1))
 221 004c 7040      		sbci r23,hi8(-(-1))
 222 004e F9CF      		rjmp .L25
 223               	.L24:
 224 0050 0895      		ret
 225               	.LBE7:
 226               	.LBE6:
 227               	/* epilogue: frame size=0 */
 228               	/* epilogue: noreturn */
 229               	/* epilogue end (size=0) */
 230               	/* function void ClearNbyte(void*, uint16) size 9 (9) */
 236               		.text
 238               	Letext:
 239               	/* File "LibFunc.c": code   41 = 0x0029 (  40), prologues   0, epilogues   1 */
DEFINED SYMBOLS
                            *ABS*:00000000 LibFunc.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\Users\ADMINI~1\AppData\Local\Temp/cconaaaa.s:86     .text:00000000 _Z9CopyNbytePvS_j
C:\Users\ADMINI~1\AppData\Local\Temp/cconaaaa.s:134    .text:00000016 _Z7IsEqualPvS_j
C:\Users\ADMINI~1\AppData\Local\Temp/cconaaaa.s:199    .text:00000040 _Z10ClearNbytePvj
C:\Users\ADMINI~1\AppData\Local\Temp/cconaaaa.s:238    .text:00000052 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss

⌨️ 快捷键说明

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