彙編基礎學習20

2021-05-02 03:51:18 字數 1101 閱讀 9741

文章** http://www.mcany.cn/article/295.htm

博主 沒落的殘陽

這節來繼續講解移位指令---迴圈移位指令,今天我們學到的這兩個指令比較有用,通常我們可以用來調換乙個暫存器中的資料。。 以後我們學到win32彙編的時候,你就知道我們現在學習這些指令集的用處了。。

迴圈移位指令

1.迴圈左移

指令名稱 rol(rotate left)

介紹:rol指令在向左移動一位後,把最高位同時複製到進製標誌和最低位中。其指令格式與shl相似。

迴圈移位和邏輯移位不同的是前者不會丟失任何資料位,也就是每次移出高位就會補到最低位上。

舉例1:

al = 26h

al = 00100110b

那麼 執行rol al, 1

al = 01001100     ;因為迴圈移位最高位移動到最低位,所以此時al = 01001100b

舉例2:

al = 26h

al = 00100110b

那麼執行rol al, 4

al = 01100010b   ;因為迴圈移位每次移位後最高位就會移動到最低位,移動4次後,正好是將其之前的高4位移動到了低4位上,很簡單所以我們一般用這個指令來交換資料。

2.迴圈右移

指令名稱 ror指令

指令介紹:ror指令在向右移動一位後,把最低位同時複製到進製標誌位和最高位中。指令的格式於shl指令相同。

我們的ror指令和rol一樣,同樣不會丟失資料位,每次移出的最低位補到最高位上。

舉例1

al = 26h

al = 00100110b

執行:ror al, 1

al = 00010011b ;很簡單,其實移位後將之前的移出的最低位補到最高位上。

舉例2:

al = 32h

al = 00110010b

執行 ror al, 4

al = 00100011b

其實我們在交換資料的時候(限定每個資料的1/2),用rol和ror是一樣的。前者是將前1/2轉移到後1/2,而後者是將後1/2轉移到前1/2。 所以是一樣的。。

彙編基礎學習5

文章 http www.mcany.cn article 280.htm 博主 沒落的殘陽 今天我給大家來講解下我們記憶體中資料的儲存以及訪問。這節課的基礎也是非常重要的。因為80386的資料位址線是32根,所以它一次可以傳送資料是4個位元組。所以我們記憶體單元是按照4個位元組來對齊的。用高階語言的...

彙編基礎學習7

博主 沒落的殘陽 這節來講解一下棧的延伸,堆疊 算是把昨天的整個理論基礎概念,給大家講解下。執行時棧 runtime stack 我們通常稱為 堆疊 這是由我們cpu硬體直接支援的,也是實現過程的呼叫和過程返回機制的基本組成部分。不知道大家是否知道rtl是什麼意思。如果學過程式的人都應該知道這個就是...

彙編基礎學習11

文章 http www.mcany.cn article 286.htm 博主 沒落的殘陽 這節來學習下loop迴圈指令。我們高階語言的堆疊分配初始化可是靠它了呵呵。首先我們來看下它的指令格式。loop 標號 ecx不為零時跳轉至標號迴圈.標號只是寫匯程式設計序時用來表示乙個記憶體位址的。例如 to...