第2章寄存器(CPU工作原理)_第1頁(yè)
第2章寄存器(CPU工作原理)_第2頁(yè)
第2章寄存器(CPU工作原理)_第3頁(yè)
第2章寄存器(CPU工作原理)_第4頁(yè)
第2章寄存器(CPU工作原理)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第二章寄存器8088/86微處理器的內(nèi)部結(jié)構(gòu)執(zhí)行部分EU總線接口部分BIU返回寄存器組AXBXCXDXSPBPSIDI8位8位AHALAXBHBLBXCHCLCXDHDLDX16位寄存器通用寄存器累加器基址計(jì)數(shù)器數(shù)據(jù)指針寄存器變址寄存器堆棧指針基數(shù)指針源變址目的變址寄存器組IPPSWCSDSSSES控制寄存器段寄存器狀態(tài)標(biāo)志指令指針代碼段數(shù)據(jù)段堆棧段附加段提供相應(yīng)的段地址。一、通用寄存器8086CPU的內(nèi)部寄存器都是16位。將AX、BX、CX、DX四個(gè)寄存器稱為通用寄存器。通用寄存器可分為兩個(gè)獨(dú)立的8位寄存器來(lái)用。AX寄存器的邏輯結(jié)構(gòu)15141312111098765432100000000000010010MOVAX,18MOVAX,20000010011100010000016位寄存器分成兩個(gè)8位寄存器的使用情況AX寄存器的邏輯結(jié)構(gòu)1514131211109876543210AX寄存器的邏輯結(jié)構(gòu)15141312111098765432107654321076543210AHAL0100111000100000寄存器寄存器中的數(shù)據(jù)所表示的值A(chǔ)XAHAL010011100010000020000(4E20H)0100111078(4EH)0010000032(20H)一個(gè)8位寄存器所能存儲(chǔ)的數(shù)據(jù)的最大值是多少?一個(gè)16位寄存器所能存儲(chǔ)的最大值又是多少?二、字在寄存器中的存儲(chǔ)字節(jié)(Byte):由8個(gè)比特組成;可以存在8位寄存器中。字(word):由兩個(gè)字節(jié)組成;這兩個(gè)字節(jié)分別稱為這個(gè)字的高位字節(jié)和低位字節(jié)。注:一個(gè)16位寄存器中的數(shù)據(jù)即可以看成一個(gè)字型數(shù)據(jù),也可以看作兩個(gè)字節(jié)型數(shù)據(jù)。例:可看成一個(gè)字型數(shù)據(jù)20000存在AX中,也可看成兩個(gè)獨(dú)立的字節(jié)型數(shù)據(jù)分為為78和32。01001110001000000100111000100000三、幾條匯編指令注:在匯編語(yǔ)言中英文字母不區(qū)分大小字。匯編指令控制CPU完成的操作用高級(jí)語(yǔ)言描述MOVAX,18將18送入寄存器AXAX=18MOVAH,78將78送入寄存器AHAH=78ADDAX,8將寄存器AX中的數(shù)值加上8AX=AX+8MOVAX,BX將寄存器BX中的數(shù)據(jù)送入AXAX=BXADDAX,BX將AX和BX中的數(shù)值相加,結(jié)果保存在AX中AX=AX+BX程序段中的指令A(yù)X中的數(shù)據(jù)BX中的數(shù)據(jù)MOVAX,4E20HADDAX,1406HMOVBX,2000HADDAX,BXMOVBX,AXADDAX,BX設(shè)原AX=BX=0000H,分析下列指令執(zhí)行后AX,BX中的數(shù)據(jù)為多少?4E20H0000H6226H0000H6226H2000H8226H2000H8226H8226H8226H+8226H=1044CH AX=?044CH8226H注:當(dāng)所保存的數(shù)據(jù)位數(shù)大于寄存器的位數(shù)時(shí),高位的數(shù)據(jù)會(huì)丟失,稱為數(shù)據(jù)溢出。程序段中的指令A(yù)X中的數(shù)據(jù)BX中的數(shù)據(jù)MOVAX,001AHMOVBX,0026HADDAL,BLADDAH,BLADDBH,ALMOVAH,0ADDAL,85HADDAL,93H001AH 0000H001AH 0026H0040H 0026H2640H 0026H2640H 4026H0040H 4026H00C5H 4026H0058H 4026H注:當(dāng)通用寄存器作為8位寄存器使用時(shí),低8位和高8位相當(dāng)于兩個(gè)獨(dú)立的寄存器,它們之間沒(méi)有直接關(guān)系,不能產(chǎn)生進(jìn)位。ADDAX,85HAX=?ADDAX,93HAX=?注意:

