機器語言
匯編語言(直接在硬件上工作——硬件系統結構):
1.機器語言
每一種微處理器硬件設計和內部結構不同(決定了電信號不同,進而需要不同的機器指令)
#早期通過紙帶機/卡片機輸入計算機,進行運算
2.匯編語言
(編譯器)差別在指令的表示方式不同,便于閱讀記憶和書寫
#核心:匯編指令(有對應機器碼,CPU執行)
#偽指令(無,編譯器執行[計算機并不執行])
#其他符號(無,編譯器識別)
存儲器(指令和數據的存放)和存儲單元
數據和指令本質都一串串二進制,應用賦予他們不同的意義
微型存儲器有128個存儲單元(1Byte字節)
cpu對存儲器的讀寫
where 器件/存儲單元地址,act,details
【和芯片的3類信息交互:地址信息、控制信系、數據信息(邏輯上就有3類總線)】
總線(數據傳送)
CPU外部總線和內部總線
地址總線,根/寬(最多尋2^N個內存單元);
數據總線,寬度和根數(決定:速度、字節數);
控制總線,寬度和根數(決定:控制能力、多少種控制)。“X信號輸出/... ...輸入
內存地址空間(地址總線可尋到的內存單元)
主板,核心器件、主要器件、拓展插槽
接口卡(直接控制外部設備,CPU不能)
各類存儲器芯片(讀寫屬性分RAM,ROM)
RAM>ROM
RAM(主板、拓展插槽),接口卡需要大量處理時可裝
ROM上可存儲硬件的BIOS(對硬件設備可進行基本輸入輸出)
內存地址空間(也連、控)
棧
一種具有特殊訪問方式的空間
CPU提供的棧機制
以字w為單位
#棧頂超界問題SS:SP,只知道當前要執行的指令在何處,而不知道要執行的有多少
注意安排棧的大小,防止入棧數據過多/棧空時繼續出棧
offset偽指令,取得標號的偏移地址
jmp五條吉安轉跳
段內短轉移:short 標號[位移]
段間/遠轉移:far ptr 標號[指令(目的地址)]
reg[寄存器中的地址]
段內轉移:word ptr 內存單元地址[內存中存放的w就是偏移地址]
特殊的標志寄存器(按位起作用vs整個寄存器一個含義)
7:符號標志符? ? ? ? 6:ZF零標志符4:AF 2:奇偶標志符0:CF進位標志符(產生溢出)
CF用法,(adc、sbb帶借位加、減法的設計思路)
(cmp設計思路:減法)
內中斷:內部程序錯誤或軟件指令
eg:1/0除零錯誤,訪問未分配的內存地址觸發段錯誤,
或使用 int 0x80 指令發起系統調用(Linux 傳統方式),
外中斷信息:外部硬件設備
用匯編講中斷,反而更簡單!和你之前的理解可能不一樣!來深入理解中斷吧!_嗶哩嗶哩_bilibili