《微機原理與接口技術》講稿1-3章
《《微機原理與接口技術》講稿1-3章》由會員分享,可在線閱讀,更多相關《《微機原理與接口技術》講稿1-3章(60頁珍藏版)》請在裝配圖網上搜索。
1、《微機原理與接口技術》講稿 張永林,2015 45 《微機原理與接口技術》講稿 開課前準備:了解教學班級基本情況。 開課前聯系教學班級輔導員,了解學生對大學計算機基礎、計算機程序設計、數字電子 技術、模擬電子技術等先修課程的掌握情況, 了解教學班級班風、 學風情況,尤其是需要特 別關注的學生。 第1講(第一章1) 教學內容 1 .課程簡介 2 .計算機中數值數據的表示(原碼、反碼和補碼) 基本要求 1 . 了解本課程的教學目標、教學內容、教學要求及考核方法。 掌握溢出的判別方法。 2 .熟練掌握有符號數的表示方法; 掌握補碼運算的特點和基本法則;
2、 相互認識 點名,確認選修學生名單無誤; 留下班長、學習委員聯系方式;所有學生必須進入本課 程教學交流QQ群。 課程引入 計算機軟硬件技術 應用日益廣泛:計算機控制系統(tǒng)(數字控制、集散控制、分布控制), 智能系統(tǒng)(智能建筑、智能交通、智慧城市 ??…工智能設備(智能家電、智能手機、智能儀 器??…儲 數字化、信息化;物聯網;大數據;工業(yè) 4.0;…… 課程簡介 1 .課程基本情況 學分/學時:4.5/72 課程類別:必修/專業(yè)基礎,考試 先修課程:大學計算機基礎、計算機程序設計、數字電子技術、模擬電子技術等 后續(xù)課程:單片機與嵌入式系統(tǒng)、 DSP原理及應用等 教學安排及方
3、式:本課程理論教學48學時,實驗24學時。理論授課20-22次,課堂練 習與討論1-2次、課程復習與總結 1次,必做課內實驗 8個,同時安排微型計算機系統(tǒng)、微 機系統(tǒng)中的總線、DMA控制器、USB串行接口、Pentium微處理器等內容自學。此外,本課 程單獨設置了 1.5W的課程設計環(huán)節(jié)。 其他:電子信息類專業(yè)的學科基礎課, 涉電各工程類專業(yè)的必修課, 研究生入學考試的 可選專業(yè)課,計算機等級考試的主要內容(江蘇省三級偏硬) 2 .課程教學目標 (1)使學生掌握微型計算機的邏輯結構、工作原理、典型 CPU的指令系統(tǒng)、存儲器擴 展及其典型接口電路等知識。 (畢業(yè)要求1) (2)使學
4、生初步掌握匯編語言程序設計的基本方法,初步掌握微機與輸入輸出設備的 典型接口電路,初步具備微機應用系統(tǒng)的分析能力。 (畢業(yè)要求2) (3)使學生掌握微機實驗的基本技能,初步具備進行微機應用系統(tǒng)軟、硬件設計開發(fā) 的能力。(畢業(yè)要求3) (4)使學生了解微機系統(tǒng)發(fā)展的新技術和新知識。 (畢業(yè)要求1) 3 .課程教學要求 本課程的教學強調 理論與實踐相結合。要通過理論學習、實驗運用、課堂討論、 課后練 習等教學環(huán)節(jié),使學生獲得知識運用能力、實驗分析能力和工程設計的能力。 教學中不拘于 抽象的理論,而應加強實例分析,啟發(fā)學生的獨立思考和自主分析。 教學中還應結合授課內 容,安排必要的復
5、習思考題,以便學生能夠鞏固學習成果。 4 .課程考核 課程考核分平時、實驗和期末考試三部分: 平時考核:包括到課情況、課堂回答問題與討論情況、 每章的復習思考題、 網絡學習與 互動情況等,占總成績的 30%。平時考核不合格不得參加期末考試。 實驗考核:包括實驗準備、實驗實施與效果、實驗報告等,占總成績的 10%。實驗考核 不合格不得參加期末考試。 期末考試:采用閉卷筆試形式,具體要求見本課程考試大綱。 期末成績占總成績的 60%。 對期末考試可能嘗試采用以下方式替代( 考核方式改革探索): (1)微機應用系統(tǒng)設計方案; (2)微機應用作品實物或 Proteus仿真; (3)
6、可以證明達到課程教學目標的其他方式。 改革嘗試考核包括兩個部分: 第一部分為設計方案或作品 實物(仿真),占60%。前者必須上交 詳細設計方案,方案 應包括系統(tǒng)結構圖、硬件原理圖、軟件功能圖、程序流程圖及程序清單;后者的(仿真) 作 品實物應能夠演示,并上交完整的 設計報告和演示視頻;方式(3)必須上交報告,報告中 必須充分證明自己已經達到本課程教學目標。 第二部分為答辯,占40%。主要陳述如果通過系統(tǒng)設計或作品研制達成了本課程教學目 標,并回答老師問題;答辯老師應關注學生設計方案或作品中未涉及到的大綱中要求的知識 點及其應用。答辯必須保留記錄。 5.學時分配 第一章 第二章 第三章
7、 第四章 第五章 第八早 基礎知識 系統(tǒng)結構 指令系統(tǒng) 程序設計 存儲器組織 I/O 接口 4 (講授4) 4 (講授4) 11 (講授8,實驗3) 12 (講授6,實驗6) 7 (講授4,實驗3) 9 (講授6,實驗3) 第七章中斷/定時 第八章模擬接口 第九章串行接口 9 (講授6,實驗3) 7 (講授4,實驗3) 7 (講授4,實驗3) 自學:講授=1:1 = 46學時,不定期抽查,計入平時成績 1.1 算機中數值數據的表示 1.1.1 位計數制及其相互轉換 1 .進位計數制 指用數字符號排列成數位,按由低到高的進位方法進行計數。
8、 涉及到數碼、位權、基數。 數碼:各數位中允許選用的數字符號 位權:每個數位賦予一定的位值 基數:計數制中所允許選用的數碼個數 (1)十進制 數碼:0?9 十個不同的數字符號 基數:10 計數規(guī)則:逢10進1,即9+1=10 權:以10為底的哥。如10-1、101等 數碼的數值取決于它在數中的位置 例:十進制數333,最左邊的3代表數值300,權值為102,中間的3代表數值30,權 值為101,最右邊的3代表數值3,權值為100。 (2)二進制 數碼:只有0和1兩個數字符號 基數:2 計數規(guī)則:逢2進1,即1 + 1=10 權:以2為底的哥。如2-1、21等 每
9、個數碼的數值取決于它在數中的位置 例:二進制數11.1,最左邊的1代表數值2,權值為21,中間的1代表數值1,權值為 20,最右邊的1代表數值0.5,權值為2-1 (3)八進制 數碼:有0?7八個數字符號 基數:8 計數規(guī)則:逢8進 1,即7+1=10 權:以8為底的哥。如 8-1、81等 每個數碼的數值取決于它在數中的位置 例:八進制數44.4,最左邊的4代表數值32,權值為81,中間的4代表數值4,權值 為80,最右邊的4代表數值0.5,權值為8-1 (3)十六進制 數碼:有0?9、A?F十六個數字符號 基數:16 計數規(guī)則:逢16進1,即F+1=10 權:以16
10、為底的哥。如16-1、161等 每個數碼的數值取決于它在數中的位置 例:十六進制數 AA.A,最左邊的A代表數值160,權值為161,中間的A代表數值10, 權值為16,最右邊的A代表數值0.625,權值為16-1。 結論 任何一個進位計數制數 |N=Dn-i Dn-2 Di D0 D-1 D-2 D-m |都可以展開為: N = Dn-i XW1+ Dn-2 xn-2+-- Di /R+D0 X0+D-i X—1 + D-2 X-2+ ???+ D-m xR 其中,Di為O~R-1中的任何一個數, R為基數,Ri為權值。 2 .不同進制數的表示 (1 )用大寫字母表示 二進
11、制用 B (Binary)、八進制用 Q (Octal)、十進制用 D (Decimal)、十六進制用 H (Hexadecimal) 例:1010B=10D=12Q=0AH 一般十進制數后可以省略不寫。 編程時只能采用這種表示方法。 (2 )用括號加數字表示 例:(1010)2=(10)10=(12)8=(0A)16 3 .數制間的相互轉換 (1 )二、八、十六進制數一十進制數 方法:按權展開 例: (1101.011)2 =1 X 3+1 X 2+0 X 1+1 X 0+0 X 21 + 1 X -2 + 1 X -3 =8+4+0+1+0+0.25+0.125=(
12、13.375)10 (276)8 = 2 支+7X1+6X0=(190)10 (A3F)16= 10 X 263X 1815X 10=(2623)10 (2)十進制數一二、八、十六進制數 將整數部分與小數部分分別轉換 ① 4數部分:除基取余,先低后3 采用輾轉相除法,用基數不斷去除要轉換的十進制數,直至商為 0,將各次計算所得的 余數,按最后的余數為最高位,第一次余數為最低位,依次排列,即得轉換結果。 例,要求將口埼皤轉換為二進制敷 2 I 224 1 113—余。位) 2 56 親I 3 m 全 4 口 **—俅0 5 7 …余。 6 3 余1 7 1 余
13、 1 o 余 1 所以(第6M"(1】1口(》1al 例:餐求期工通人軸換為八進■效 R I用 S 1S 命工f■低位) K 3 余 4 0 余3[?高位) 例:聶求將S2也“轉換為十六進制數 16 226 16 14 《■低位〉 0 案14 f ■離位) 所以。工1>14 ② 小數部分:乘基取整,先高后低 采用乘基數取整數方法,即不斷用 2、8或16去乘需轉換的十進制小數,直到滿足要 求的精度或小數部分等于 0為止,然后取每次乘積結果的整數部分,以第一次取整為最高 位,依次排列,可得到轉換結果。 例;求對應于(Q.625川的二進制敷 0.625 X
14、 2 UM Sftl(最離位) 0250 X 2 0.5……整如。 X 2 1J 整數I《量低位) 此對小數部分為弧轉換結束 所以 W.6 " 例:求對應于(226.625)10的二進制數。 分析:本題中十進制數既有整數部分又有小數部分, 應先分別加以轉換,然后再合并在 一起得到最后結果。 因為(226)io=(11100010)2 (0.625)10=(0.101)2 所以(226.625)10=(11100010.101) 2 (3)二進制數一八、十六進制數 ①二進制數一八進制數: 整數向左,小數向右,三位合一,不足補 按小數點為界,整數部分向左、小
15、數部分向右,每3位為一組用一位八進制數表示,即 “三合一”,位數不夠時用“ 0”補。 例:(100 010 011.011 101)2=(423.35)8 ② 二進制數一十六進制數: 整數向左,小數向右,四位合一,不足補 0 按小數點為界,整數部分向左、小數部分向右,每 4位為一組用一位十六進制數表示, 即“四合一”,位數不夠時用“ 0”補。 (4)八、十六進制數一二進制數 ①八進制數一二進制數 用3位二進制數替換每位八進制數,即“ 一擴三"若整數的最高位為 0,小數的最末 位,可以省去。 例:(264.54)8 =(010 110 100.101 100) 2 =(101
16、10100.1011)2 ②十六進制數一二進制數 用4位二進制數替換每位十六進制數,即“ 一擴四”,若整數的最高位為 0,小數的最 末位,可以省去。 例:(7F.C4)6= (0111 1111.1100 0100) 2 =(1111111.110001)2 1.1.2計算機中數的表示 1 .機器數與真值 機器數:一個數在計算機中的表示形式,即二進制代碼 如:10010、11001100 等。 真值:一個機器數所表示的數值 如:+10、-29、+1011 等。 無符號數:全部有效位都用來存放數據。 有符號數:數的最高位是符號位,正數用“ 0”表示,負數用“ 1”表示。
17、2 .有符號數的表示方法 原碼:數真值形式中的“ +”,“-”號用0, 1表示,數據本身用機器數表示。 反碼:負數的反碼形式在原碼基礎上, 符號位不變,其余位按位求反; 正數的反碼形式與原碼相同。 ★補碼:負數的補碼形式由 反碼加1求得; 正數的補碼形式與原碼相同。 正數: [X ]反=[X ]補=[X ]原 負數: [X ]補=[X ]反+ 1 [[X ]反]反=[X ]原 [[X卜]補=[X ]原 求補碼的方法 ①[XW = [X]反+1 ;負數 兇補=兇反 ;正數 ②[XN=K+ X ; K 模 例如:1)鐘表 模為12 2) 8位二進制 模= 28=256
18、 3)電表(4 位) 模=104= 10000 ③直接求補法一一負數(二進制)* [-X]#= [[X]補]變補 例:[+36]原=00100100B [―36]補=11011100B 說明:變補是一種運算,不是一種碼制 。具體操作是:不論 [X]補是正還是負,連其符 號位一起變反,末尾加 1。 例:設字長為8, X的十進制數為+85, Y的十進制數為-85,求[X ]原,[X ]反,[X ]補,[Y]原, [Y]反,[Y]補。 解:[X ]原=01010101 , [Y ]原=11010101 X 為正數[X ]反=[X ]補=[X 伸=01010101 Y 為負數 [
19、Y ]反=10101010 [Y >=10101011 課后思考:0的原碼、反碼、補碼 ? 下講提問: 1 .十進制數如何轉換成非十進制數; 2 .原碼、反碼、補碼的概念及相互關系。 第2講(第一章2) 教學內容 1 .計算機中數值數據的表示(定點數和浮點數) 2 .計算機中常用編碼(BCD碼、ASCII碼、漢字編碼) 3 .計算機運算基礎 4 .微型計算機系統(tǒng)的基本組成(自學) 基本要求 1 .掌握定點數、浮點數的特點、表示方法及其運算。 2 . 了解BCD和ASCII碼,理解BCD碼加法的調整。 3 .理解微型計算機系統(tǒng)的硬件組成和軟件作用。 上一講內容回顧
20、 提問上一講留下的思考題與問題,檢查上一講教學效果。 繼續(xù)第一章教學內容講授 1.1 算機中數值數據的表示(續(xù)), 1.1.2 算機中數的表示 ★ 3.定點數與浮點數 定點數:小數點在數中的位置固定不變的數 通常有兩種簡單約定: ※小數點在最高數位之前,符號位之后,這種約定參與運算的數是 純小數; ※小數點在數的最低位之后,這種約定參與運算的數是 純整數。 ★浮點數:小數點在數中的位置可變化的數。 數N的二進制浮點數表示: N=2j x S, 其中S稱為尾數,j稱為階碼。 其格式由階符、階碼、數符、尾數四個部分組成。 階符:1位,表示階碼的正負號 數符:1位
21、,表示數的正負號 尾數:n位,一般為純小數 階碼:m位,一般為純整數 階碼和尾數可用原碼、反碼或用補碼表示。 ★規(guī)格化數:尾數S滿足:0.5 < |S| < 1。 例:將(-25.25)10轉換成二進制浮點規(guī)格化數 (用補碼表示),其中階符、階碼共4位,數 符(尾符)、尾數共8位。 解:(-25.25)10 的原碼形式:111001.01 改寫 111001.01 為 1.1100101 X 才5 階符 階碼 數符 尾數 0 101 1 0011011 010110011011 O (-25.25)10的二進制浮點規(guī)格化數補碼形式為 又例:某計算機用12位表示一浮點數,該浮
22、點數從高位到低位依次為階符 1位,階碼 3位(用原碼表示),數符(尾符)1位、尾數7位(用補碼表示),若某數的浮點數規(guī)格化表示 為010010110100 ,則該數的真值是多少? 解: 真值:(-0.10011) bX 2+4=(-1001.1)b=-9.5 課堂思考題: 將十進制數-3/8表示成浮點數規(guī)格化形式,其中階符階碼共 4位(用補碼表示),尾符 尾數共7位(用補碼表示),求其結果表示。 答案:11111010000 1.2 計算機中常用編碼 1.2.1 BC叩及其調整 1. BCD碼(Binary Coded Decimal:用四位二進制數表示一位十進制數。
23、 例:十進制數 9的BCD碼:1001 十進制數3的BCD碼:0011 十進制數67的BCD碼:01100111 2. BCD碼的加法運算及調整 BCD碼可以同十進制數一樣進行加運算 例:(0011)bcd+(0100)bcd=(0111)bcd 調整原因:BCD碼低位與高位之間是“逢 10進1”,4位二進制數之間是 逢16進1” 需調整的情況:當兩個一位的BCD數相加本位超過9或本位沒有超過9,但發(fā)生了進位。 調整的方法:在本位加上6 例:已知兩個BCD數YMh求K+V=? 結果仍以BCD數表示“ 解-: HMM (X的HC口編碼) +1001 S 的 BCD 編碼)
24、 OQttL 0(H) 1 (本位小于%但發(fā)生進位) + onq 0001 (HU《17 的 編嗎) 所以X4Y-17 1.2.2 ASCII 碼 ASCII碼:(American Standard Code for Information Interchange),稱為“信息交換標準代碼” ASCII碼是用7位二進制數編碼,可以表示128個字符 如:大寫字母 A的ASCII編碼為:(1000001)2或(41)16。 需要記住常用的 ASCII編碼,如十進制數0~9,十六進制數 0~F的ASCII編碼等。 第8位常用作校驗位 偶校驗:包括校驗位在內的 8位二進制碼中為
25、1的位數之和為偶數; 奇校驗:包括校驗位在內的 8位二進制碼中為1的位數之和為奇數。 例:對1001010數進行奇校驗,請寫出校驗位的值; 若要進行偶校驗,校驗位的值又如 奇校驗位值:“0” 偶校驗位值:“1” 1.2.3 字編碼 國標碼:(GB2312—80漢字編碼),兩字節(jié)表不。在國標碼中,一■級漢字按漢語拼首字 母順序排列,同音字以筆劃順序排列;二級漢字按部首順序排列。 漢字以機內碼形式存儲和傳輸。常有多種輸入方式,但其機內碼唯一,國際碼的兩字節(jié) 最高位均置“1”后形成機內碼。 如“啊”的國標碼為 00110000, 00100001 ,則它的機內碼為 10110000
26、, 10100001,即 B0H, A1H。 1.3 計算機運算基礎 1.3.1 算術運算 1 .無符號定點數的算術運算 (1)二進制加法 規(guī)則:0+0=0 0+1=1 1+1=0 進位 1 1+1+1=1 進位 1 例:計算 10011010+00110111= ? 進位 0111110 被加數 10011010 加數 + 00110111 和 11010001 (2)二進制減法 規(guī)貝 U: 0-0=0 1-1=0 1-0=1 0-1=1 借位 1 例:計算 11101011-10111101= ? 借位 被減數 0111100 11101011
27、 減數 -10111101 差 00101110 因此 11101011-10111101=00101110 2 .有符號定點數的運算(補碼運算) 規(guī)則:| [X+Yb=[X]補+[Y]補 [X-Y-=[X]補+[-汴 用補碼運算可將減法變成補碼加法運算 溢出:兩個數相加,結果超出了微處理機所能表示的數值范圍。 (8位補碼表示的范圍:+ 127?—128; n位補碼表示的范圍:+ 2n - 1—1?—2n - 1) 判斷溢出規(guī)則:同符號數相加,結果符號相反。即:兩個正數相加結果變成了負數;或 兩個負數相加結果變成了正數。 例:判斷下列補碼運算是否發(fā)生溢出 (1) 111
28、11101+00000011 (2) 10001000+11101110 (3) 01000001+01000011 (4) 11001000+11000000 解: (1)沒有溢出 (2)和的結果:01110110,發(fā)生了溢出 ⑶ 和的結果:10000100,發(fā)生了溢出 ⑷ 和的結果:10001000,沒有發(fā)生溢出 1.3.2 輯運算 邏輯運算的規(guī)則: 與:兩個“1”相“與”得"1;否則為"0;即 1 A 1 = 1, 1 A 0 = 0, 0 A 1 = 0, 0 A 0 = 0 或:兩個“ 0”相“或”得“0;否則為“1;’即 1 V 1 = 1, 1 V
29、0 = 1, 0 V 1 = 1, 0 V 0 = 0 異或:不同數 “異或”得“1;否則為“0”;即 1 十 0 = 1, 0 十 1 = 1, 1 十 1 = 0, 0 十 0 = 0 例: 11010101 十 01100011 10110110 不同位之間不發(fā)生任何關系,沒有 11010101 11010101 V 01100011 - 01100011 結果 11110111 01000001 注意:在兩個多位邏輯變量之間進行邏輯運算時, 算術運算中的進位或借位問題 *章節(jié)例題 1、已知[與補=1 1 0 1 0 1 0 0B,貝U [ —1 X]#= (
30、 D ) 2 A、0 1 0 1 1 0 0 0B C 0 1 1 0 1 0 1 0B B、1 1 1 0 1 0 1 0B D、0 0 0 1 0 1 1 0B 解:將[X]補算術右移1位得到 r 1 [一沖卜=1 1 1 0 1 0 1 0B 2 又[―X卜卜=[[X]補]變補, 故[-1x]#=[[2x 下卜戶補=[1 1 1 0 1 0 1 0B 戶補=0 0 0 1 0 1 1 0B 2、兩位8421BCD碼加法計數器初始狀態(tài)為 1 0 0 0 0 1 1 1B ,加入5個計數脈沖后,計 數器的斗犬態(tài)為 1 0 0 1 0 0 1 0B 解:B
31、CD碼中1 0 1 0?1 1 1 1為非法的 1 0 0 0 0 1 1 1B 為 87, 87+5=92,轉成 8421BCD碼即 1 0 0 1 0 0 1 0B 課后作業(yè): 自學教材第一章第4節(jié),了解微型計算機系統(tǒng)的基本組成。 下講提問: 1 .什么是規(guī)格化浮點數? 2 .奇校驗與偶校驗的概念 3 .什么是溢出?如何判斷? 本章作業(yè):P13: 1 (2)、2 (3)、3 (3)、4 (2)、6 (2)、7 (2)、9、10 第3講(第二章1) 教學內容 8086/8088微處理器的內部結構 基本要求 1.熟練掌握8086/8088內部寄存器的功能和使用
32、方法。 2, 了解8086/8088 CPU的內部結構 第一章內容回顧 提問上一講留下的思考題與問題,檢查上一講教學效果。 簡要回顧第一章,引入第二章主要教學內容 上一章所講的數據(包括數值和編碼)在計算機中是如何存放的?聯想電子技術課程中 學習過的加法電路,上一章所講的算術運算和邏輯 運算在計算機中是如何實現的 ?計算機處 理器需要什么樣的硬件結構才能夠支撐這些功能的實現? 2.1 8086/8088 微處理器的內部結構 2.1.1 8086/8088 內部結構 K ☆☆ 1. 8086CPU的組成 ;“E卡選用寄存整蝌 LAN、BX. C\. UX、卬,BP, S
33、h IH) FIT . ,算術建就單元——ALU 理I腫制器 、?標志寄存器——FLAG 『?段寄存器損 (CS. DS. SS. KS> ? 指令指針一次 ? 地址加法器 ? 指令隊列 「苜線接口拴制邏輯 4喊中5和小風刊 TT 小11曰*岡叱二二U 執(zhí)行單元EU負責指令的執(zhí)行,從 BIU的指令隊列中取指令和數據,不直接與外部總線 相連。 總線接口單元BIU根據EU的請求,完成 CPU與存貯器或I/O設備之間的數據傳送。 執(zhí)行單元EU (1)寄存器組^ ①通用寄存器:AX BX CX DX ——16位 AH,AL BH,BL CH,CL DH,DL ——2*
34、8 位 ②指針寄存器 SP BP SI DI —— 16位 其中SP為堆棧指針,SP總是指向棧頂,而且堆棧是先進后出,后進先出 BP—基數指針 SI DI—數據塊操作類 ③標志寄存器FR (PSW) 狀態(tài)標志 控制標志 (2)算術邏輯單元 ALU ①算術運算:+ — X + ②邏輯運算:AND OR NOT XOR ③移位操作 ④位操作 總線接口單元BIU (1)段寄存器組 CS DS SS ES ——16 位 (2)指令指針 IP 特點:IP總是指向將要執(zhí)行指令的首地址 取指令代碼使用IP+ 1 - IP (3)指令隊列 6個字節(jié) (4)地址加法器 物
35、理地址(20位)= 段地址(16位)*16+偏移地址(16位)(無符號數) 段地址 一CS/DS/SS/ES 段地址:偏移地址(邏輯地址) 2.1.2 8086/8088內部寄存器 1 .數據寄存器組二 AX:累加器(Accumulator)??煞殖蓛蓚€八位寄存器 AH、AL使用。 BX:基址寄存器(Base register)??煞殖蓛蓚€八位寄存器 BH、BL使用。 CX:為計數器(Counter)??煞殖蓛蓚€八位寄存器 CH CL使用。 DX:數據寄存器(Data register)??煞殖蓛蓚€八位寄存器 DH、DL使用。 數據寄存器用來存放計算的結果和操作數.也可以存放地
36、址— 每個寄存器又有它們各自的專用目的 AX一累加器,使用頻度最高,用于算術、邏輯運算以及與外設傳送信息等; BX 一基址寄存器,常用做存放存儲器地址: CX一計數器,作為循環(huán)和串操作等指令中的隙含計數器: DX —數據寄存器,常用來存放雙字長數據的高 16位,或存放外設端口地址。 2 .指針與變址寄存器組六 SP(Stack Pointer):堆棧指針寄存器 BP(Base Pointer):基地址指針寄存器 SI(Source Index):源變址寄存器 DI(Destination Index):目的變址寄存器 指針寄存器用于 尋址內存堆棧內的數據 SP為堆棧指
37、針寄存器,指示棧頂的偏移地址 SP不能再用于其他目的,具有專用目的 BP為基址指針寄存器,表示數據在堆棧段中的基地址 SP和BP寄存器與SS段寄存器聯合使用以確定堆棧段中的存儲單元地址 變址寄存器常用于存儲器尋址時 提供地址 SI是源變址寄存器 DI是目的變址寄存器 串操作類指令中,SI和DI具有特別的功能 3 .段寄存器組會 8086有4個16位段寄存器,每個段寄存器用來 確定一個邏輯段的起始地址 ,每種邏輯 段均有各自的用途。 CS (代碼段)指明代碼段的起始地址 SS (堆棧段)指明堆棧段的起始地址 DS (數據段)指明數據段的起始地址 ES (附加段)指明附
38、加段的起始地址 4.標志寄存器(FRO 9位標志 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF (1)狀態(tài)標志 一6 bit OF 溢出標志 (有符號數運算) 8位運算 OF= C7十C 6 16位運算 OF= C15十Ci4 OF= 0,無溢出;OF= 1 ,溢出; CF 進位標志 (無符號數運算) CF= N十C 7/ N十C15, N為加減標志,加 N=0,減N=1; 8 位為 N C 7, 16 位為 N
39、C 15; CF= 0,加無進位/減無借位;CF= 1,加有進位/減有借位; ZF 零標志 非全零 ZF= 0,全零 ZF= 1 (如:D7?Do=00H , D15?Do=0000H); *AF 輔助進位標志 AF= N C 3 當AF= 0時,修正值= 當AF= 1時,修正值= (BCD碼運算) 0 0 0 0 0 0 0 0B 0 0 0 0 0 1 1 0B 例:BCD碼形式如前面介紹 19+ 17= ( BCD運算) 19 0 0 0 1 1 0 0 1B + 17 0 0 0 1 0 1 1 1B 0 0 1 1 0 0 0 0B
40、修正值 (BCD 碼) 36 0 0 1 1 0 1 1 0B 0 0 0 0 0 1 1 0B SF 符號標志 S已D7 /D15; (8位為D7, 16位為D15) S已0,正數;SF= 1,負數; PF 奇偶標志 (包括符號位) 奇數個“1",PF= 0;偶數個“1",PF= 1; (2)控制標志 一3 bit DF方向標志 串操作指令 DF= 0, + (地址指針);DF= 1 ,—(地址指針); 如后面將介紹的串傳送時,塊有重疊時,必從尾指針起,做減法搬移; IF 中斷允許標志 中斷 可屏蔽中斷 —IF= 0不響應(禁止中斷),IF= 1響應(允許中斷);
41、 (8086) 非屏蔽中斷(有請求即響應) *TF 單步執(zhí)行標志 TF= 0 連續(xù)執(zhí)行, TF= 1 單步執(zhí)行; 課后預習:8086/8088的外部引腳與功能 下講提問: 1. 8088CPU包括哪兩個部分?功能是什么?相互關系如何? 2. 8088CPU內部有哪些寄存器?分屬哪個部分? 3. 標志位的含義。 第4講(第二章2) 教學內容 1. 8086/8088的外部引腳與功能 2. 8086/8088體系結構 基本要求 1 .掌握8086/8088 CPU的內部工作時序。 2 .了解CPU外部引腳功能。 3 .掌握8086的系統(tǒng)配置、存儲器結構。 上一講教學
42、效果檢查,預留問題提問。 檢查預習情況。 2.2 8086CPU 弓 I腳 2.2.1 種工作方式公用引腳 1. AD0 15:地址/數據復用引腳 *總線周期:由「、T2、T3、T4四個時鐘組成,T1為地址,其余為數據。 2. A16/ S3?A19/ S6:地址/狀態(tài)線 T1: A16?A19地址線 T2?T4: 9?S5狀態(tài)線 S4 S3 含義 00 正在使用 ES S5= IF 01 正在使用 SS S6= 0 10 正在使用 CS 11 正在使用 DS 3. BHE/ S7:高8位數據允許線/狀態(tài)線 T1 一 BHE 0
43、 一 AD8?AD15 (數據有效) 1 一 AD8?AD15 (數據無有效) 4. RD讀選通線 RD = 0 表示正進行 M或I/O讀操作 5. READY 準備好線 T1 T2 T3 T2N 74 READ仁0 插入Tw 并繼續(xù)檢測 READY犬態(tài) READ仁1 進入T4狀態(tài) 6. INTR 可屏蔽中斷請求線 若IF= 1,則在一條指令結束后即響應中斷請求,進入中斷處理 7. NMI 非可屏蔽中斷請求線 它不受IF的影響 8. RESET 復位線(至少維持4個時鐘周期的高電平) CS= FFFFH SS= ES= DS= 0000H , IP=0000H,指
44、令隊列為空; F= 0000H一IF= 0,表示禁止中斷; 例:物理地址, CS: IPf FFFF0H 9. TEST測試線(與8087) TEST=1,執(zhí)行 WAIT指令;TEST = 0,繼續(xù)執(zhí)行; 10. CLK 11. MN/ MX 最小/最大模式線 12. GND 2.2.2 小模式 (第24?31引腳)CPU直接控制系統(tǒng) 1. M/ IO 存儲器、I/O選擇線 M/ IO =1 一 訪問 M (Ao?A19) M/ IO =0 一 訪問 I/O 端口( Ao?A15) 2. WR寫信號線 WR=0, CPU完成對M或I/O端口的寫操作(CPURM、I/
45、O) 3. INTA中斷響應線 INTA0,外設要提供中斷類型號;INTR= 1, IF= 1; 4. ALE 地址鎖存線 Ti 時,ALE= 1; 5. DT/R 數據收發(fā)線 6. DEN 數據允許線 7. HOLD 總線請求線 8. HLDA總線響應線 2.2.3 大模式 (第24?31引腳)CPU間接控制系統(tǒng) 1. SO S1 S2 總線周期狀態(tài)線 輸出 S7 S1 & 操作 及 S1 S0 操作 0 0 0 發(fā)中斷響應信號 1 0 0 取指令 0 0 1 讀I/O端口 1 0 1 讀內存 0 1 0 寫I/O
46、端口 1 1 0 與內存 0 1 1 暫停 1 1 1 無源狀態(tài) 2. RQ / GT0、RQ /GTi總線請求/響應線 與最小方式的HOLD、HLDA線為相同引腳 3. LOCK鎖定線(總線鎖定) 4. Q S、Q So 指令隊列狀態(tài)線 Q S Q S0 意義 0 0 無操作 0 1 從指令隊列中的第1個字節(jié)取走代碼 1 0 隊列為空 1 1 除第1個字節(jié)外,還取走了后續(xù)字節(jié)中的代碼 2.3 8086/8088 CPU 的時序 ☆ 1 .總線周期的相關概念 (1)時鐘周期:為CPU工作主頻的時鐘周期: T=1/f
47、 (f為主頻) (2)總線周期:CPU通過總線對存儲器或I/O端口進行一次訪問(讀/寫操作)所需的時間 稱為一個總線周期;一個總線周期至少包括 4個時鐘周期,即 T1、T2、T3、T4。 (3)指令周期:指計算機完成一條指令的執(zhí)行所需要的時間, 它包含一個或多個總線周期。 通常采用 MIPS ( Million Instructions Per Second)單位,即每秒執(zhí)行百萬條指令的含義。 2 . 8086典型的總線周期時序(Ti?T4) 3 .最小模式讀總線周期 (1) 8088讀總線周期 T1 T2 個總線會
48、期 T3 CLK ZD>-< ZX Z2ZZDCZ A 故據坳入 ALE ZK RD DT;R T1狀態(tài)——輸出20位存儲器地址 A19?A0 io/M輸出低電平,表示存儲器操作; ALE輸出正脈沖,表示復用總線輸出地址 T2狀態(tài)一一輸出控制信號 R?? T3和Tw狀態(tài)一一檢測數據傳送是否能夠完成 T4狀態(tài)一一前沿讀取數據,完成數據傳送 (2) 8088寫總線周期 , ..卜怠線庵期 T1狀態(tài)——輸出20位存儲器地址 A1
49、9?A0 io/M輸出低電平,表示存儲器操作; ALE輸出正脈沖,表示復用總線輸出地址 T2狀態(tài)一一輸出控制信號 W??和數據D7?D0 T3和Tw狀態(tài)一一檢測數據傳送是否能夠完成 T4狀態(tài)一一完成數據傳送 2.4 8086/8088 的體系結構 1. 8086存儲體結構 AO BME Ci2-I D0^D7 (1個總線周期) ①字節(jié): 8bit ②字: 16bit 偶地址一數據總線低 8位 奇地址一數據總線高 8位 低8位所在的地址為字的地址 ⑴規(guī)則字: 字地址為偶地址(1個總線周期) ⑵非
50、規(guī)則字:字地址為奇地址(2個總線周期) D0 ?Di5一 T1 ?T4 (a)偶地址一 D0?D7 (b)奇地址一 D8?D15 (占用Ti?T4 一個總線周期) CPUR M ⑹ Ao = 0 偶地址一匚二,1 一 Do?D7 12H (d) Ao = 1偶地址一 奇地址一 偶地址一 田地址一 34H 1 1個總線周期(規(guī)則字) 一 Do ?D7 一 D8 ?D15 一 Do ?D7 一 D8 ?D15 2個總線周期(非規(guī)則字) 12H 34H — 奇地址一 一 D8?D15
51、 2 .數據的表達與存放 計算機中信息的單位 二進制位Bit:存儲一位二進制數: 0或1 字節(jié)Byte: 8個二進制位, D7?Do 字Word: 16位,2個字節(jié),D15?D0 雙字DWord: 32位,4個字節(jié),D31?Do 最低有效位LSB:數據的最低位,Do位 最高有效位MSB:數據的最高位,對應字節(jié)、字、雙字分別指 D7、Di5、D31位 多字節(jié)數據在存儲器中占連續(xù)的多個存儲單元: 存放時,低字節(jié)存入低地址,高字節(jié)存入高地址; 表達時,用它的低地址表示多字節(jié)數據占據的地址空間。 3 .存儲器的分段管理人 8086有20條地址線 最大可尋址空間為 22
52、0= 1MB 物理地址范圍從 00000H?FFFFFH 8086將1MB空間分成許多邏輯段(Segment) 每個段最大限制為 64KB 段地址的低4位為0000B 一個存儲單元除具有一個唯一的物理地址外,還具有多個邏輯地址 8086對邏輯段要求: 段地址低4位均為0 每段最大不超過64KB 8086對邏輯段并不要求: 必須是64KB 各段之間完全分開(即可以重疊) 如何分配各個邏輯段 程序的指令序列必須安排在代碼段 程序使用的堆棧一定在堆棧段 程序中的數據默認是安排在數據段,也經常安排在附加段,尤其是串操作的目的區(qū) 必須是附加段 數據的存放比較靈活,實際上可
53、以存放在任何一種邏輯段中 4 .物理地址和邏輯地址” 對應每個物理存儲單元都有一個 唯一的20位編號,就是物理地址,從00000H?FFFFFH CPU以物理地址訪問存儲單元。 分段后在用戶編程時,采用 邏輯地址,形式為 段(基)地址:(段內)偏移地址 段基地址 說明邏輯段在主存中的起始位置 ,8086規(guī)定段基地址必須是模 16地址:xxxx0H, 省略低4位0000B,段地址就可以用 16位數據表示,就能用 16位段寄存器表達段地址。 偏移地址說明主存單元距離段起始位置的偏移量 ,每段不超過 64KB,偏移地址也可用 16位數據表示 將邏輯地址中的段地址左移 4位,加上偏
54、移地址就得到 20位物理地址 一個物理地址可以有多個邏輯地址 5 .堆棧. 堆棧:堆棧是按照 先進后出,后進先出 原則組織的一段內存區(qū)域。子程序調用和中斷 響應中的現場保護常用堆棧。 向上生長型堆棧:進棧時 SP指針遞增,出棧時 SP指針遞減 向下生長型堆棧:進棧時SP指針遞減,出棧時 SP指針遞增。 8086/8088的堆棧屬于向下生長型,在堆棧段( SS),用堆棧指針 SP指向堆棧的頂部。 堆棧結構 堆棧位置:8086/8088的堆棧在存儲器中 實現,并由堆棧段寄存器 SS和堆棧指針寄存 器SP來定位。 堆棧大?。阂粋€系統(tǒng)中可以有多個堆棧,每個堆棧的空間最大為 64K字
55、節(jié)。 堆棧個數:若有多個堆棧, 只有一個現行堆棧。SS寄存器存放現行堆棧的基址, SP寄 存器指向棧頂。 堆棧操作:進棧操作和出棧操作。 8086/8088 CPU的堆棧操作必須以字為單位。 6. 各種類型訪問存儲器時的段地址和偏移地址 訪問存儲器的方式 默認 可跨越 偏移地址 取指令 CS 無 IP 堆棧操作 SS 無 SP 一般數據訪問 DS CS, ES, SS 有效地址EA 以BP為基址的尋址 SS CS, ES, DS 有效地址EA 串操作的源操作數 DS CS, ES, SS SI 串操作的目的操作數 ES 無 DI
56、 下講提問: 1 .最小模式下的引腳與功能; 2 .總線周期、指令周期、 Tw的概念; 3 .多字節(jié)數據的存放; 本章作業(yè): P35: 1、 2、 5、 8、 11 課后預習:尋址方式、數據傳送指令(第三章) 第5講(第三章1) 教學內容 1 . 8086/8088的指令格式與尋址方式; 2 .數據傳送指令。 基本要求 1 .掌握尋址方式的含義。 2 .熟練掌握常用的數據傳送指令。 上一講內容回顧 提問上一講留下的思考題與問題,檢查上一講教學效果。 簡要回顧第二章,引入第三章主要教學內容 上一章講述了 8086微處理器的內部結構,包括 EU和BIU,以及
57、他們的工作原理。要想 讓這些硬件真正工作起來,必須給他們指令,告訴他們做什么。這一章我們將要學習 8086 都能接受哪些指令——也就是8086的指令系統(tǒng)。 3.1 令系統(tǒng)概述 指令:使計算機執(zhí)行某種特定操作的二進制編碼。 指令系統(tǒng):指一種計算機能夠識別和 執(zhí)行的所有不同指令的集合。 每種CPU在設計時就規(guī)定了一系列與硬件電路相配合的指令。指令功能的實現需要硬 件結構支持。 CISC ( Complex Instruction Set Computer)復雜指令集計算機 RISC ( Reduced Instruction Set Computer)精簡指令集計算機 CISC
58、的指令豐富、功能強大、結構復雜,適合于通用機。 RISC的指令規(guī)整、簡單高效, 適合于專用機。Intel CPU為CISC 指令組成 操作碼 操作數 操作碼說明計算機要執(zhí)行哪種操作,如傳送、運算、移位、跳轉等操作,它是指令中不 可缺少的組成部分。 每種指令的操作碼用一個唯一的助記符表示(指令功能的英文縮寫) ,對應著機器指令 的一個二進制編碼。 操作數(地址碼)是指令執(zhí)行的參與者,即各種操作的對象 有些指令不需要操作數, 通常的指令都有一個或兩個操作數, 也有個別指令有3個甚至 4個操作數 指令的助記符格式 操作碼 操作數1,操作數2;注釋 操作數2,稱為源操作
59、數 src,它表示參與指令操作的一個對象 操作數1,稱為目的操作數 dest,它不僅可以作為指令操作的一個對象, 還可以用來存 放指令操作的結果 分號后的內容是對指令的解釋。 指令中的操作數是指令執(zhí)行的參與者,可以是一個具體的數值(立即數尋址方式),可 以是存放數據的寄存器 (寄存器尋址方式),或指明數據在主存位置的 存儲器地址(存儲器 尋址方式)。 3.2 址方式日 指令系統(tǒng)設計了多種操作數的來源。 尋找操作數的過程就是操作數的尋址 。操作數采 取哪一種尋址方式,會影響機器運行的速度和效率。 3.2.1 作數的尋址方式 1 .立即尋址方式一源操作數、目標操作數
60、例:① MOV AL, 2 ② MOV BX, 1234H 2 . 寄存器尋址方式 8bit、16bit 寄存器一立即數 例:MOV AL, AH; (AL) — (AH) 3 .直接尋址方式 有效地址XXXXHB指令代碼中 例:MOV BX, [5678H]; 若當前 DS= 1234H, [179B8H]= 12H, [179B9H] = 34H, 物理地址 DS : 5678H= 179B8H,有效地址(偏移地址) 5678H; 故(BX)= 3412H, (BL)= 12H, (BH)=34H; 4 .寄存器間接尋址方式 (BX SI、DI)有效地址XXXXH在寄存
61、器中 例:MOV BX, [SI] ;將首地址為物理地址 DS : SI的內容放入BX中 5 .寄存器相對尋址方式 有效地址:寄存器(SI/DI/BX /BP)+8位或16位偏移量(帶符號數)(補碼表示) 物理地址=16*(DS) + (SI/DI/BX)+8位或16位偏移量 或物理地址=16*(SS)+ (BP)+ 8位或16位偏移量 例:① MOV DX, [BP+ 10H](或 MOV DX, 10 [BP]) ;將首地址為物理地址 SS: BP的內容放入 DX中 ②MOV [BP+1234H], AL陵 MOV 1234H [BX], AL) ;將AL的內容放入物理地
62、址 DS : BX的存儲器中 6 .基址變址尋址方式(用于表格) 有效地址:基址寄存器(BX/BP)+變址寄存器(SI/DI) 物理地址=16*(DS) + (BX)+ (SI/DI) 或物理地址=16*(SS)+ (BP)+ (SI/DI) 例:① MOV AX, [BX][SI](或 MOV AX, [BX+ SI]) ② MOV [BX][DI], AL(或 MOV [BX+ DI], AL) 7 .相對基址變址尋址方式 有效地址:基址寄存器(BX/BP) +變址寄存器(SI/DI) + 8位或16位偏移量 物理地址=16*(DS) + (BX)+ (SI/DI) +
63、8位或16位偏移量 或物理地址=16*(SS)+ (BP)+ (SI/DI) + 8位或16位偏移量 例:MOV AL, [BX+ SI+ 12H] MOV AL, 12[BX+ SI] MOV AL, 12[BX][SI] ;三者等效 3.2.2 移地址的尋址方式 <64k,只需修改IP (段內轉移) >64k,修改CS IP (段間轉移) 1 .段內直接尋址方式 IP—指令碼(地址<16位〉/位移量<8位/16位〉)帶符號數 2 .段內間接尋址方式 IP-寄存器(16位)/存儲器(16位)(5種尋址方式) 例:JMP BX ; (BX) 一(IP),將BX的內容送給
64、IP JMP [BX];將首地址為 DS : BX的內容送給IP JMP WORD PTR [BX];同 JMP[BX] 3 .段間直接尋址方式 CS: IP-指令碼(地址<32位〉) 例:JMP 4000H A000H ; (CS) = 4000H, (IP) = A000H 4 .段間間接尋址方式 CS: IP-存儲器 3.3 據傳送指令(不影響F) 3.3.1 用數據傳送指令 1、傳送指令 ;源和目標不能同時為存儲器 M ① MOV M/Ri, M/R2 M/Ri—M/R2 ② MOV R, DATA8/16 例:MOV AX, 1234H MOV D
65、H, 56H ③ MOV AC, M ; AC= AX/AL ;AC- M 存儲器一累加器 ④MOV M, AC ; M—AC ⑤ MOV SEG M/R ; SEG= DS; SS; ES (不包括 CS) 立即數不能直接賦給段地址 例:欲將DS^ 1000H MOV DS, 1000H ;是錯的! 只能用如下方法: MOV AX, 1000H MOV DS, AX ;先將立即數賦給寄存器再賦給段寄存器 ⑥MOV M/R, SEG ; SEG= CS DS ES SS ⑦MOV M/R, DATA8/16 2、堆棧操作指令 進棧: ① PUSH M/R ②PUS
66、H SEG 例:PUSH AL PUSH AX 出棧: ③ PUSH M/R ③ PUSHSEG SS SP (16 位) 只能以16位為單位向堆棧中賦數據 SEG=CS DS ES SS ;錯! ;對!該操作為修改指針 S2 SP- 2,再將AX的內容放入棧頂 只能以16位為單位向堆棧中賦數據 SEG= DS ES S SEG不能為 CS 例:POP AX;該操作為將棧頂數據字取出放入 AX中,并修改指針 S2 SP+ 2 堆棧應用* ①中斷處理程序 保護斷點,恢復斷點 ②子程序 ③保護現場(寄存器) 例:PUSH AX PUSH BX POP BX POP AX ④交換數據 例:AX? BX 方法一:MOV CX, AX MOV AX, BX MOV BX, CX 方法二:PUSH AX PUSH BX POP AX POP BX ⑤子程序中有關入口參數的傳遞 3、交換指令 8位/16位 ① XCHG R, M/R ; R? M/R ②XCHG R ; A
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。