8086邏輯移位指令SHL和SHR

2021-09-28 18:48:35 字數 425 閱讀 1786

shl邏輯左移指令

shl oprd m;把運算元oprd左移m位,m為位移次數,為1或為cl(位移超過1次用cl表示)
;每移動一位右邊用0補足一位,移出的最高位進入cf(最後移出的一位寫入cf)
mov al,00010011b ;13h  00010011b 

shl al,1 ;把al左移1位,移出的最高位0進入cf,右邊0補足1位   0 00100110b 

mov al,00001111b ;0fh

mov cl,4 ;左移4位            0000 1111b 

shl al,cl;  11110000b 最後移出的0寫入cf

shr邏輯右移指令

shr oprd m ;右移m位 將最後移出的一位寫入cf,最高位用0補足

邏輯運算指令和移位指令

and xortest shlsal rolrcl ornot shrsar rorrcr and,or xor 和 test都是雙位元組操作指令,運算元的定址方式的規定與算術運算指令相同.not是單位元組操作指令,不允許使用立即數.邏輯運算均是按位進行操作,真值表如下 and 位與 or 位或 x...

算術移位和邏輯移位

算術移位和邏輯移位 unsigned int i 8 int main 上面的變數i是採用邏輯移位還是算術移位呢?邏輯移位,簡單理解就是物理上按位進行的左右移動,兩頭用0進行補充,不關心數值的符號問題 算術移位,同樣也是物理上按位進行的左右移動,兩頭用0進行補充,但必須確保符號位不改變 但我們好奇的...

算術移位和邏輯移位

算術移位和邏輯移位 unsigned int i 8 int main 上面的變數i是採用邏輯移位還是算術移位呢?邏輯移位,簡單理解就是物理上按位進行的左右移動,兩頭用0進行補充,不關心數值的符號問題 算術移位,同樣也是物理上按位進行的左右移動,兩頭用0進行補充,但必須確保符號位不改變 但我們好奇的...