第二章 16位微處理器8086

執(zhí)行單元(EU-Execution Unit):負(fù)責(zé)指令的譯碼和執(zhí)行。

1.4個(gè)16位數(shù)據(jù)寄存器(AX、BX、CX、DX)

AX和AL可用作累加操作,因此又稱作累加器

2.4個(gè)16位地址指針寄存器:通常用于存放操作數(shù)偏移地址

(1) SP (Stack Pointer)—堆棧指針寄存器,指示堆棧段棧頂位置

(2) BP (Base Pointer)—基址指針寄存器,指示堆棧段數(shù)據(jù)區(qū)基址

(3) SI (Source Index)—源變址寄存器,指示數(shù)據(jù)段源串地址

(4) DI(Destination Index)—目的變址寄存器,指示擴(kuò)展段目的串地址

3.標(biāo)志寄存器 FLAG
image.png
  • 狀態(tài)標(biāo)志

a) CF(Carry Flag)進(jìn)(借)位標(biāo)志,加法運(yùn)算最高位產(chǎn)生進(jìn)位或減法運(yùn)算最高位產(chǎn)生借位,表示無符號數(shù)運(yùn)算產(chǎn)生溢出,CF置1,否則置0

b) AF(Auxiliary Carry Flag)輔助進(jìn)位標(biāo)志,加法運(yùn)算時(shí)第3位往第4位有進(jìn)位,或減法運(yùn)算時(shí)第3位往第4位有借位,則AF置1,否則置0

c) ZF(Zero Flag)零標(biāo)志, 若當(dāng)前運(yùn)算結(jié)果為零, 則ZF置1,否則置0

d) SF(Sign Flag)符號標(biāo)志,與運(yùn)算結(jié)果最高位相同,若為負(fù)數(shù),則SF置1,否則置0,SF指示了當(dāng)前運(yùn)算結(jié)果是正還是負(fù)

e) OF(Overflow Flag)溢出標(biāo)志,有符號數(shù)算術(shù)運(yùn)算結(jié)果溢出,則OF置1,否則置0

f) PF(Parity Flag)奇偶標(biāo)志,運(yùn)算結(jié)果低8位所含1個(gè)數(shù)為偶數(shù)則PF置1,否則置0

  • 控制標(biāo)志

a) DF(Direction Flag)方向標(biāo)志

DF=1,串操作時(shí),地址不斷遞減;DF=0,串操作時(shí),地址不斷遞增

b) IF(Interrupt enable Flag)中斷允許標(biāo)志

IF=1,CPU允許接收可屏蔽中斷請求,即開中斷;IF=0,則關(guān)中斷

c) TF(Trap Flag)跟蹤標(biāo)志,又稱單步標(biāo)志

TF=1,CPU為單步工作方式,每執(zhí)行完一條指令產(chǎn)生一次軟件中斷

總線接口單元(BIU-Bus Interface Unit):與系統(tǒng)總線連接,實(shí)現(xiàn)與存儲(chǔ)器、I/O口之間的數(shù)據(jù)傳送。

  1. 4個(gè)16位段地址寄存器

a) CS (Code Segment)——代碼段寄存器,代碼段存放代碼

b) DS (Data Segment)——數(shù)據(jù)段寄存器,數(shù)據(jù)段存放數(shù)據(jù)

c) SS (Stack Segment)——堆棧段寄存器,堆棧段用作堆棧操作

d) ES (Extra Segment)——擴(kuò)展段寄存器,擴(kuò)展段存放數(shù)據(jù)

8086對存儲(chǔ)器采用分段管理,4個(gè)段寄存器分別存放4個(gè)當(dāng)前段的起始地址,又稱作段基址寄存器。

2.指令指針寄存器IP (Instruction Pointer)

16位IP存放當(dāng)前代碼段(CS)所要取出的下一條指令的偏移地址

3.地址加法器∑

8086用20位地址線尋址1MB內(nèi)存空間,但其內(nèi)部寄存器是16位的,因此需要用地址加法器∑根據(jù)16位寄存器的值計(jì)算出20位物理地址

4.指令緩沖隊(duì)列

8086執(zhí)行指令的同時(shí),會(huì)從內(nèi)存取1條或幾條指令,取來的指令就存放在指令隊(duì)列中

5. 暫存器:用于與EU通信的內(nèi)部寄存器

6. 總線控制電路:負(fù)責(zé)總線操作控制

存儲(chǔ)器和I/O管理

  1. 邏輯地址形式為 段地址 : 偏移地址


    image.png
  2. 段超越


    image.png
  3. 8086 I/O編址
    8086對I/O端口操作,需要專門的IN、OUT指令,并且只能通過累加器(AX/AL)來完成,例: IN AL, 80H

  4. 8086系統(tǒng)中,存儲(chǔ)器和I/O端口分別獨(dú)立編址
    存儲(chǔ)器的地址范圍是00000H – 0FFFFFH
    I/O端口的地址范圍是0000H – 0FFFFH

