匯編語言-移位指令


基本概念
移位操作指令:移位操作指令是一組經常使用的指令,屬於匯編語言邏輯指令中的一部分,它包括移位指令(含算術移位指令、邏輯移位指令),循環移位指令(含帶進位的循環移位指令),雙精度移位指令三大類。其功能為將目的操作數的所有位按操作符規定的方式移動1位或按寄存器CL規定的次數(0~255)移動,結果送入目的地址。目的操作數是8位(或16位)的寄存器數據或存儲器數據。

基本格式
格式為:xxx oper1,CL/1

移位次數只能是1或者存放在CL里面。

移位指令
一、算術移位指令
1、算術左移指令SAL
功能:左移一次,最低位補0,最高位送入CF標志位,如圖:



意義:左移n次,等於x2的n次冪。所以可用於有符號操作數做x2的n次冪運算。

2、算術右移指令SAR
功能:右移一次,最高位保持不變,最低位送入CF標志位,如圖:



意義:右移n次,等於/2的n次冪。所以可用於有符號操作數做/2的n次冪運算。

二、邏輯移位指令
1、邏輯左移指令SHL
功能:同SAL,如圖:



意義:同SAL

2、邏輯右移指令SHR
功能:右移一次,最高位補0.區別!最低位送入CF標志位。如圖:



意義:用於實現無符號數/2的n次冪操作。

三、循環移位指令
1、循環左移指令ROL
功能:左移一次,左移前的最高位送入最低位以及CF.如圖:



2、循環右移指令ROR
功能:右移一次,右移前的最低位送入最高位以及CF.如圖:



3、帶進位的循環左移指令RCL
功能:左移一次,左移前的最高位送入CF,CF的內容送入最低位.如圖:



4、帶進位的循環右移指令RCR
功能:右移一次,右移前的最低位送入CF,CF的內容送入最高位.如圖:



四、雙精度移位指令
1、雙精度左移指令SHLD
 

2、雙精度右移指令SHRD


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM