1、什麼是彙編語言,它在計算機語言中的地位?
彙編語言是程序設計語言的基礎語言,是唯一可以直接與計算機硬件打交道的語言
2、彙編語言與源程序、彙編程序、彙編的關系?
3、彙編語言的特點
4、彙編語言與高級語言的比較
5、進制轉換
(略)
更多Linux内核視頻教程文檔資料免費領取後台私信【内核】自行獲取。
内核學習網站:
Linux内核源碼/内存調優/文件系統/進程管理/設備驅動/網絡協議棧-學習視頻教程-騰訊課堂
6、數據組織單位
1) 位(bit)
是計算機中表示信息的最小單位,符号b,是一個二進制位,每一位用0或1表示
2) 字節(Byte)
8位二進制數為一個字節
3) 字(Word)
若幹個字節為一個字,一般一個字包含兩個字節
範圍0000H~FFFFH
4) 雙字(Double Word)
兩個字節為一個字,四個字節為連個字,稱為雙字
範圍00000000H~FFFFFFFFH
5) 字長
機器字的長度為字長,即計算機中每個字所包含的位數,由機器數據總線數決定
例如,數據總線數為64位,機器字長為64位,即每個字有8個字節
6) 數據字與指令字
數據字:在存儲單元中存儲的是數據
指令字:在存儲單元中存儲的是指令
無論是數據字還是指令字,在存儲單元中都是以二進制的形式存放的
7、BCD碼
兩種存儲方式:組合型(1個字節表示2個BCD碼);非組合型(1個字節表示1個BCD碼)
8、80X86計算機組織結構
微型計算機的硬件系統主要由3個主要部分組成:
9、80X86 CPU的寄存器
寄存器分為3類:
8個8位通用寄存器:AL,AH,BL,BH,CL,CH,DL,DH
8個16位通用寄存器:AX,BX,CX,DX,SI,DI,BP,SP
8個32位通用寄存器:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP
說明:1)指針寄存器(SP,ESP,BP,EBP)
SP,ESP為堆棧指針寄存器,存放當前堆棧段棧頂的偏移地址,
是根據指令自動移動的,要想随機讀取
堆棧段中的數據,必須通過BP或EBP基址指針寄存器來讀取。
2)控制寄存器(IP,EIP,FLAGS,EFLAGS)
IP,EIP為指令指針寄存器,用于存放當前正在執行的指令的
下一條指令的偏移地址,該寄存器所指的為代碼段的偏移地址。
FLAGS為标識寄存器,表示程序運行時的狀态和一些特殊控制
3)段寄存器
代碼和數據是分開存放,代碼存放在代碼段,數據存放在數據段
10、内存組織結構
1)内存的地址
在存儲器中内存單元的基本單位是*字節*,每個字節都有一個唯一的地址
2)存儲單元的内容
一個存儲單元存放的信息為存儲單元的内容
分為:字節單元、字節單元、雙字單元
雙字:需要兩個16位寄存器,通常為DX:AX,DX高位,AX低位
3)堆棧
堆棧是内存中一塊特定的區域,其中數據按照*先進後出*原則
作用:暫存數據、子程序調用與返回、調用中斷處理程序、從中斷處理程序返回
位置:堆棧段地址存放于SS寄存器中,偏移地址存放在堆棧指針寄存器(SP(16位)/ESP(32位)),
他們永遠指向棧頂
初始化:堆棧的初始化時通過設置SS及SP/ESP值來完成的,可以由編譯系統自動完成,也可以在程序
中通過僞指令顯示地定義
11、實模式
1)介紹
隻有8086/8088工作在實模式下;
80286以上的微處理器工作在實模式和保護模式下;
在實模式下微處理器隻能尋址1MB的存儲空間;
80286以上系統的微處理器在加點或複位時都以實模式方式開始工作
2)内存地址的分段
*為什麼要分段?*
8086/8088地址總線為20根,可訪問的地址為:2^20=1048576=1M
8086/8088内部寄存器都是16位的,可以直接處理16位長度的存儲地址,16位地址的尋址2^16=64K
為了把尋址範圍擴大到1MB,實模式存儲器地址均采用存儲空間的分段技術來解決尋址1MB的存儲空間
提出了段地址和偏移地址合成20位物理地址的概念
*分段方法?*
16位段地址 16位段内地址--->20位物理地址
地址的組合:物理地址=段地址*16D(或10H) 偏移地址,(段地址*16D--二進制段地址左移4位)
存放段地址:16位段地址寄存器(CS、DS、SS、ES)
存放偏移地址:16位指針寄存器(IP、SP)
在1MB存儲器中可以有64K個段,每個段最多64KB,最小為16KB
*物理地址、段地址、段内地址、邏輯地址的區别?*
物理地址:與内存單元一一對應的20位二進制數,1MB=00000H~FFFFFH
每個物理地址代表一個唯一的内存單元
段地址:将1MB的内存空間分為長64KB的程序區和數據區稱為段
每個段用1個16位二進制地址表示
段地址存放在段寄存器中
代碼段:用于存放源程序的二進制程序代碼,該段的段地址放在CS中
數據段:存放操作數據的,該段的段地址放在DS中
堆棧段:堆棧用的存儲區,該段的段地址放在SS中
附加段:該段的段地址放在ES中
段内地址:16位二進制段内地址為偏移地址
(偏移地址)不同段内的偏移地址存放在不同的寄存器中,段寄存器與裝偏移地址的寄存器按一定要求組合
邏輯地址:用段地址和偏移地址來表示内存單元的地址為邏輯地址,例如,段地址:偏移地址
*邏輯地址與物理地址的換算關系?*
物理地址 = 段地址*16D(10H) 偏移地址
邏輯地址 = 段地址:偏移地址
例子:邏輯地址,1111H:2222H
物理地址,1111H*10H 2222H = 13332H
假設1111H為代碼段地址,2222H在指針寄存器IP中,示意圖如下:
内存分配方法?
代碼段、數據段、堆棧段的大小,是以節為最小單位分配内存區域的16字節=2個字=1節,節的邊界地址就是能夠被16整除的地址偏移地址(段内地址)是從0000H開始的例子:假設程序分配的内存區從6100H開始,程序長度1020字節,操作數510字節,堆棧段250字節則代碼段長度為1024D=400H,數據段長度為512D=200H,堆棧段長度為256D=100H
示意圖如下:
段與段之間的關系?
8088/8086 CPU把1MB的存儲空間劃分成若幹邏輯段每個段的起始地址必須是能夠被16整除的數邏輯段的最大長度為64KB 1MB的存儲空間最多可以分成64K個邏輯段,當每個邏輯段為16KB時段與段之間可以相鄰、分離、重疊、部分重疊
12、保護模式
1)保護模式存儲器尋址機制
在保護模式下,邏輯地址=選擇符 偏移地址
與實模式不同,實模式的段寄存器存放段基地址,而保護模式的段寄存器存放選擇符
保護模式下,通過選擇描述符表中的描述符,間接地形成段基地址
保護模式的偏移地址最大可以是32位,最大段長可以從16KB擴展到4GB
2)描述符
描述符包括,段在寄存器中的位置,段的長度,訪問權限
由基地址、段界限、訪問權限、附加字段組成
基地址:指定段的起始地址
段界限:存放該段的最大偏移地址
訪問權限:說明該段在系統中的功能和一些控制信息
附加字段:描述該段的一些屬性
描述符的内容是由系統自動設置的
由于段寄存器是16位的,描述符是64位的
故将64位的段描述符放按順序存放形成一個段描述符表,放在内存中
而在段寄存器中實際存放的是要選擇的段描述符表的序号,類似于數組中的下标
13、存儲器管理機制
1)分段管理機制
①虛拟存儲器:在有限的物理存儲器上獲取更大的使用空間
*虛拟存儲器是如何實現存儲的?*
在程序執行期間的任意時刻,虛拟存儲器系統自動吧程序分成許多小塊即程序段
将某個程序段存放到物理存儲器中,其他程序段放在磁盤中
當程序要訪問到哪個程序段時,就把哪個程序段引導到物理存儲器中
②分段管理:将4GB的存儲空間分成若幹獨立的受保護的存儲空間塊
每個應用程序可以使用這些存儲空間塊
2)分頁管理機制
①線性地址空間:每個進程都有相同大小的4GB線性空間
用分段管理機制實現虛拟地址空間到線性地址空間的映射,實現把二維的
虛拟地址轉換為一維的線性地址
②分頁存儲管理:把線性地址空間和物理地址空間分别劃分為大小相同的塊,每塊長為4KB
這樣的塊稱為頁,通過分頁管理機制實現線性地址空間到物理地址空間的
映射,實現線性地址到物理地址的轉換
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!