You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.0 KiB
42 lines
1.0 KiB
; Copyright 2002-2019 Intel Corporation.
|
|
;
|
|
; This software is provided to you as Sample Source Code as defined in the accompanying
|
|
; End User License Agreement for the Intel(R) Software Development Products ("Agreement")
|
|
; section 1.L.
|
|
;
|
|
; This software and the related documents are provided as is, with no express or implied
|
|
; warranties, other than those that are expressly stated in the License.
|
|
|
|
include asm_macros.inc
|
|
|
|
PROLOGUE
|
|
|
|
PUBLIC bsr_func
|
|
PUBLIC bsf_func
|
|
|
|
.code
|
|
|
|
; int bsr_func(int src) - this function returns the bit index of the
|
|
; most significant bit set. in case 'src' is zero, -1 is returned.
|
|
bsr_func PROC
|
|
BEGIN_STACK_FRAME
|
|
mov RETURN_REG, 0
|
|
not RETURN_REG
|
|
bsr RETURN_REG, PARAM1
|
|
END_STACK_FRAME
|
|
ret
|
|
bsr_func ENDP
|
|
|
|
; int bsf_func(int src) - this function returns the bit index of the
|
|
; least significant bit set. in case 'src' is zero, -1 is returned.
|
|
bsf_func PROC
|
|
BEGIN_STACK_FRAME
|
|
mov RETURN_REG, 0
|
|
not RETURN_REG
|
|
bsf RETURN_REG, PARAM1
|
|
END_STACK_FRAME
|
|
ret
|
|
bsf_func ENDP
|
|
|
|
end
|