Тема: Rever 1.1
Показать сообщение отдельно

  #14  
Старый 01.04.2008, 18:54
ProTeuS
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,367
С нами: 11291486

Репутация: 2175


По умолчанию

мб

PHP код:
                public  sl_strrev
;
;
sl_strrev       proc   far
                push    ds
                push    si
                push    di
                push    ax
                push    cx
                pushf
                cld
;
; 
Init ptr to the start of the string
;
                
mov     si, es
                mov     ds
, si
                mov     si
, di
;
; 
Compute the length of the string:
;
                
mov     cx, 0ffffh
                mov     al
, 0
        repne   scasb
                neg     cx
                dec     cx
                dec     cx
                shr     cx
, 1                ;Only have to do half the bytes.
                
jcxz    StrRvsd
                dec     di                 
;Point at zero byte.
;
; 
Okay, swap the bytes in the string.
;
SwapBytes:      dec   di
                lodsb
                xchg    al
, [di]    ;Note: es=ds.
                
mov     (0-1)[si], al
                loop    SwapBytes
;
StrRvsd:        popf
                pop     cx
                pop     ax
                pop     di
                pop     si
                pop     ds
                ret
sl_strrev       endp 
 
Ответить с цитированием