?? strrchr.asm
字號:
page ,132
title strrchr - find last occurence of character in string
;***
;strrchr.asm - find last occurrence of character in string
;
; Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.
;
;Purpose:
; defines strrchr() - find the last occurrence of a given character
; in a string.
;
;*******************************************************************************
.xlist
include cruntime.inc
.list
page
;***
;char *strrchr(string, ch) - find last occurrence of ch in string
;
;Purpose:
; Finds the last occurrence of ch in string. The terminating
; null character is used as part of the search.
;
; Algorithm:
; char *
; strrchr (string, ch)
; char *string, ch;
; {
; char *start = string;
;
; while (*string++)
; ;
; while (--string != start && *string != ch)
; ;
; if (*string == ch)
; return(string);
; return(NULL);
; }
;
;Entry:
; char *string - string to search in
; char ch - character to search for
;
;Exit:
; returns a pointer to the last occurrence of ch in the given
; string
; returns NULL if ch does not occurr in the string
;
;Uses:
;
;Exceptions:
;
;*******************************************************************************
CODESEG
public strrchr
strrchr proc \
uses edi, \
string:ptr byte, \
chr:byte
mov edi,[string] ; di = string
xor eax,eax ; al=null byte
or ecx,-1 ; cx = -1
repne scasb ; find the null & count bytes
inc ecx ; cx=-byte count (with null)
neg ecx ; cx=+byte count (with null)
dec edi ; di points to terminal null
mov al,chr ; al=search byte
std ; count 'down' on string this time
repne scasb ; find that byte
inc edi ; di points to byte which stopped scan
cmp [edi],al ; see if we have a hit
je short returndi ; yes, point to byte
xor eax,eax ; no, return NULL
jmp short toend ; do return sequence
returndi:
mov eax,edi ; ax=pointer to byte
toend:
cld
ret ; _cdecl return
strrchr endp
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -