bfi (sm5 - asm)

給定數位 LSB 的位範圍,請將該位數放在任何位移的另一個數位中。

bfi dest[.mask], src0[.swizzle], src1[.swizzle], src2[.swizzle], src3[.swizzle]
項目 描述
dest
[in]結果的位址。
src0
[in]要從 src2取得的位欄位寬度。
src1
[in]取代 src3中位移的位移。
src2
[in]位取自的數位。
src3
[in]要取代位的數位。

備註

src0的 LSB 5 位提供位欄位寬度 (0-31) ,以從src2取得。

src1的 LSB 5 位提供位移 (0-31) ,以開始取代從 src3讀取的數位中的位。

Given width, offset:
                bitmask = (((1 << width)-1) << offset) & 0xffffffff
                dest = ((src2 << offset) & bitmask) | (src3 & ~bitmask)

此指令用於封裝整數或旗標。

本指示適用于下列著色器階段:

頂點 船體 網域 幾何形狀 像素 計算
X X X X X X

最小著色器模型

下列著色器模型中支援此指示:

著色器模型 支援
著色器模型 5
著色器模型 4.1
著色器模型 4
著色器模型 3 (DirectX HLSL)
著色器模型 2 (DirectX HLSL)
著色器模型 1 (DirectX HLSL)

著色器模型 5 元件 (DirectX HLSL)