組合語言筆記

2021-09-29 22:01:02 字數 3685 閱讀 9232

原作者是哪位大佬已經不可考,寫的挺好的**一波,侵刪

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由運算器...