8086引腳信號和工作模式

最小模式:系統(tǒng)中只有一個(gè)處理器;MN/MX為高電平
最大模式:系統(tǒng)中包括兩個(gè)或多個(gè)處理器;MN/MX為低電平
8086 CPU為40pin雙列直插(DIP)封裝。

最小模式下引腳信號和功能

image.png

1.總線信號

a) AD0~AD15: 地址/數(shù)據(jù)復(fù)用引腳,雙向工作
分時(shí)傳送16位數(shù)據(jù)和地址的低16位,由ALE鎖存地址信息。

b) A16~A19(S3~S6): 地址/狀態(tài)復(fù)用引腳,輸出
分時(shí)輸出地址的高4位和CPU當(dāng)前狀態(tài),地址信息由ALE鎖存。

c) BHE/S7: 高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用引腳,輸出
低電平有效,表示高8位數(shù)據(jù)線D15~D8上數(shù)據(jù)有效

d) ALE: 地址鎖存允許信號輸出
高電平有效,表示總線上的信息是地址信息。

2.總線控制信號

a) HOLD: 總線保持請求信號輸入
高電平有效,表示其他模塊(如DMA)申請占用總線

b) HLDA: 總線保持響應(yīng)信號輸出
高電平有效,表示CPU已讓出總線

3.系統(tǒng)控制信號

a) M/IO: 存儲(chǔ)器/輸入輸出選擇信號,輸出,高電平表示CPU訪問存儲(chǔ)器,低電平表示CPU訪問I/O端口

b) RD: 讀信號輸出,低電平有效,表示CPU從存儲(chǔ)器或I/O口讀入信息

c) WR: 寫信號輸出,低電平有效,表示CPU向存儲(chǔ)器或I/O口輸出數(shù)據(jù)

d) DT/R: 數(shù)據(jù)收發(fā)信號輸出,高電平表示CPU正在發(fā)送數(shù)據(jù),低電平表示CPU接收數(shù)據(jù)

e) DEN: 數(shù)據(jù)允許信號輸出,低電平有效,表示CPU當(dāng)前準(zhǔn)備發(fā)送或接收一個(gè)數(shù)據(jù)

4.中斷控制信號

a) INTR: 可屏蔽中斷請求信號輸入,高電平有效,表示外部向CPU提出中斷申請

b) INTA: 中斷響應(yīng)信號輸出,低電平有效,表示CPU響應(yīng)外設(shè)中斷請求

c) NMI: 非屏蔽中斷請求信號輸入,上升沿有效。表示外部有非屏蔽中斷申請。非屏蔽中斷不受軟件控制,CPU必須響應(yīng)

5.CPU控制信號

a) RESET: 復(fù)位信號輸入

高電平有效,至少保持4個(gè)時(shí)鐘周期的高電平。復(fù)位時(shí)CPU停止現(xiàn)行操作,開始復(fù)位,并進(jìn)行初始化:標(biāo)志寄存器FLAG、IP、DS、SS、ES及指令隊(duì)列均清零,CS為FFFFH,復(fù)位結(jié)束時(shí)CPU從FFFF0H開始執(zhí)行程序;

b) MN/MX:最小模式/最大模式選擇信號輸入,高電平為最小模式

c) READY:“準(zhǔn)備好”信號輸入,高電平有效,表示存儲(chǔ)器或I/O口已準(zhǔn)備就緒,可進(jìn)行一次數(shù)據(jù)傳輸;

d) TEST: 測試信號輸入,低電平有效,有效時(shí)CPU退出WAIT指令;

6.其它信號

a) CLK: 時(shí)鐘信號,8086主頻為4.77MHZ T=210ns;單相,占空比為1/3。
b) VCC,GND: 電源及地,+5V,滿足TTL規(guī)范

8086最小模式下的總線連接

1. Intel 8282
把AD復(fù)用引腳連接到地址總線的8位地址鎖存器。3片8282(功能同74LS373)A0~A19和BHE,ALE為鎖存信號。

2. Intel 8286
把AD復(fù)用引腳連接到數(shù)據(jù)總線的8位數(shù)據(jù)緩沖器。2片8286(功能同74LS245)做D15~D0的緩沖器,DT/R做方向選擇,DEN為選通信號。

3. 控制信號M/IO、RD和WR
image.png

4. 中斷控制信號INTR、INTA、NMI

INTR: 外部可屏蔽中斷請求引腳,高電平有效
INTA: 中斷響應(yīng)信號,低電平有效
NMI: 不可屏蔽中斷請求引腳,上升沿有效

5. 總線控制信號HOLD、HLDA

HOLD:總線保持請求引腳,高電平有效
HLDA:總線保持響應(yīng)引腳,高電平有效
HLDA控制8282的OE,當(dāng)CPU總線保持響應(yīng)時(shí)讓出總線

8086操作和時(shí)序

1. 8086時(shí)鐘電路與復(fù)位電路

