<form id="dlljd"></form>
        <address id="dlljd"><address id="dlljd"><listing id="dlljd"></listing></address></address>

        <em id="dlljd"><form id="dlljd"></form></em>

          <address id="dlljd"></address>
            <noframes id="dlljd">

              聯系我們 - 廣告服務 - 聯系電話:
              您的當前位置: > 關注 > > 正文

              進位標志位中的數值被丟棄?匯編SHL指令和SHR指令

              來源:CSDN 時間:2023-03-06 08:08:01

              SHL指令


              (資料圖片僅供參考)

              SHL指令使目的操作數邏輯左移一位,最低位用0填充。最高位移入進位標志位,而進位標志位中原來的數值被丟棄。 若將1100 1111左移1位,該數就變為 1001 1110

              例如: BL左移一位。最高位復制到進位標志位,最低位填充0:

              mov bl, 8FH              ; BL = 10001111bshi bl, 1        ; CF = 1, BL = 00011110b

              當一個數多次進行左移時,進位標志位保存的是最后移出最高有效位(MSB)的數值。

              mov al, 10000000bshi al, 2                   ; CF = 0, AL = 00000000b

              步驟: 1.將一個寄存器或者內存單元中過的數據向左移動bit位。 2.將溢出的這一位放到CF中。 3.最低位用0補充。

              位元乘法

              數值進行左移即行了位元乘法。 任何操作數左移 n 位,將該數乘以 2n。

              例如,十進制數 10 左移兩位,其結果與10 * 2n相同。

              mov al, 10      ; 00001010 shl dl ,2       ; 00101000

              SHR指令

              SHR指令使目的操作數邏輯右移一位,最高位用0填充。最低位置復制到進位標志位,而進位標位中原來的數值被丟棄。

              例如: AL中的最低位0被復制到進位標志位,而AL中的最高位用0填充。

              mov al, 0D0H       ; aL = 11010000bshr al, 1   ; aL = 01101000b, CF = 0

              在多位移操作中,最后一個移出位0的數值進入進位標志位。

              mov al, 00000010bshr al, 2                        ; AL = 00000000b, CF = 1

              總結: 當一個數多次進行右移時,進位標志位保存的是最后移出最低有效位的數值。

              責任編輯:

              標簽:

              相關推薦:

              精彩放送:

              新聞聚焦
              Top 中文字幕在线观看亚洲日韩