原作者是哪位大佬已經不可考,寫的挺好的**一波,侵刪
8086有14個暫存器:
控制暫存器 ip、flag
段暫存器:
8086中[…]中的…只能是bx、bp、si、di。此時bp預設ss段,di預設es段,bx、si預設ds。
16位:flags 32位:eflags
標誌位控制標誌位
系統標誌位
影響標誌暫存器的指令
有影響:
大都是運算指令,如add、sub、mul、div、inc、or、and、xor
無影響:
大多是傳送指令,如mov、push、pop
還有call、ret
用到了標誌位的指令
// todo
操作標誌暫存器
lahf load ah from flags
sahf store ah into flags
變址定址
格式:[r*f+v]
[r*f+v]
v[r*f]
說明:r為暫存器(register),f(1、2、4、8)為比例因子(factor),v是位移量
注意:
基址加變址定址
格式:[br+ir*f+v]
v[br+ir*f]
v[br][ir*f]
說明:br基址暫存器 ir變址暫存器 f比例因子 v位移量
注意:
立即定址
格式:n
說明:n為常數或結果確定的表示式。
示例:
mov word ptr [si],12h
mov eax,-12345678h
直接定址
格式:段暫存器:[n]
變數
變數+常量
注意:
示例:
inc buf
mov ds:[20h],cl
變數用db、dw、dd等資料定義偽指令來定義
屬性: 格式:變數名 資料定義偽指令 表示式[,…]
注意:表示式可以為: 標號
屬性:
位址表示式
屬性分離算符
其他算符
資料交換
查表轉換
位址傳送
算術運算
減 乘
除
符號擴充套件
位操作
移位雙精度移位指令
也稱彙編控制指令
符號定義
段定義過程定義
程式模組的定義與通訊偽指令
巨集定義條件彙編
格式控制、列表控制及其他功能偽指令
轉移指令
無條件轉移
可以段內,可以段間
jmp call ret int iret
定義:
dtob proc near
......
dtob endp
呼叫:
call
返回:ret
目的段只允許在當前附加段中,所以程式中一定要定義附加資料段,最簡單的辦法就是讓當前資料段與附加資料段重合。
重複字首:
巨集定義巨集呼叫
巨集展開
定義:
name macro
......
name endm
呼叫:直接用巨集名呼叫。
傳參:重複彙編偽指令:
rept 26
db char
char = char+1
endm
條件彙編偽指令:
if
else
endif
引入巨集庫:
include macro.lib
通訊方式
中斷源:
中斷向量表:
儲存了中斷處理程式的入口位址
編寫中斷處理程式
安裝(複製到固定位址處)
設定中斷向量表
soc system on chip 片上系統
bsp board support package
usb universal serial bus 通用序列匯流排
i 2c
i^2c
i2c inter-integrated circuit
mmu momory manager unit 記憶體管理單元
嵌入式系統的特點
專用開發工具和方法設計
軟體的韌體化
嵌入式系統是乙個軟硬體高度結合的產物,為了提高執行速度和系統可靠性,嵌入式系統的軟體一般都固化在儲存器西片或處理器晶元中。
構成儲存器
非易失性儲存器
常規外設及其介面
專用外設及其介面
嵌入式作業系統
板級支援包 bsp board support package
讓硬體支援作業系統
應用程式
嵌入式開發工具
作業系統
程式語言
測試工具
測試策略
標準的指令集架構有兩大體系,精簡指令集架構 risc reduced instruction set computer,複雜指令集架構 cisc complex instruction set computer。
處理器採用兩大體系結構馮·諾依曼和哈佛結構。
arm處理器:
暫存器37個暫存器:
具體的arm7tdmi thumb debug multiply ice
fpga:
現場可程式設計門陣列 field programmable gate array fpga
soc:
特點:設計時大量使用可復用的ip
其製成
克服前後端相分離的弊病。
sopc:
system on programmable chip 片上可程式設計系統
多核處理器:
片上多核處理器 cmp chi multi-processor
常用架構:
smp symmetric multiprocessing
amp多核處理器需要考慮的問題:
任務排程策略
cache一致性
cache作用:協調處理器和儲存器速度不匹配的問題。
協議機制:
系統異構性
如大端小端
可擦除可程式設計rom eprom
flash 快閃儲存器
之所以稱為快閃儲存器,是因為用電擦除且能擦除整個儲存矩陣或部分儲存矩陣,通過公共源極或公共襯底加高壓實現,速度很快。
將程式和資料寫入到flash儲存器中的過程叫程式設計。
嵌入式最小系統
處理器記憶體
時鐘電源和復位
驅動程式與暫存器
直接利用暫存器與周邊溝通的程式,也叫驅動程式。
獲取周邊的方式:
記憶體映像
io位址
組合語言筆記
1 暫存器操作 cs暫存器不能用mov指令賦值,需要用jmp等調轉指令。但還可以將cs暫存器的值mov到暫存器或者記憶體 ds暫存器可以用mov賦值,通常是這樣操作 mov bx 位址 mov ds bx。可以將ds中的值mov到暫存器或者記憶體。2 實模式和保護模式 實模式 實模式下訪問記憶體是通...
《組合語言》筆記
學習完王爽的 組合語言 確實有一種豁然開朗的感覺,書中很多實踐例題,感覺是他帶著我們一步一步做實驗,非常容易理解,是不可多得的好書!本書組合語言的環境是8086cpu為 處理器的pc機,原因是它常用而且結構簡潔。最核心的部件有三個 cpu 記憶體 i o裝置。cpu負責運算加工資料,這些資料處理好後...
組合語言筆記
彙編指令 機器碼的助記符 偽指令 由編譯器執行,計算機並不認識 其他符號 乙個cpu的位址線寬度位10,那麼可以殉職1024個記憶體單元,這1024個可尋到的記憶體單元就構成這個cpu的記憶體位址空間。從讀寫分為 隨機讀寫 ram 和唯讀儲存器 rom 從功能上和連線上分類 乙個典型得cpu由運算器...