8284為8086提供CLK時(shí)鐘信號、 RESET復(fù)位信號和READY準(zhǔn)備好信號
8086/8088內(nèi)部無時(shí)鐘發(fā)生器,時(shí)鐘由8284提供,頻率為4.77MHz
輸入RES經(jīng)8284內(nèi)部斯密特觸發(fā)器整形,同步后產(chǎn)生RESET信號,給CPU復(fù)位
外界準(zhǔn)備好信號輸入到8284的RDY端,同步后產(chǎn)生READY信號給CPU

2. 8086/8088系統(tǒng)的復(fù)位操作和啟動(dòng)過程

  • CPU接到RESET信號,停止現(xiàn)有工作,進(jìn)行復(fù)位操作:CS置FFFFH,IP置0,指令隊(duì)列清空,其余寄存器清0;

  • 從存儲(chǔ)器FFFFH :0000H取第一條指令,一般在此處放一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到ROM BIOS中的系統(tǒng)測試程序

  • 系統(tǒng)測試程序執(zhí)行硬件自檢(對CPU、RAM、ROM等硬件進(jìn)行測試),然后執(zhí)行ROM BIOS中的初始引導(dǎo)程序

  • 初始引導(dǎo)程序再從磁盤0面0道1扇區(qū)裝入引導(dǎo)程序,執(zhí)行引導(dǎo)操作

  • 按引導(dǎo)程序的指令,順序裝入其他程序模塊,完成操作系統(tǒng)的引導(dǎo)操作

注:在3、4步之間微機(jī)還會(huì)檢查C0000H開始的擴(kuò)展ROM空間中是否有程序,如果有,并且校驗(yàn)正確,則先執(zhí)行這些程序

3. 8086總線周期

  • 時(shí)鐘周期T(T狀態(tài))
    時(shí)鐘脈沖的一個(gè)循環(huán)時(shí)間叫做一個(gè)時(shí)鐘周期。每個(gè)時(shí)鐘周期T又稱為一個(gè)“狀態(tài)”。它是CPU工作的最小時(shí)間單位,是計(jì)算機(jī)系統(tǒng)工作速度的重要標(biāo)志。8086 CPU的F=4.77M,T=210ns

  • 總線周期
    CPU通過總線從存儲(chǔ)器或I/O端口存取一個(gè)字或字節(jié)的時(shí)間稱為總線周期。包括三類:存儲(chǔ)器讀寫周期、I/O端口讀寫周期、中斷響應(yīng)周期
    一個(gè)基本總線周期包括4個(gè)狀態(tài):T1,T2,T3,T4

  • 指令周期
    執(zhí)行一條指令所需要的時(shí)間稱為指令周期。8086指令周期最短為2個(gè)時(shí)鐘周期,最長為200個(gè)時(shí)鐘周期。

4. 8086總線操作時(shí)序(最小模式下存儲(chǔ)器讀周期)

  • T1狀態(tài)
    置M/IO為高電平,指示是從存儲(chǔ)器讀數(shù)據(jù)
    T1開始,ALE置高,8282輸出跟隨輸入,T1上升沿,ALE置低,8282鎖存20位地址
    BHE也在T1狀態(tài)鎖存,指示T2、T3狀態(tài)傳送數(shù)據(jù)時(shí),高8位是否有效
    置DT/R為低,控制8286接收數(shù)據(jù),置DEN為高,讓8286輸出浮空

  • T2狀態(tài)
    撤銷地址信號,AD15~AD0處于高阻狀態(tài),為讀入數(shù)據(jù)作準(zhǔn)備
    A19/S6~A16/S3及BHE/S7引腳輸出狀態(tài)信息S6~S3
    置RD信號為低電平,輸出讀信號到存儲(chǔ)器
    置DEN為低電平,打開8286三態(tài)門,準(zhǔn)備接收存儲(chǔ)器輸出的數(shù)據(jù)

  • T3狀態(tài)
    存儲(chǔ)器將數(shù)據(jù)送到數(shù)據(jù)總線,CPU通過AD15~AD0接收數(shù)據(jù)
    T3上升沿檢測READY信號,若為高電平,則下一個(gè)為T4狀態(tài);否則插入等待周期Tw

  • T4狀態(tài)
    T4開始,撤銷RD和DEN信號,置為高電平無效,數(shù)據(jù)總線浮空
    T4上升沿撤銷DT/R信號
    CPU讀取存儲(chǔ)器數(shù)據(jù)的時(shí)間為 2T = 420ns (RD或DEN有效時(shí)間)

注:最小模式下I/O口讀周期與存儲(chǔ)器讀周期類似,區(qū)別為讀I/O口時(shí),T1狀態(tài)將置M/IO為低電平,表示是對I/O口進(jìn)行讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,885評論 6 541
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,312評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,993評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,667評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,410評論 6 411
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,778評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,775評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,955評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,521評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,266評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,468評論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,998評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,696評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,095評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,385評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,193評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,431評論 2 378

推薦閱讀更多精彩內(nèi)容