在進(jìn)行數(shù)據(jù)傳送或運(yùn)算時(shí),要注意指令的操作數(shù)的位數(shù)要匹配。例:數(shù)據(jù)位數(shù)不匹配的指令

MOV AX,BL MOV BH,AX MOV AL,20000 ADD AL,100H練習(xí):使用4條指令計(jì)算2的4次方四、物理地址

我們給每個(gè)存儲(chǔ)單元給了唯一的一個(gè)編號(hào),這個(gè)編號(hào)就是這個(gè)內(nèi)存單元的物理地址。在8086/8088CPU中對(duì)外有20根地址線尋址,所以其系統(tǒng)中的內(nèi)存單元物理地址為20位的地址編號(hào)。地址總線內(nèi)存......20根線,每根可表0/1,總共可表多少數(shù)?即為地址編號(hào)總數(shù)。存儲(chǔ)單元按序編號(hào),即為其物理地址。00000HFFFFFH是否給我們這樣一個(gè)概念?尋址功能輸入:20位二進(jìn)制串(地址)輸出:8/16位二進(jìn)制串(數(shù)值)8086具有20根地址總線,16根數(shù)據(jù)總線五、16位結(jié)構(gòu)的CPU16位機(jī):運(yùn)算器一次最多可以處理16位的數(shù)據(jù)。寄存器的最大寬度為16位;寄存器和運(yùn)算器之間的通路為16位。六、8086CPU給出物理地址的方法1)CPU中的段寄存器(CS)提供段地址,指令指針寄存器(IP)提供偏移地址;2)段地址和偏移地址通過(guò)內(nèi)部總線送入地址加法器;3)地址加法器將兩個(gè)16位地址合成一個(gè)20位的物理地址;4)地址加法器將20位的物理地址送輸入輸出控制電路;5)輸入輸出控制電路將20位物理地址送上外部地址總線;6)地址總線將20位物理地址送入內(nèi)存,尋址。其他部件地址加法器輸入輸出控制電路偏移地址段地址16位物理20位內(nèi)存20位物理地址8位數(shù)據(jù)總線16位控制總線CPU物理地址=段地址×16+偏移地址=段地址(左移4位)+偏移地址8088CPU訪問(wèn)內(nèi)存單元工作過(guò)程

訪問(wèn)地址為123C8H的內(nèi)存單元時(shí),地址加法器的工作過(guò)程(數(shù)據(jù)皆為十六進(jìn)制表示)CSIP寄存器組地址加法器1230H00C8H相關(guān)部件提供段地址和偏移地址段地址和偏移地址送入地址加法器123000C8段地址左移4位(×

16)1230000C812300+00C8123C8段地址+偏移地址形成20位物理地址輸出20位物理地址123C8H地址加法器的工作過(guò)程段地址:×16=左移4位(2進(jìn)制)=左移1位(16進(jìn)制)左移位數(shù)二進(jìn)制十六進(jìn)制十進(jìn)制010B2H22×201100B4H42×2121000B8H82×22310000B10H162×234100000B20H322×24一個(gè)數(shù)據(jù)的二進(jìn)制形式左移N位,相當(dāng)于該數(shù)據(jù)乘以2N加法器左移4位相當(dāng)于乘以24(16)七、“段地址×16+偏移地址=物理地址”的本質(zhì)含義

本質(zhì)含義:CPU在訪問(wèn)內(nèi)存時(shí),用一個(gè)基礎(chǔ)地址(段地址×16)和一個(gè)相對(duì)于基礎(chǔ)地址的偏移地址相加,給出了內(nèi)存單元的物理地址。八、段的概念

