1. 程式人生 > >彙編 shl和shr指令的使用

彙編 shl和shr指令的使用

shl和shr是邏輯移位指令。

shl是邏輯左移指令,它的功能為:

(1)將一個暫存器或記憶體單元中的資料向左移位;

(2)將最後移出的一位寫入CF中;

(3)最低位用0補充。

指令:
mov al,01001000b

shl al,1 ;將al中資料左移一位

執行後(al)=10010000b,CF=0。

注意:

如果移動位數大於1時,必須將移動位數放在cl中。

比如,指令:

mov al,01010001b

mov cl,3

shl al,cl

執行後(al)=10001000b,因為最後移出的一位是0,所以CF=0。

shr是邏輯右移指令,它和shl所進行的操作剛好相反。

相關推薦

彙編 shlshr指令的使用

shl和shr是邏輯移位指令。 shl是邏輯左移指令,它的功能為: (1)將一個暫存器或記憶體單元中的資料向左移位; (2)將最後移出的一位寫入CF中; (3)最低位用0補充。 指令: mov al,01001000b shl al,1 ;將al中資料左移一位 執行後(

SHLSHR指令的區別

SHL指令 假設 EAX=00000001 SHL EAX,0x2 將EAX中的數向左移兩位,相當於 EAX中數的十進位制是1,乘以2^2,等於4 所以結果EAX=00000004 SHR指令 假設 EAX=00000001 SHR EAX,0x2 將EAX中的數向左

ARM彙編:左移shl、右移shr指令用法!

       ARM彙編:左移shl、右移shr指令用法 shl和shr是邏輯移位指令。 1.shl是邏輯左移指令,它的功能為: (1)將一個暫存器或記憶體單元中的資料向左移位; (2)將最後移出的一位寫入CF中; (3)最低位用0補充。 指令: mov al,0100

Debug彙編編譯器masm對指令的不同處理

我們在Debug和源程式中寫入同樣形式的指令 : "mov al,[0]","mov bl,[1]","mov cl,[2]","mov dl,[3]",但Debug和編譯器對這些指令中的"[idata]"卻有不同的解釋。Debug將它解釋為"[idata]"是一個記憶體單元,"idata"是記憶體單元的偏

彙編中EnterLeave指令

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

ARM彙編中LDR偽指令LDR指令

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

ARM彙編:MRSMSR指令

                        ARM彙編:MRS和MSR指令 ARM中有兩條指令用於在狀態暫存器和通用暫存器之間傳送資料。 一:下面先來說說狀態暫存器

彙編實驗一 檢視CPU記憶體,用機器指令組合語言指令程式設計

在裝完DosBox環境之後,就可以用debug模式進行彙編指令的程式設計了。 實驗內容:      首先用a指令進行資料的儲存,然後用t命令進行除錯。     可以發現ax,bx在不同的命令下發

ARM彙編:載入儲存指令集(六大類)---LDR、LDRB、LDRH、STR、STRB、STRH

ARM的六大類指令集---LDR、LDRB、LDRH、STR、STRB、STRH ARM微處理器支援載入/儲存指令用於在暫存器和儲存器之間傳送資料,載入指令用於將儲存器中的資料傳送到暫存器,儲存指令則完成相反的操作。常用的載入儲存指令如下: —  LDR     字資料載

組合語言之第五章至第八章知識彙總 組合語言之第五章【BX】loop指令 組合語言之第六章包含多個段的程式 組合語言之第七章更靈活的定位記憶體地址的方法 彙編實驗之第八章資料處理的兩個基本問題

      組合語言之第五章【BX】和loop指令   一:【bx】   【bx】和之前用過的【0】有些類似,都是表示記憶體單元,而它的偏移地址在bx中。段地址預設在ds中   描述一個記憶體單元 需要知道,1記憶體單元的地址,

彙編指令---ROLROR指令

       迴圈左移/右移指令只是移位方向不同,它們移出的位不僅要進入CF,而且還要填補空出的位。       例如:              MOV AL,82H              ROL AL,1       首先把82H轉換成二進位制數10000010B

ARM彙編指令——算數邏輯指令

MOV : 傳送 (Move)//相當於賦值語句 MOV{條件}{S} <dest>, <op 1> dest = op_1 MOV 從另一個暫存器、被移位的暫存器、或一個立即值裝載一個值到目的暫存器。你可

彙編中的testcmp指令[Z]

首先看看:狀態暫存器(即標誌暫存器) PSW(Program Flag)程式狀態字(即標誌)暫存器,是一個16位暫存器,由條件碼標誌(flag)和控制標誌構成, 如下所示: 15   14    13    12   11   10    9    8    7    6    5    4    3  

AT&T彙編心得之間接定址LEA指令

AT&T彙編心得(1)定址方式:0x4(%esp)的操作是把暫存器esp中的值取出,然後加上4,得到的值作為地址,間接定址得到需要的資料例如:pushl -0x4(%ecx)該指令的含義是取出暫存器ecx的值,減去4,將得到的值作為地址,在記憶體找到該地址對應的值,將

彙編移位: SHLSHR、SAL、SAR、ROL、ROR、RCL、RCR

SHL、SHR、SAL、SAR: 移位指令 ;SHL(Shift Left):      邏輯左移 ;SHR(Shift Right):      邏輯右移 ;SAL(Shift Arithmetic Left): 算術左移 ;SAR(Shift

彙編 test指令cmp指令

test指令 將兩個運算元進行邏輯與運算,並根據運算結果設定相關的標誌位。test命令的兩個運算元不會被改變。運算結果在設定過相關標記位後會被丟棄。 影響的標誌位CF,ZF,OF,SF,PF cmp指令 比較指令。cmp的功能相當於減法指令,只是對運算元

彙編 lea指令mov指令

lea指令 load effective address, 載入有效地址,可以將有效地址傳送到指定的的暫存器。指令形式是從儲存器讀資料到暫存器, 效果是將儲存器的有效地址寫入到目的運算元, 簡單說, 就是C語言中的”&”. mov指令 在CPU內或

JSP中的編譯指令動作指令的差別

font class 編譯 執行 gb2 ron 消息 腳本 con JSP中的編譯指令和動作指令的差別 1、編譯指令是通知Servlet引擎的處理消息。而動作指令僅僅是執行時的腳本動作 2、編譯指令是在將JSP編譯成Servlet時起作用,而動作指令可替換成J

MSRMRS指令操作CPSR寄存器

數據 style src 實現 strong mage idt 技術 器) 1.MSR和MRS指令介紹 MRS 指令: 對狀態寄存器CPSR和SPSR進行讀操作。通過讀CPSR可以獲得當前處理器的工作狀態。讀SPSR寄存器可以獲得進入異常前的處理器狀態(因為只有異常模式

redis數據類型操作指令

tar keys int als 數字 第一個 pivot 移除 zset   redis存儲數據是key:value的形式,其中value一共支持五種數據類型:string、hash、list、set、zset 1、string:最常見的數據類型,就是字符串 S