組合語言學習筆記(3)

2021-05-23 22:13:33 字數 880 閱讀 4502

3.380x86指令系統

其指令系統可以是以下的6組:

資料傳送指令

算術指令

邏輯指令

串處理指令

控制轉移指令

處理機控制指令

資料傳送指令

傳送指令mov

其目的運算元不能是立即碼

其目的操作時不能是**段

其目的運算元和源運算元不能都是段位址

ip不能作為源運算元,也不能作為目的運算元

立即數不能直接傳送給段暫存器

兩個運算元必須有乙個是暫存器,除了立即定址以外

mov bp offset table 是直接將table的偏移位址傳送給 bp

交換指令 echg

echg opera1, opera2 兩個運算元不能同時是段暫存器,也不能同時是儲存器,必須有乙個是暫存器

運算元不能是立即數

位址傳送指令

lea 簡單的理解,和mov offset table 有點類似

lds 將偏移位址賦給目的運算元,段位址賦給ds

les 將偏移位址賦給目的運算元,段位址賦給es

棧操作指令

堆疊的資料必須是字,針對於ds

push src 源運算元不能使立即數

pop det目的運算元,不能pop**段或者是立即數

位址傳送指令

lahf 傳送標誌位的最低7位到ah

sahf 把ah傳送給標誌位的最低7位,0,2,4,6,7(cf, pf, af, zf, sf)

pushf 把標誌暫存器的內容壓入到堆疊中

popf 把堆疊中的內容放入到標誌暫存器中

組合語言學習筆記 3

35.棧 先進後出,涉及到入棧 push 和出棧 pop 兩個概念.a push ax 表示將ax中的資料送入棧中 b pop ax 表示從棧頂取出資料送入ax 36.8086cpu的入棧和出棧操作都是以字為單位進行的.那麼如何知道哪一段被當作棧在使用.how.push和pop時,需要知道棧頂元素....

組合語言學習筆記3

1.cpu是通過位址匯流排來指定儲存單元的,位址單元能傳送多少個不同的資訊,就表明cpu可以對多少個儲存單元進行定址 乙個cpu有n根位址匯流排,可以說這個cpu的位址匯流排寬度為n,這樣的cpu最多可以尋找2的n次方個記憶體單元 3.資料匯流排 cpu與記憶體或其它器件之間資料傳送石通過資料匯流排...

組合語言學習筆記

學習參考資料 大灰狼 講彙編 資料匯流排,位址匯流排,控制匯流排。位址匯流排有多少條就決定了cpu最大的記憶體使用量。80386有32位位址匯流排,所以它的定址能力就是4g.暫存器 通用暫存器,段暫存器,ax暫存器 通用暫存器,存放資料。高位位元組ah,低位位元組al。實體地址表示方法 位址加法器,...