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

📄 memcpy.s

📁 linux下从网卡远程启动
💻 S
字号:
/* * Derived from the Hyperstone's library source code. * Modefied src in order to apply the -mgnu-param compiler option. * Copyright (C) 2002-2003 GDT, Yannis Mitsos <gmitsos@telecom.ntua.gr> *                              George Thanos <gthanos@telecom.ntua.gr> */    		.text	    .align   2	    .global  _memcpy;ENTRY(_memcpy)_memcpy:	    FRAME    L8, L3	    MOV      L7, L2                 # Save for return#*****************************# Perform byte copy if both# not on a word alignment#*****************************	    CMPBI    L2, 3                  # check word alignment            BNZ      mem_except	    CMPBI    L1, 3                  # check word alignment            BNZ      mem_except#*****************************# Copy Double,Word,Halfword,# then byte#*****************************DBL_LOOP:	    CMPI     L0, 8                  # Copy Doubles            BLT      DO_WORD            LDD.P    L1, L5            ADDI     L0, -8            DBR      DBL_LOOP            STD.P    L2, L5DO_WORD:	   CMPI      L0, 4                  # Copy leftover word           BLT       DO_HALF	   LDW.P     L1, L5           ADDI      L0, -4	   DBZ       DONE                   # Done if L0 is 0           STW.P     L2, L5DO_HALF:	   CMPI      L0, 2                  # Copy leftover byte           BLT       DO_BYTE           LDHU.N    L1, L5, 2           ADDI      L0, -2	   DBZ       DONE                   # Done if L0 is 0           STHU.N    L2, L5, 2DO_BYTE:	   CMPI      L0, 1                  # Copy leftover byte           BLT       DONE           LDBU.D    L1, L5, 0           STBU.D    L2, L5, 0DONE:                                       # Copy done	   MOV       L2, L7                 # Return pointer           RET       PC, L3#****************************# Byte memcpy#****************************mem_except:           DBR       L_5           MOVI      L6,0L_3:	   LDBS.D    L1, L5, 0              # Transfer the byte           ADDI      L6, 1           STBS.D    L2, L5, 0           ADDI      L2, 1           ADDI      L1, 1L_5:                                        # Loop test           CMP       L6, L0	   BST       L_3	   MOV       L2, L7                 # Return pointer	   RET       PC, L3	   .END

⌨️ 快捷键说明

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