一、基礎知識
2、資料匯流排:8088cpu有8根,8086cpu有16根,8根即8位,乙個位元組,16根即16位,2個位元組,即乙個字的寬度。
3、控制匯流排:決定了cpu對外部器件的控制能力
4、ram:隨機儲存器,斷電不儲存(主儲存器+記憶體擴充套件條+顯示卡的視訊記憶體)
5、rom:唯讀儲存器,關機內容不丟失(裝有bios的主機板及各類介面卡,顯示卡,網絡卡等都有)
二、暫存器
1、通用暫存器:ax,bx,cx,dx,8086cpu下都是16位。他們均可拆分為h與l高低兩種暫存器
4、段暫存器:cs是**段暫存器,ip是指令指標暫存器,任意時刻,cpu把cs:ip指向的內容當指令執行。
5、修改段:不能直接修改cs:ip,只能通過jmp指令修改,如:jmp 2ae3:3。若jmp 1000h,則不改變cs,只改ip
9、【】:只有bx,bp,si,di才可以放在【】中,其他所有的暫存器都不可以。bx不能和bp組合,si不能和di組合。若存在bp,且沒指定段,則預設為ss。
10、x ptr:word ptr指明了訪問的單元長度是字,byte ptr指明了訪問的單元長度是位元組。使用立即數時,特別要注意標明長度。
11、dup:db 16 dup(0)表示定義了16個位元組的資料,每個資料都是0,dup是重複的意思。
三、轉移指令等
5、jmp ax:和jmp near ptr 標號一樣,屬於段內近距離跳轉。
8、jcxz 標號:即cx與z比較,z就是0,所以可以看作是(cx) == 0 ? 跳**不跳轉。這是短距離跳轉,即jmp short 標號。
9、loop 標號:與jcxz相反,先把cx自減1,再判斷。(cx) == 0 ? 不跳**跳轉。也是短距離跳轉,即jmp short 標號。
10、跳轉越界:編譯會報錯。
12、retf:先從棧中拿出乙個位址word ptr,用來修改ip,再拿出乙個word ptr,用來修改cs,然後和jmp far ptr 標號 類似的遠距離跳轉。等同於:pop ip;pop cs。
13、call:先把ip壓棧,再跳轉jmp near ptr 標號;
14、call far ptr 標號:這時,要把cs,ip相繼壓棧,再jmp far ptr 標號;
15、call ***xx:***xx如果長度是字,就把ip壓棧。如果長度是雙字,就要把cs和ip都壓棧。
四、標誌暫存器
1、zf:執行一條指令後,如果結果為0,則zf為1。zf的簡單意思是判斷當前結果 == 0 ? 1: 0;影響的指令有:add、sub、mul、div、inc、or、and。
2、pf:奇偶校驗位。如果是偶數,則pf為1。
3、sf:符號位。如果是負數,則sf為1.
4、cf:進製值。記錄了最高位進製的標記,如果最高位進製了,cf就為1.
5、of:溢位標誌位。如果相加後參生了溢位,則of為1.
6、adc:進製加法指令,比add多了一步是,+cf。
7、sbb:借位減法指令,比sub多了一步是,-cf。
8、cmp:無返回值的減法指令,也叫比較運算子。兩數相減,結果為0時,zf置為1,pf置為1.為負時,會改變cf的值。
五、條件跳轉的各種型別
測試標誌位的jcc指令
指令描 述
條 件
別 名
相 反 指 令
jc
如果進製位被置位則跳轉
進製標誌=1
jb,jnae
jnc
jnc
如果進製位沒有置位則跳轉
進製標誌=0
jnb,jae
jc
jz
如果0標誌被置位則跳轉
0標誌=1
je
jnz
jnz
如果0標誌沒有置位則跳轉
0標誌=0
jne
jz
(續表)
指 令
描 述
條 件
別 名
相反指令
js
如果符號位被置位則跳轉
符號標誌=1
jns
jns
如果符號位沒有被置位則跳轉
符號標誌=0
js
jo
如果溢位標誌置位則跳轉
溢位標誌=1
jno
jno
如果溢位標誌沒有置位則跳轉
溢位標誌=0
jo
jp
如果奇偶校驗位被置位則跳轉
奇偶校驗標誌=1
jpe
jnp
jpe
如果奇偶校驗位為偶校驗則跳轉
奇偶校驗標誌=1
jp
jpo
jnp
如果奇偶校驗位沒有被置位則跳轉
奇偶校驗標誌=0
jpo
jp
jpo
如果奇偶校驗位為奇校驗則跳轉
奇偶校驗標誌=0
jnp
jpe
使用無符號數比較的jcc指令
指 令描 述
條 件
別 名
相反指令
ja
如果超過(>)則跳轉
進製標誌=0,0標誌=0
jnbe
jna
jnbe
如果不低於或等於(不 <=)則跳轉
進製標誌=0,0標誌=0
ja
jbe
jae
如果超過或等於(>=)則跳轉
進製標誌=0
jnc,jnb
jnae
jnb
如果不低於則跳轉(不 <)
進製標誌=0
jnc,jae
jb
jb
如果低於(<)則跳轉
進製標誌=1
jc,jnae
jnb
jnae
如果不超過或等於(不》=)則跳轉
進製標誌=1
jc,jb
jae
jbe
如果低於或等於(<=)則跳轉
進製標誌=1或0標誌=1
jna
jnbe
jna
如果不超過(不》)則跳轉
進製標誌=1或0標誌=1
jbe
ja
je
如果相等(=)則跳轉
0標誌=1
jz
jne
jne
如果不相等(<>)則跳轉
0標誌=0
jnz
je
使用有符號數比較的jcc指令
指 令描 述
條 件
別 名
相反指令
jg
如果大於(>)則跳轉
符號標誌=溢位標誌或0標誌=0
jnle
jng
jnle
如果小於或等於(<=)則跳轉
符號標誌=溢位標誌或0標誌=0
jg
jle
jge
如果大於或等於(>=)則跳轉
符號標誌=溢位標誌
jnl
jge
jnl
如果不小於(不<)則跳轉
符號標誌=溢位標誌
jge
jl
jl
如果小於(<)則跳轉
符號標誌<>溢位標誌
jnge
jnl
jnge
如果大於或等於(>=)跳轉
符號標誌<>溢位標誌
jl
jge
jle
如果小於或等於(<=)跳轉
符號標誌<>溢位標誌或0標誌=1
jng
jnle
jng
如果不大於(不》)則跳轉
符號標誌<>溢位標誌或0標誌=1
jle
jg
je
如果等於(=)則跳轉
0標誌=1
jz
jne
jne
如果不等於(<>)則跳轉
0標誌=0
jnz
je
python 基本知識學習(一)
一 基本概念和使用 1 資料結構 通過某種方式 例如對元素進行編號 組織在一起的資料元素的集合,這些資料元素 可能是數字或者字元,甚至可以是其他資料結構。2 序列 最基本的資料結構 python 包含6種內建的序列,最常用的兩種型別是 列表和元組,其它還有 字串 unicode字 符串 buffer...
Redis學習筆記 Redis基本知識
預設是16個資料庫,預設使用的是第乙個。命令官網查詢 命令列連線redis。linux的redis src目錄下執行 root lyx src redis cli測試效能 100個併發客戶端 每秒100000請求 redis benchmark h localhost p 6379 c 100 n ...
學習進度筆記 TensorFlow基本知識總結 1
tensorflow是全面的深度學習框架支援非常全面不是專門為客戶端設計 特點 1 真正的可移植性 引入各種計算裝置的支援包括cpu gpu tpu,以及能夠很好地執行在移動端,如安卓裝置 ios 樹莓派等等 2 多語言支援 tensorflow 有乙個合理的c 使用介面,也有乙個易用的python...