strcmp.s

来自「linux下从网卡远程启动」· S 代码 · 共 77 行

S
77
字号
/* * 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  _strcmp;ENTRY(_strcmp)_strcmp:	    FRAME    L8,L2	    CMPBI    L1, 3        # check for word alignment	    BNZ      str_except	    CMPBI    L0, 3        # check for word alignment	    BNZ      str_exceptstart:	    LDD.P    L1, L4       # post inc mode	    LDD.P    L0, L6       # post inc mode            CMPBI    L4, ANYBZ            BE       correct1            CMP      L4, L6            BNE      correct1            CMP      L5, L7            BNE      correct            CMPBI    L5, ANYBZ            BE       correct            CMPBI    L6, ANYBZ            BE       correct1            CMPBI    L7, ANYBZ            BNE      startcorrect:    MASK     L4, L5, 0xff000000	    MASK     L6, L7, 0xff000000            CMP      L4, L6            BNE      Exit            SHLI     L5, 8            CMPI     L4, 0            DBNE     correct            SHLI     L7, 8            MOV      L1, L4            RET      PC, L2Exit:       SUB      L4, L6       # Subtract chars            SARI     L4, 24            MOV      L1, L4            RET      PC, L2correct1:   MASK     L5, L4, 0xff000000	    MASK     L7, L6, 0xff000000            CMP      L5, L7            BNE      Exit1            SHLI     L4, 8            CMPI     L5, 0            DBNE     correct1            SHLI     L6, 8            MOV      L1, L5            RET      PC, L2Exit1:      SUB      L5, L7       # Subtract chars            SARI     L5, 24            MOV      L1, L5            RET      PC, L2testzero:   CMPI     L4, 0            BE       L_5str_except:	    LDBU.N   L1, L4, 1    # Load *s1, compare bytes	    LDBU.N   L0, L5, 1    # Load *s2, compare bytes            CMP      L4, L5	    BE       testzero	    SUB      L4, L5       # Subtract charsL_5:        MOV      L1, L4	    RET      PC, L2	    .END

⌨️ 快捷键说明

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