隨筆二十九 算術和邏輯運算

2021-06-07 12:50:34 字數 1197 閱讀 6178

1、載入有效位址

載入有效位址指令 leal 實際上是 movl 指令的變形。它的指令形式是從儲存器讀資料到暫存器,但實際上它根本就沒有引用暫存器。它的第乙個運算元看上去是乙個儲存器應用,但該指令並不從指定的位置讀入資料,而是將有效位址寫入到目的運算元。(像 c語言中的 &)這條指令可以為後面的儲存器應用產生指標。另外,它還可以簡潔地描述普通的算術計算。

即 leal 的作用 :1) 產生指標 , 2) 描述簡單的算術計算

指令效果

描述leal         s    d  

d   &s

載入有效位址

inc         d

dec        d

neg        d

not        d

d   d + 1

d   d – 1

d    -d

d   ~d

加 1減 1

取負取補

add       s    d

sub       s    d

imul      s    d

xor       s    d

or        s    d

and       s    d

d  d + s

d  d - s

d  d * s

d  d ^ s

d  d | s

d  d & s加減

乘異或或與

sal         k, d

shl         k, d

sar         k, d

shr        k, d

d  d << k

d  d << k

d  d >>ak

d  d >> lk

左移左移 (等價於 sal)

算術右移

邏輯右移

注意:這裡的運算元順序與 att 格式的彙編**中的相反。

一元操作符的運算元可以是乙個暫存器也可以是乙個儲存器位置。

二元運算元的第乙個運算元可以是立即數、暫存器或是儲存器位置。第二個運算元可以是暫存器或儲存器位置。(注:同movl 指令一樣,兩個操作書不能同時是儲存器位置。)

移位操作的移位量可以是乙個立即數,或者放在單位元組儲存器元素 %cl 中。(這些指令很特別,因為只允許以這個特定的暫存器作為運算元。)               

第二十九課 邏輯「與」運算子

與 的異同點 相同點 二者都表示與操作,當且僅當運算子兩邊的運算元都為true時,其結果才為true,否則為false。不同點 在使用 進行運算時,不論左邊為true或者false,右邊的表示式都會進行運算。如果使用 進行運算時,當左邊為false時,右邊的表示式不會進行運算,因此 被稱作短路與,在...

6 畫素運算 算術運算和邏輯運算

倆張進行算術運算的前提是倆張的大小是一樣的。引數說明 src1,src2 需要相加的兩副大小和通道數相等的影象或一副影象和乙個標量 標量即單一的數值 dst 可選引數,輸出結果儲存的變數,預設值為none,如果為非none,輸出影象儲存到dst對應實參中,其大小和通道數與輸入影象相同,影象的深度 即...

32位算術邏輯運算單元alu設計 邏輯運算定律

程式設計師鼓勵師 電腦科學入門 邏輯運算 zhuanlan.zhihu.com 我們知道了邏輯運算包括基本運算 邏輯與,邏輯或,邏輯非,還有乙個不那麼基本,但卻比較常用的運算邏輯異或。大家如果還記得小學學過的四則運算的話,應該知道四則算術運算是有一些運算定律的,比如加法交換律 a b b a 加法結...