rtrim.asm
来自「工欲善其事」· 汇编 代码 · 共 59 行
ASM
59 行
; #########################################################################
; --------------------------------------------------------
; This module has been optimised by Alexander Yackubtchik
; --------------------------------------------------------
.386
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive
.code
; ########################################################################
rtrim proc source:DWORD,dest:DWORD
push esi
push edi
mov esi, source
xor ecx, ecx ; zero ecx to use as counter
@@:
mov al, [esi]
inc esi
inc ecx ; get string length excluding zero
cmp al, 0 ; exit loop on zero
jne @B
lea esi, [esi-2] ; correct esi count
@@:
mov al, [esi]
dec esi
dec ecx
cmp al, 32 ; loop if space
je @B
cmp al, 9 ; loop if tab
je @B
cld ; read forward
inc ecx
mov esi, source
mov edi, dest
rep movsb
mov [edi-1], byte ptr 0
pop edi
pop esi
ret
rtrim endp
; ########################################################################
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?