前面介紹了四種基本的布林代數操作:and、or、xor 和 not。用組合語言指令,這些操作可以在二進位制位上實現。同樣,這些操作在布林表示式層次上也很重要,比如 if 語句。
首先了解按位指令,這裡使用的技術也可以用於操作硬體裝置控制位,實現通訊協議以及加密資料,這裡只列舉了幾種應用。intel 指令集包含了 and、or、xor 和 not 指令,它們能直接在二進位制位上實現布林操作,如下表所示。此外,test 指令是一種非破壞性的 and 操作。
操作說明
and源運算元和目的運算元進行邏輯與操作
or源運算元和目的運算元進行邏輯或操作
xor源運算元和目的運算元進行邏輯異或操作
not對目標運算元進行邏輯非操作
test
源運算元和目的運算元進行邏輯與操作,並適當地設定 cpu 標誌位
布林指令影響零標誌位、進製標誌位、符號標誌位、溢位標誌位和奇偶標誌位。下面簡單回顧一下這些標誌位的含義:
接下來分別為大家講解 and、or、xor 和 not 的實際應用。
組合語言 比較指令 跳轉指令 JCC
一 jmp 指令 修改eip 當前執行的下一條指令 jmp暫存器 立即數 目標類似 mov eip,暫存器 立即數 call指令 呼叫函式 call 位址a 暫存器 等價 push位址b 儲存call的下一條指令位址,壓棧,作為返回值,mov eip,位址a 暫存器 將函式首位址作為eip ret指...
組合語言 彙編指令
功能 用來進行資料傳輸。以 mov a,b 為例,相當於a b。具有以下形式 mov 暫存器,資料 mov 暫存器,暫存器 mov 暫存器,記憶體單元 mov 記憶體單元,暫存器 mov 段暫存器,暫存器 功能 用來做加法。以 add a,b 為例,相當於a a b。具有的形式,和 mov 一樣。功...
彙編(一)組合語言簡介
本系列將簡單介紹組合語言的基礎知識,目的是為編譯原理課程打下基礎,因此涉及的內容相對淺顯,不作過高要求。本篇將對組合語言進行簡單介紹,分析組合語言的特點並熟悉計算機的軟硬體系統及暫存器組。組合語言vs高階程式語言 1 組合語言的通用性 可移植性較差。高階語言可以在多種計算機上編譯後執行。2 組合語言...