段是我們?yōu)榱斯芾韮?nèi)存而引入的一個(gè)虛擬的概念,我們可以將內(nèi)存地址連續(xù)、起始地址為16的倍數(shù)的一組內(nèi)存單元看作一個(gè)段來(lái)管理,但事實(shí)上,內(nèi)存并沒(méi)有被真正劃分成段。注:段地址×16必然是16的倍數(shù),所以一個(gè)段的起始地址一定是16的倍數(shù)(即:XXXX0H);偏移地址為16位,所以一個(gè)段的長(zhǎng)度最大為64KB。思考:觀察下面的地址物理地址 段地址 偏移地址21F60H 2000H 1F60H 2100H 0F60H 21F0H 0060H 21F6H 0000H 1F00H 2F60HCPU可以用不同的段地址和偏移地址形成同一個(gè)物理地址。從這里可看出,分段僅僅是一個(gè)虛擬的概念。如果給定一個(gè)段地址,僅通過(guò)變化偏移地址來(lái)進(jìn)行尋址,最多可定位多少內(nèi)存單元?九、段寄存器

在CPU中提供段地址的寄存器符號(hào)名稱作用配合寄存器CS代碼段提供(程序、指令)段地址IPDS數(shù)據(jù)段用于存放數(shù)據(jù)的存儲(chǔ)器段的起始地址。(包含程序使用的大部分?jǐn)?shù)據(jù)的存儲(chǔ)區(qū)域)SS堆棧段定義堆棧的存儲(chǔ)區(qū)SPES附加段存放附加存儲(chǔ)器段的段地址。常用于存放數(shù)據(jù)或串操作中作目標(biāo)數(shù)據(jù)段十、CS和IPCS—代碼段:提供當(dāng)前要執(zhí)行的指令的段地址。IP—指令指針寄存器:指向當(dāng)前要執(zhí)行的指令的偏移地址。

由CS和IP分別提供一個(gè)16位的段地址和偏移地址,經(jīng)地址加法器合成一個(gè)20位的物理地址,該地址為當(dāng)前要執(zhí)行的指令所在的位置(CS:IP)。AXBX其他部件CSIP指令緩沖器執(zhí)行控制器地址加法器輸入輸出控制電路2000A20009D8200080120007D820006892000500200040320003BB2000201200012320000B8CPU內(nèi)存地址總線數(shù)據(jù)總線Movax,0123HMovbx,0003HMovax,bxAddax,bx若當(dāng)前CPU中的狀態(tài)為:CS=2000,IP=00002000000020000200002000020000B82301B82301000100020003000320003B8230120003B823012000320003BB03000123BB0300000620006B9D8000800032000801D8000A00032000A0006AXBX其他部件CSIP指令緩沖器執(zhí)行控制器地址加法器輸入輸出控制電路2000A20009D8200080120007D820006892000500200040320003BB2000201200012320000B8CPU內(nèi)存地址總線數(shù)據(jù)總線Movax,0123HMovbx,0003HMovax,bxAddax,bx(1)從CS:IP指向內(nèi)存單元讀取指令,讀取的指令進(jìn)入指令緩沖器;IP+nN=所取指令的長(zhǎng)度。(2)IP=IP+N,從而指向下一條指令;(3)執(zhí)行和處理取到的指令,重復(fù)步驟(1)由CS:IP指向CPU將要執(zhí)行的指令所在的物理地址,取到指令后,IP會(huì)自動(dòng)增加N指向下一條指令所在的位置;從而使計(jì)算機(jī)能夠自動(dòng)連續(xù)的執(zhí)行一個(gè)完整的程序。十一、修改CS、IP的指令若想同時(shí)修改CS、IP的內(nèi)容,可用jmp 段地址:偏移地址指令例:

jmp 2AE3:3則CS=2AE3H,IP=0003H若只修改IP的內(nèi)容,可用jmp某一合法寄存器 指令例:jmpAX則執(zhí)行后IP=AX注意:CS和IP不充許直接賦值。MOVCS,1000HMOVCS,AXMOVIP,2000HA6622B8E3FFD88B0000B80123B820005H20006H20004HJmp1000:320003H20009HMovcx,ax20008H20007H20002H20001HMovax,6622H20000H10009HJmpbx10008H10007HMovbx,ax10006H10005H10004HMovax,0000H10003H10002H10001HMovax,0123H10000H已知:CPU的初始狀態(tài):CS=2000H,IP=0000H,內(nèi)存單元情況見(jiàn)右表,試分析指令

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論