邏輯運算指令
邏輯與指令
格式:and dest,src
功能:目的運算元和源運算元按位進行邏輯與運算,結果存目的運算元中。源運算元可以是通用暫存器、儲存器或立即數。目的運算元可以是
通用暫存器或儲存器運算元
and指令常用於將運算元中某位清0(稱遮蔽),只須將要清0的位與0,其它不變的位與1即可
邏輯或指令
格式:or dest,src
功能:目的運算元和源運算元按位進行邏輯或運算,結果存目的運算元中。源運算元可以是通用暫存器、儲存器或立即數。目的運算元可以是通用
暫存器或儲存器運算元。
or指令常用於將運算元中某位置1,只須將要置1的位或1,其它不改變的位或0即可
邏輯異或指令
格式:xor dest,src
功能:目的運算元和源運算元按位進行邏輯異或運算,結果送目的運算元。源運算元可以是通用暫存器、儲存器或立即數。目的運算元可以是通用
暫存器或儲存器運算元。
xor指令常用於將運算元中某些位取反,只須將要取反的位異或1,其它不改變的位異或0即可。可用於密碼設定 於某個數異或兩次 即可得到原數
邏輯非指令
格式:not dest
功能:對目的運算元按位取反,結果回送目的運算元。目的運算元可以為通用暫存器或儲存器。
not指令對標誌位無影響。
測試指令
格式:test dest,src
功能:目的運算元和源運算元按位進行邏輯與操作,結果不回送目的運算元。源運算元可以為通用暫存器、儲存器或立即數。目的運算元可以為通
用暫存器或儲存器運算元。
test指令常用於測試運算元中某位是否為1,而且不會影響目的運算元。如果測試某位的狀態,對某位進行邏輯與1的運算,其它位邏輯與0,然後
判斷標誌位。運算結果為0,zf=1,表示被測試位為0;否則zf=0,表示被測試位為1
移位指令
移位指令對運算元按某種方式左移或右移,移位位數可以由立即數直接給出,或由cl間接給出。移位指令分一般移位指令和迴圈移位指令。
一般移位指令
算術/邏輯左移指令
格式:sal dest,oprd
shl dest,oprd
當中的l 就是代表左
功能:按照運算元oprd規定的移位位數,對目的運算元進行左移操作,最高位移入cf中。每移動一位,右邊補一位0。
如圖3 12(a)所示。目的運算元可以為通用暫存器或儲存器運算元。
sal,shl指令影響標誌位of,sf,zf,pf,cf。
邏輯左移是一樣的 就相當於移多少位 就乘了2的多少次方
算術邏輯右移的最高位一直保持不變 其他位右移
邏輯右移的就是所有數挨個右移 這裡的cf位只儲存一位
算術右移指令。
格式:sar dest,oprd shr dest,oprd
功能:按照運算元oprd規定的移位次數,對目的運算元進行右移操作,最低位移至cf中,最高位(即符號位)保持不變。
目的運算元可以為通用暫存器或儲存器運算元。
sar指令影響標誌位of,sf,zf,pf,cf
控制轉移類指令
條件轉移指令包括四類:單標誌位條件轉移;無符號數比較條件轉移;帶符號數比較條件轉移;測試cx條件轉移。
格式:jcc target
功能:若測試條件『cc』為真,則轉移到目標位址target處執行程式。否則順序執行。
(1) 單標誌位條件轉移指令
jz next;若標誌zf=1則轉移到標號next處執行。
(2) 無符號數比較條件轉移
ja next;無符號數a與b比較,若a>b則轉移到標號next處執行程式
第九課 變數
任務與 修改 沒有定義變數r,在第四行float r1,r2之後加上r就可以 include include intmain 閱讀程式 閱讀下面的程式,在閱讀過程中,請為每乙個變數畫出乙個方框,代表對應的記憶體空間。隨著閱讀,標明變數的變化過程,達到讀懂程式的目的。include intmain 圖...
C語言第九課
主要內容 高階指標 結構體指標 一 結構體指標 指向結構體變數的指標叫做結構體指標 typedef struct student student student stu student p stu student 結構體型別的指標 型別 p 結構體指標變數 變數名 結構體訪問成員變數 示例 type...
第九課 VBO索引
到目前為止,我們在建立vbo時總是重複儲存三角形公共邊的頂點。本課將介紹索引。索引是通過索引緩衝 index buffer 來實現的頂點復用。索引緩衝儲存的是整數 每個三角形有三個整數索引,分別指向各種屬性緩衝 attribute buffer 頂點位置 顏色 uv座標 其他uv座標 法線緩衝法線等...