微處理器思考與習(xí)題_第1頁
微處理器思考與習(xí)題_第2頁
微處理器思考與習(xí)題_第3頁
微處理器思考與習(xí)題_第4頁
微處理器思考與習(xí)題_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第1章 思考與習(xí)題:1、簡述計(jì)算機(jī)系統(tǒng)的硬件構(gòu)成和軟件構(gòu)成。計(jì)算機(jī)的硬件結(jié)構(gòu)由運(yùn)算器、控制器、存儲器、輸入設(shè)備、輸出設(shè)備及連接各部件的總線組成。 其中,運(yùn)算器又稱為算術(shù)/邏輯運(yùn)算單元,完成數(shù)據(jù)的算術(shù)(加、減、乘、除)和邏輯(與、或、非、異)等運(yùn)算以及移位等操作,它是一個采用二進(jìn)制運(yùn)算信息加工部件。 存儲器是計(jì)算機(jī)的記憶部件,存儲控制計(jì)算機(jī)操作的命令(指令)和被處理的信息數(shù)據(jù),并對處理結(jié)果加以保存。存儲器存儲的信息有兩類:一類是命令信息,指揮計(jì)算機(jī)系統(tǒng)工作,用來完成所設(shè)計(jì)的任務(wù),這類信息被存放在存儲器的代碼區(qū)或程序區(qū);另一類是數(shù)據(jù)是指被處理的對象或結(jié)果,這類信息被存放在數(shù)據(jù)區(qū)。一般將存儲器分為兩

2、級:內(nèi)存和外存,目前使用的內(nèi)存是半導(dǎo)體存儲器,外存采用硬盤、磁帶、光盤等。平時程序保存在外存,執(zhí)行時再將其調(diào)入內(nèi)存中運(yùn)行。狹義的存儲器僅指內(nèi)存儲器。 控制器是整個系統(tǒng)的指揮部件,對運(yùn)行的指令逐一分析,發(fā)出控制信號并執(zhí)行其相應(yīng)操作。 輸入設(shè)備與輸出設(shè)備,通稱外圍設(shè)備,是對信息形式的轉(zhuǎn)換,如將語言文字、聲音、機(jī)械動作等信息形式轉(zhuǎn)換為計(jì)算機(jī)能識別的二進(jìn)制格式信息,或?qū)⑵浞聪蜣D(zhuǎn)換。總線是計(jì)算機(jī)各部件間傳輸信息的公共通道,各部件分時復(fù)用總線,滿足數(shù)據(jù)、地址、指令和控制信息在各部件之間快速傳送的需要。微型計(jì)算機(jī)的軟件由系統(tǒng)軟件和應(yīng)用軟件構(gòu)成。系統(tǒng)軟件包括操作系統(tǒng)、程序設(shè)計(jì)語言的編譯程序和其他程序。操作系統(tǒng)

3、是常駐內(nèi)存的軟件系統(tǒng),包括系統(tǒng)資源管理(CPU管理,存儲器管理、I/O管理和驅(qū)動程序)、任務(wù)管理、文件管理和程序庫。為使用者提供靈活方便操作功能,使資源得到最充分有效的利用。各種程序設(shè)計(jì)語言的編譯系統(tǒng)為用戶開發(fā)應(yīng)用軟件提供有力支持,如匯編語言的匯編程序,各種高級語言的匯編程序、連接程序以及各種調(diào)試工具。其他程序,如系統(tǒng)診斷程序、故障定位程序、系統(tǒng)配置程序等。應(yīng)用軟件(或稱用戶軟件)是為用戶實(shí)現(xiàn)給定的任務(wù)而編寫、選購或訂購的程序,它只適合給定環(huán)境的指定用途,一般駐留在外部存儲器中,只在運(yùn)行時才調(diào)入內(nèi)存儲器。2、馮·諾依曼體系結(jié)構(gòu)的五個部件是什么?總線的作用是什么?馮·諾依曼體

4、系結(jié)構(gòu)由運(yùn)算器、控制器、存儲器、輸入設(shè)備、輸出設(shè)備及連接各部件的總線組成。如下圖所示: 總線(Bus)是計(jì)算機(jī)各部件間傳輸信息的公共通道,各部件分時復(fù)用總線,滿足數(shù)據(jù)、地址、指令和控制信息在各部件之間快速傳送的需要。3、填空: (1)計(jì)算機(jī)系統(tǒng)中的存儲器分為 內(nèi)存儲器 和 外存儲器 。在微處理器執(zhí)行程序時,必須將指令存放在 內(nèi)存儲器 中。 (2)計(jì)算機(jī)存儲數(shù)據(jù)的最小單位為 字節(jié) 。1KB容量的存儲器能存儲 1024 個這樣的基本單位。 (3)在計(jì)算機(jī)系統(tǒng)中,多個部件之間信息傳送的公共通道稱為 總線 。在公共通道上傳送的信息有 數(shù)據(jù) 、 地址 、 控制 和 狀態(tài) 信息。4、將下列十進(jìn)制數(shù)分別轉(zhuǎn)換

5、為二進(jìn)制數(shù)和十六進(jìn)制數(shù): (1)129 (2)1022 (3)0.625(1)129=10000001B=81H(2)1022=1111111110B=3FEH(3)0.625=0.101B=0.AH5、將下列二進(jìn)制數(shù)分別轉(zhuǎn)換為十進(jìn)制數(shù)和十六進(jìn)制數(shù): (1)10101011B (2)101101.1011B (1)10101011B=171=0ABH(2)101101.1011B=45.6875=2D.BH6、寫出下列數(shù)的原碼、反碼和補(bǔ)碼(設(shè)字長為8位): (1)-0 (2)20 (3)-15(1)-0原碼10000000B反碼11111111B補(bǔ)碼00000000B(2)20原碼001001

6、00B反碼00100100B補(bǔ)碼00100100B(3)-15原碼10001111B反碼11110000B補(bǔ)碼10000001B7、試寫出下列字符的ASCII碼:(1)5 (2)LF (3)CR (4)SP (5)ESC (6)b(1)535H(2)LF0AH(3)CR0DH(4)SP20H(5)ESC1BH(6)b62H8、若A=01010011B,說明什么運(yùn)算可以完成下述操作? (1)將A的第0、2、4、6位變反; (2)將A的第1、2、3、4位清零; (3)將A的第1、3、5位置1。(1)A異或01010101B將A的第0、2、4、6位變反;(2)A與11100001B將A的第1、2、3

7、、4位清零;(3)A或00101010B將A的第1、3、5位置1。9、為什么軟件能夠轉(zhuǎn)化為硬件?硬件能否轉(zhuǎn)化為軟件? 實(shí)現(xiàn)這種轉(zhuǎn)化的媒介是什么?對于一個具體任務(wù)而言,一般既可以用硬件完成,也可用軟件完成,從理論上說,任何軟件算法都能由硬件實(shí)現(xiàn),反之亦然,這就是硬件與軟件的邏輯的等價性。設(shè)計(jì)計(jì)算機(jī)系統(tǒng)或是在現(xiàn)有的系統(tǒng)上增加功能時,具體采用硬件還是采用軟件實(shí)現(xiàn),取決于價格、速度、可靠性等因素。隨著超大規(guī)模集成電路的發(fā)展,以前由軟件實(shí)現(xiàn)的功能現(xiàn)在更多地直接由硬件實(shí)現(xiàn)。實(shí)現(xiàn)這種轉(zhuǎn)化的媒介是所謂的固件(firmware),形式上類似硬件,但功能上又像軟件,這種趨勢成為軟件的硬化和固化。10、8位二進(jìn)制補(bǔ)

8、碼表示的十進(jìn)制數(shù)的范圍是多少?-128到+12711、計(jì)算機(jī)的分類方式有哪些?1、按處理數(shù)據(jù)的形態(tài)分類計(jì)算機(jī)分為數(shù)字計(jì)算機(jī)和模擬計(jì)算機(jī);2、按照設(shè)計(jì)的目的分類計(jì)算機(jī)可分為專用計(jì)算機(jī)和通用計(jì)算機(jī);3、按照使用的用途分類計(jì)算機(jī)可分為高級科學(xué)計(jì)算機(jī)、工業(yè)控制計(jì)算機(jī)和數(shù)據(jù)計(jì)算機(jī);4、按照內(nèi)部邏輯結(jié)構(gòu)分類計(jì)算機(jī)可分為單CPU處理機(jī)與多CPU處理機(jī),8位機(jī)、16位機(jī)、32位機(jī)或64位計(jì)算機(jī),CISC與RISC計(jì)算機(jī)等;5、按綜合性能指標(biāo)分類計(jì)算機(jī)可分為巨型機(jī)、大型機(jī)、小型機(jī)、工作站、微型機(jī)等幾類。第2章 思考與習(xí)題:1、微處理器有哪的三項(xiàng)主要功能?微處理器的三項(xiàng)主要功能:(1)在微處理器與存儲器或I/O之

9、間傳送數(shù)據(jù);(2)基本的算術(shù)與邏輯運(yùn)算;(3)通過簡單判定,控制程序的流向。2、按照指令的串行執(zhí)行和并行執(zhí)行 ,CPU可分為哪六種體系結(jié)構(gòu)?CPU的六種體系結(jié)構(gòu)為:1、隨機(jī)邏輯體系結(jié)構(gòu)2、微碼體系結(jié)構(gòu)3、流水線體系結(jié)構(gòu)4、超流水線體系結(jié)構(gòu)5、超標(biāo)量體系結(jié)構(gòu)6、多核微處理器體系結(jié)構(gòu)3、簡述馮諾依曼結(jié)構(gòu)、哈佛結(jié)構(gòu)和改進(jìn)型哈這三種特點(diǎn)? 馮·諾伊曼結(jié)構(gòu),也稱普林斯頓結(jié)構(gòu),是一種將程序指令存儲器和數(shù)據(jù)存儲器合并在一起的計(jì)算機(jī)設(shè)計(jì)概念結(jié)構(gòu),相對于并行計(jì)算的串行式結(jié)構(gòu)參考模型。依本結(jié)構(gòu)設(shè)計(jì)出的計(jì)算機(jī)又稱存儲程序型計(jì)算機(jī)。根據(jù)存儲程序原理,把程序本身當(dāng)作數(shù)據(jù)來對待,程序和該程序處理的數(shù)據(jù)在同一個存

10、儲體按不同區(qū)域(程序區(qū)、數(shù)據(jù)區(qū)等)存儲,并確定了存儲程序計(jì)算機(jī)的五大組成部分和基本工作方法。馮-諾依曼結(jié)構(gòu)的數(shù)據(jù)總線和指令總線是分時復(fù)用的,在同一總線上,有時傳送的是數(shù)據(jù)有時是指令,因此它取指令和訪問數(shù)據(jù)是無法同時進(jìn)行的。哈佛結(jié)構(gòu)是一種將程序指令儲存和數(shù)據(jù)儲存分開的存儲器結(jié)構(gòu)。中央處理器首先到程序指令儲存器中讀取程序指令內(nèi)容,解碼后得到數(shù)據(jù)地址,再到相應(yīng)的數(shù)據(jù)儲存器中讀取數(shù)據(jù),并進(jìn)行下一步的操作(通常是執(zhí)行)。程序指令儲存和數(shù)據(jù)儲存分開,據(jù)有相互獨(dú)立的指令總線和數(shù)據(jù)總線,指令和數(shù)據(jù)可以有不同的數(shù)據(jù)寬度,訪問指令和訪問數(shù)據(jù)可以同時進(jìn)行,執(zhí)行時可以預(yù)先讀取下一條指令。哈佛結(jié)構(gòu)的微處理器通常具有較高

11、的執(zhí)行效率。哈佛結(jié)構(gòu)是一種并行體系結(jié)構(gòu),它的主要特點(diǎn)是將程序和數(shù)據(jù)存儲在不同的存儲空間中,即程序存儲器和數(shù)據(jù)存儲器是兩個獨(dú)立的存儲器,每個存儲器獨(dú)立編址、獨(dú)立訪問,如下圖所示。這種分離的程序總線和數(shù)據(jù)總線可允許在一個機(jī)器周期內(nèi)同時獲得指令字(來自程序存儲器)和操作數(shù)(來自數(shù)據(jù)存儲器),從而提高了執(zhí)行速度,提高了數(shù)據(jù)的吞吐率。又由于程序和數(shù)據(jù)存儲器在兩個分開的物理空間中,因此取指和執(zhí)行能完全重疊。程序指令存儲和數(shù)據(jù)存儲分開,可以使指令和數(shù)據(jù)有不同的數(shù)據(jù)寬度。圖1.8 哈佛結(jié)構(gòu)框圖 改進(jìn)型哈佛結(jié)構(gòu)仍然使用兩個獨(dú)立的存儲器模塊,分別存儲指令和數(shù)據(jù),每個存儲模塊都不允許指令和數(shù)據(jù)并存,以便實(shí)現(xiàn)并行處理

12、。改進(jìn)型哈佛結(jié)構(gòu)具有一條獨(dú)立的地址總線和一條獨(dú)立的數(shù)據(jù)總線,利用公用地址總線訪問兩個存儲模塊(程序存儲模塊和數(shù)據(jù)存儲模塊),公用數(shù)據(jù)總線則被用來完成程序存儲模塊或數(shù)據(jù)存儲模塊與CPU之間的數(shù)據(jù)傳輸,兩條總線由程序存儲器和數(shù)據(jù)存儲器分時共用,如下圖所示。4、什么是CPU、MPU、P、C和MCU?CPU中央處理器;MPU微處理器;P微處理器;C微控制器;MCU微控制器。5、簡介CPU指令執(zhí)行流程。指令執(zhí)行步驟:第一步:取指令和分析指令。首先根據(jù)PC所指出的現(xiàn)行指令地址, 從內(nèi)存中取出該條指令的指令碼, 并送到控制器的指令寄存器中, 然后對所取的指令進(jìn)行分析, 即根據(jù)指令中的操作碼進(jìn)行譯碼, 確定計(jì)

13、算機(jī)應(yīng)進(jìn)行什么操作。譯碼信號被送往操作控制部件, 和時序電位、測試條件配合, 產(chǎn)生執(zhí)行本條指令相應(yīng)的控制電位序列。第二步:執(zhí)行指令。根據(jù)指令分析結(jié)果, 由操作控制部件器發(fā)出完成操作所需要的一系列控制電位, 指揮計(jì)算機(jī)有關(guān)部件完成這一操作, 同時為取下一條指令作好準(zhǔn)備。由此可見, 控制器的工作就是取指令、分析指令、執(zhí)行指令的過程。周而復(fù)始地重復(fù)這一過程, 就構(gòu)成了執(zhí)行指令序列(程序)的自動控制過程。6、流水線體系結(jié)構(gòu)與超標(biāo)量體系結(jié)構(gòu)各有何特點(diǎn)?流水線的實(shí)質(zhì)是通過在同一時間做多件事情來提高機(jī)器的性能,因此指令流水線是一種可以將多條指令的執(zhí)行過程相互重疊的實(shí)現(xiàn)技巧,它是提高處理器處理速度的關(guān)鍵技術(shù)之

14、一。其特點(diǎn)是:具有時間的并行性;流水線分工越細(xì),可同時運(yùn)行的指令越多,吞吐率就越高;流水線每個階段的執(zhí)行時間應(yīng)盡量一致;流水線充滿(滿載)時達(dá)到最大的吞吐率。超標(biāo)量就是使用多條流水線來提高CPU的工作效率,在一個時鐘周期內(nèi)CPU可以執(zhí)行一條以上的指令。其特點(diǎn)是:配置有多個性能不同的處理部件,采用多條流水線并行處理;能同時對若干條指令進(jìn)行譯碼,將可并行執(zhí)行的指令送往不同的執(zhí)行部件,從而達(dá)到在每個時鐘周期啟動多條指令的目的;在程序運(yùn)行期間由硬件(通常是狀態(tài)記錄部件和調(diào)度部件)完成指令調(diào)度。7、CISC與RISC各自的特點(diǎn)有哪些?其典型產(chǎn)品代表有哪些?1CISC體系的特點(diǎn)使用微代碼:指令集可以直接在

15、微代碼存儲器里執(zhí)行,新設(shè)計(jì)的處理器,只需增加較少的器部件就可以執(zhí)行同樣的指令集,也可以很快地編寫新的指令集程式。龐大的指令集:可以減少編程所需要的代碼行數(shù),減輕程式師的負(fù)擔(dān)。高階語言對應(yīng)的指令集:包括雙運(yùn)算元格式、寄存器到寄存器、寄存器到存儲器以及存儲器到寄存器的指令。RISC體系特點(diǎn)精簡指令集:包含了簡單、基本的指令,透過這些簡單、基本的指令,就可以組合成復(fù)雜指令。  同樣長度的指令:每條指令的長度都是相同的,可以在一個單獨(dú)操作里完成。  單機(jī)器周期指令:大多數(shù)的指令都可以在一個機(jī)器周期里完成,并且允許處理器在同一時間內(nèi)執(zhí)行一系列的指令。RISC與CI

16、SC的主要特征對比比較內(nèi)容CISCRISC指令系統(tǒng) 復(fù)雜,龐大簡單,精簡 指令數(shù)目 一般大于200 一般小于100 指令格式 一般大于4 一般小于4 尋址方式 一般大于4 一般小于4 指令字長 不固定等長 可訪存指令 不加限制 只有LOAD/STORE指令 各種指令使用頻率 相差很大相差不大 各種指令執(zhí)行時間 相差很大絕大多數(shù)在一個周期內(nèi)完成 優(yōu)化編譯實(shí)現(xiàn) 很難 較容易

17、0;程序源代碼長度 較短較長 控制器實(shí)現(xiàn)方式 絕大多數(shù)為微程序控制 絕大多數(shù)為硬布線控制 軟件系統(tǒng)開發(fā)時間 較短 較長 CISC體系的代表為Intel的80X86,RISC體系的代表為IBM的Power PC。第三章 思考與練習(xí)題1、8086CPU由哪兩部分組成?各有何主要功能?8086微處理器按功能可分為執(zhí)行部件(EU)和總線接口部件(BIU)。執(zhí)行部件負(fù)責(zé)指令執(zhí)行,它由寄存器組、算術(shù)邏輯部件、標(biāo)志寄存器組成??偩€接口部件執(zhí)行所有的總線操作,如20位地址形成、與主存儲器或I/O設(shè)備交換數(shù)據(jù)等。2、在8086 CP

18、U的寄存器中,哪些可作為8位/16位寄存器使用?哪些寄存器不能由程序員操作使用?AX、BX、CX、DX既可以用字(16位)形式訪問,也可以將每個寄存器分別分成兩個獨(dú)立的8位寄存器(AH,AL;BH,BL;CH,CL;DH,DL),用字節(jié)(8位)形式訪問,用來暫存計(jì)算過程中所用到的操作數(shù)、結(jié)果或其它信息。不支持將數(shù)據(jù)直接送入段寄存器CS以及 IP 和標(biāo)志寄存器 FLAG3、在8086 CPU的寄存器中,有哪些通用寄存器和專用寄存器?試說明專用寄存器的作用。通用寄存器:AX,BX,CX,DX,SP,BP,SI,DI。專用寄存器:CS,DS,ES,SS,IP和FLAGSIP:用于尋址當(dāng)前需要取出的指

19、令字節(jié),程序員不能對它直接操作;FLAGS:用于指示微處理器的狀態(tài)并控制它的操作;CS:代碼段寄存器,代碼段是一個存儲區(qū)域,存放的是CPU要使用的代碼,CS存放代碼段的段基地址;DS:數(shù)據(jù)段寄存器,數(shù)據(jù)段是包含程序使用的大部分?jǐn)?shù)據(jù)的存儲區(qū),DS中存放數(shù)據(jù)段的段基地址;ES:附加段寄存器,附加段是為某些串操作指令存放目的操作數(shù)而附近的一個數(shù)據(jù)段,ES中存放該數(shù)據(jù)段的段基地址;SS:堆棧段寄存器,堆棧段是內(nèi)存中一個特殊的存儲區(qū),用于暫時存放程序運(yùn)行時所需的數(shù)據(jù)或地址信息。SS中存放該存儲區(qū)的段基地址。4、什么是堆棧?堆棧指針的作用是什么?堆棧:在存儲器中開辟的一個區(qū)域,用來存放需要暫時保存的數(shù)據(jù)。

20、其操作特點(diǎn)是先進(jìn)后出。堆棧指針用于指向當(dāng)前棧頂單元。5、8086CPU具有 20 條地址線,可直接尋址 1M 容量的內(nèi)存空間,在訪問I/O端口時,使用地址線 16 ,最多可尋址 64K 個I/O端口。6、在8086CPU中,物理地址和邏輯地址是指什么?二者之間有何聯(lián)系?有效地址是如何產(chǎn)生的?物理地址:指存儲器中存儲單元的實(shí)際地址編碼,是一種絕對地址,是CPU 訪問存儲器的實(shí)際尋址地址,對于8086 系統(tǒng),地址范圍為00000HFFFFFH。邏輯地址:由段基址和偏移地址組成,均為無符號的16 位二進(jìn)制數(shù),程序設(shè)計(jì)時采用邏輯地址,可由邏輯地址變換為物理地址,物理地址=段基址×16+偏移地

21、址。在8086/8088的各種尋址方式中,尋找存儲單元所需的偏移地址可由各種成分組成,稱為有效地址,用EA表示??梢酝ㄟ^存儲器尋址方式獲得有效地址。7、設(shè)現(xiàn)行數(shù)據(jù)段位于B0000H到BFFFFH,DS段寄存器的內(nèi)容是什么?DS段寄存器的內(nèi)容是B000H。8、設(shè)雙字(4個字節(jié))12345678H的起始地址是C000H:0002H,試說明這個雙字在存儲器中是如何存放的。C000H:0002H78HC000H:0003H56HC000H:0004H34HC000H:0005H12H9、何謂全譯碼電路?何謂部分譯碼電路?在系統(tǒng)中,存儲器或I/O接口需使用部分地址信號,這些地址信號通常為地址信號中的低位

22、地址信號,全譯碼電路將其余所有的高位地址信號經(jīng)譯碼后作片選信號,片選信號與唯一的存儲器或I/O接口的地址對應(yīng)。部分譯碼電路將存儲器或I/O接口所用的低位地址線外的高位地址線中的部分地址信號作為譯碼電路的輸入信號。采用這種方法的優(yōu)點(diǎn)是減少了譯碼電路的輸入信號,但譯碼的輸出與地址不是一一對應(yīng)的關(guān)系。由于未參加譯碼的地址信號可以有不同的編碼,因而譯碼的輸出可選中不同的地址。10、一個中斷類型號為01CH的中斷處理程序存放在0100H:3800H開始的內(nèi)存中,其中斷向量表中的CS、IP分別存儲在哪些單元?01CH號中斷的中斷向量表地址為:01CH×4=070H,則向量表中中斷入口地址存放情況

23、如下表所示0006FH00070H00HIP00071H38H00072H00HCS00073H01H00074H11、一臺微型機(jī),其存儲器首址為1000H,末址為5FFFH,存儲容量為( D )KB。 A. 8 B12 C16 D2012、微處理器用13條地址線尋址,其最大尋址范圍為 ( D ) A. 1KB B2KB C4KB D8KB13、有一存儲器芯片,地址線為A0A12,數(shù)據(jù)線為D0D7,則該芯片的存儲容量為( B ) A. 4K×8位 B. 8K×8位 C16K×8位 D 32K×8位14、8086CPU對I/O操作時,如何將8位、16位的數(shù)

24、據(jù)傳送?I/O口地址不超過8位時可采用直接尋址方式訪問,超過8位時必須用DX寄存器采用間接尋址方式訪問,8位數(shù)據(jù)通過累加器AL、16位數(shù)據(jù)通過AX傳送。15、圖3-23是一開關(guān)式可選譯碼電路, 即利用開關(guān)式地址可選譯碼器,寫出其地址范圍是多少。 圖3-23 開關(guān)式可選譯碼電路當(dāng)DIP開關(guān)全部接通時,則當(dāng)A3-A8=00000B,A9=1,AEN=0時選擇器輸出低電平,地址范圍是:200H-207H;當(dāng)DIP開關(guān)全部斷開時,則當(dāng)A3-A8=111111B,A9=1,AEN=0時選擇器輸出低電平,地址范圍是:3F8H-3FFH。所以由DIP開關(guān)任何一種組合給出連續(xù)的8個地址,DIP開關(guān)的64種不同

25、可覆蓋從200H到3FFH的地址范圍。其中上面的138給出輸入口地址,下面的138給出輸出口地址,它們是同一個地址。第四章 思考與習(xí)題1. 內(nèi)存尋址方式中,一般只指出操作數(shù)的偏移地址,那么,段地址如何確定?如果要用某個段寄存器指出段地址,指令中應(yīng)如何表示?堆棧操作默認(rèn)段地址由SS段寄存器給出,不可段超越;串操作指令中,源串默認(rèn)段地址由DS段寄存器給出,可以段超越,目的串默認(rèn)段地址由ES段寄存器給出,不可段超越;BP做基址寄存器,默認(rèn)段地址由SS段寄存器給出,可以段超越;一般數(shù)據(jù)存取默認(rèn)段地址由DS段寄存器給出,可以段超越。2. 在8086系統(tǒng)中,設(shè)DS=1000H,ES=2000H,SS=12

26、00H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量為0060H,請指出下列指令的目標(biāo)操作數(shù)的尋址方式,若目標(biāo)操作數(shù)為存儲器操作數(shù),計(jì)算它們的物理地址。(1)MOVBX,12(2)MOVBX,12(3)MOVES: SI,AX(4)MOVVAR,12(5)MOVBXSI,AX(6)MOV6BPSI,AL(7)MOV1000H,DX (8)MOV6BX,CX(9)MOVVAR+5,AX(1)寄存器尋址(2)寄存器間接尋址物理地址:10300H(3)寄存器間接尋址物理地址:20200H(4)直接尋址物理地址:10060H(5)基址變址尋址物理地址:10500H(6)相對基址

27、變址尋址物理地址:12306H(7)直接尋址物理地址:11000H(8)寄存器相對尋址物理地址:10306H(9)直接尋址物理地址:10065H3. 下面這些指令中哪些是正確的?哪些是錯誤的?如果是錯誤的,請說明原因。(1)XCHGCX, AX(2)MOVBX, 2000(3)XCHGBX, IP(4)PUSHCS(5)POPCS(6)INBX, DX(7)MOVBYTE BX, 5000(8)MOVCS, 3000(9)MOVBX, OFFSET VARSI(1)正確(2)錯誤,不可以在兩個存儲器操作數(shù)之間進(jìn)行數(shù)據(jù)傳送(3)錯誤,8086中沒有以IP為寄存器名的指令(4)正確(5)錯誤,不可

28、以將CS做為各類指令中的目的操作數(shù)。(6)錯誤,輸入/輸出指令只能通過累加器來傳送數(shù)據(jù)(7)錯誤,屬性操作符應(yīng)為 BYTE PRT(8)錯誤,同(5)(9)正確4. 給出下列各條指令執(zhí)行后AL以及CF,OF,SF和ZF的值。XORAL, ALAL=00H ;CF、OF、SF、ZF=0001MOVAL, 255AL=0FFH;CF、OF、SF、ZF=0001INCALAL=00H ;CF、OF、SF、ZF=0001NOTALAL=0FFH;CF、OF、SF、ZF=0001SHLAL, 1AL=0FEH;CF、OF、SF、ZF=1010CMPAL, 10AL=0FEH;CF、OF、SF、ZF=00

29、10SUBAL, 7FHAL=07FH;CF、OF、SF、ZF=0100SHLAL, 1AL=0FEH;CF、OF、SF、ZF=01105. 試述以下指令的區(qū)別。(1)MOVAX, 1000H與MOVAX, 1000H(2)MOVAX, MEM 與MOVAX, OFFSET MEM(3)MOVAX, MEM 與LEAAX, MEM(4)JMPSHORT L1 與JMPNEAR PTR L1(5)CMPDX, CX 與SUBDX, CX(6)MOVBPSI, CL 與MOVDS:BPSI, CL(1)源操作數(shù)為立即尋址源操作數(shù)為直接尋址(2)取源操作數(shù)內(nèi)容到AX取源操作數(shù)有效地址到AX(3)取源

30、操作數(shù)內(nèi)容到AX取源操作數(shù)有效地址到AX(4)短轉(zhuǎn)移,8位位移量近轉(zhuǎn)移,16位位移量(5)影響標(biāo)志位,不保存結(jié)果影響標(biāo)志位,保存結(jié)果(6)目的操作數(shù)在堆棧段目的操作數(shù)在數(shù)據(jù)段6. 設(shè)當(dāng)前SS=2010H,SP=0FE00H,BX=3456H,計(jì)算當(dāng)前棧頂?shù)奈锢淼刂窞槎嗌???dāng)執(zhí)行PUSH BX指令后,棧頂物理地址和棧頂2個字節(jié)的內(nèi)容分別是什么?執(zhí)行入棧指令前棧頂?shù)奈锢淼刂?SS*16+SP=20100H+0FE00H=2FF00H執(zhí)行入棧指令后棧頂?shù)奈锢淼刂?SS*16+SP-2=20100H+0FE00H-2=2FEFEH,(2FEFEH)=56H,(2FEFFH)=34H7. 設(shè)AX=197

31、8H,VALUE字變量中存放的內(nèi)容為2013H,寫出下列各條指令執(zhí)行后AX寄存器和CF、ZF、OF、SF、PF的值。(1)XORAX, VALUE(2)ANDAX, VALUE(3)SUBAX, VALUE(4)CMPAX, VALUE(5)NOTAX(6)TESTAX, VALUE(1)XORAX, VALUEAX=396BH, CF、ZF、OF、SF、PF=00000(2)ANDAX, VALUEAX=0010H, CF、ZF、OF、SF、PF=00000(3)SUBAX, VALUEAX=0F965H,CF、ZF、OF、SF、PF=10011(4)CMPAX, VALUEAX=1978H

32、, CF、ZF、OF、SF、PF=10011(5)NOTAXAX=0E687H,CF、ZF、OF、SF、PF=不受影響(6)TESTAX, VALUEAX=1978H, CF、ZF、OF、SF、PF=000008. 偽指令與指令的本質(zhì)區(qū)別是什么?指令語句 每一條指令語句在源程序匯編時都要產(chǎn)生可供計(jì)算機(jī)執(zhí)行的指令代碼(即目標(biāo)代碼),所以這種語句又叫可執(zhí)行語句。每一條指令語句表示計(jì)算機(jī)具有的一個基本操作,如數(shù)據(jù)傳送,兩數(shù)相加或相減,移位等,而這種操作是在目標(biāo)程序(指令代碼的有序集合)運(yùn)行時完成的,是依賴于計(jì)算機(jī)內(nèi)的中央處理器(CPU)、存儲器、I/O接口等硬件設(shè)備來實(shí)現(xiàn)的。 偽指令語句 偽指令語句

33、是用于指示匯編程序如何匯編源程序,所以這種語句又叫指示性語句。例如源程序中的偽指令語句告訴匯編程序:該源程序如何分段,有哪些邏輯段在程序段中是當(dāng)前段,它們分別由哪個段寄存器指向;定義了哪些數(shù)據(jù),存儲單元是如何分配的等等。偽指令語句除定義的具體數(shù)據(jù)要生成目標(biāo)代碼外,其他均沒有對應(yīng)的目標(biāo)代碼。偽指令語句的這些命令功能是由匯編程序在匯編源程序時來完成的,而不是在運(yùn)行目標(biāo)程序時實(shí)現(xiàn)的。9. 畫出下列語句中的數(shù)據(jù)在存儲器中的存儲情況。DATASEGMENTVARBDB 34, 34H, 'GOOD', 2DUP(1, 2DUP(0)VARWDW 5678H, 'CD',

34、$+2, 2DUP(100)VARCEQU 12DATAENDSDATA:000034VARB000134H0002G0003O0004O0005D00061000700008000091000A0000B0000C 78HVARW000D 56H000ED000FC0010 12H0011 64H0012 64H10.按下列要求,寫出各數(shù)據(jù)定義語句。(1)DB1為10H個重復(fù)的字節(jié)數(shù)據(jù)序列:1,2,5個3,4。(2)DB2為字符串'STUDENTS'。(3)DB3為十六進(jìn)制數(shù)序列:12H,0ABCDH。(4)用等值語句給符號COUNT賦以DB1數(shù)據(jù)區(qū)所占字節(jié)數(shù),該語句寫在最后

35、。(1)DB1 DB 10H DUP(1,2,5 DUP(3),4)(2)DB2 DB 'STUDENTS'。(3)DB3 DW 12H,0ABCDH。(4)COUNT EQU DB2-DB111.若自STRING單元開始存放有一個字符串(以字符“$”結(jié)束):(1)編程統(tǒng)計(jì)該字符串長度(不包含$字符,并假設(shè)長度為兩字節(jié))。(2)把字符串長度的統(tǒng)計(jì)結(jié)果存放在STRING字符串“$”之后的兩個儲存單元中。DATASEGMENTSTRINGDB '123456789ABCDEF$'LENDW ?DATAENDSSTAKSEGMENT STACKDB 100 DUP(?

36、)STAKENDSCODESEGMENTASSUME CS:CODE, DS:DATA, SS:STAKSTART:MOV AX, DATAMOV DS, AXLEA BX, STRINGXOR CX, CXLOP:MOV AL, BXCMP AL,'$'JZ EXITINC CXINC BXJMP LOPEXIT:MOV LEN, CXMOV AH, 4CHINT 21HCODEENDSEND START12.試編寫完整程序,在內(nèi)存單元中定義一個兩位的壓縮BCD碼,將其轉(zhuǎn)換為兩個ASCII碼,分別存入內(nèi)存單元中。DATASEGMENTBCDDB 29HASCDB ?,?DAT

37、AENDSSTAKSEGMENT STACKDB 100 DUP(?)STAKENDSCODESEGMENTASSUME CS:CODE, DS:DATA, SS:STAKSTART:MOV AX, DATAMOV DS, AXLEA BX, BCDLEA SI, ASCMOV AL, BXMOV CL, 4SHR AL, CLADD AL, 30HMOV SI, ALINC SIMOV AL, BXAND AL, 0FHADD AL, 30HMOV SI, ALMOV AH, 4CHINT 21HCODEENDSEND START13.設(shè)計(jì)程序,在內(nèi)存單元中定義一個32位數(shù),將其分為8組,每

38、組4位(一個字節(jié)中的高4位或低4位),將這8組數(shù)依次放入首地址為BUF的內(nèi)存單元中。DATASEGMENTDWORD1DD 12345678HBUFDB 8 DUP(?)DATAENDSSTAKSEGMENT STACKDB 100 DUP(?)STAKENDSCODESEGMENTASSUME CS:CODE, DS:DATA, SS:STAKSTART:MOV AX, DATAMOV DS, AXLEA BX, DWORD1LEA SI, BUFMOV CX, 4LOP:PUSH CXMOV AL, BXMOV CL, 4SHR AL, CLMOV SI, ALINC SIMOV AL,

39、BXAND AL, 0FHMOV SI, ALINC SIINC BXPOP CXLOOP LOPMOV AH, 4CHINT 21HCODEENDSEND START14.試編寫一個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。STAKSEGMENT STACKDB 100 DUP(?)STAKENDSCODESEGMENTASSUME CS:CODE, SS:STAKSTART:MOV AH, 01HINT 21HCMP AL, 1BH;按ESC鍵結(jié)束程序運(yùn)行JE EXITCMP AL, 'a'JB NEXTCMP AL, 'z'JA NEXTS

40、UB AL, 20HNEXT:MOV DL, ALMOV AH, 02HINT 21HJMP STARTEXIT:MOV AH, 4CHINT 21HCODEENDSEND START15.鍵盤輸入10個學(xué)生的成績,試編制一個程序統(tǒng)計(jì)6069分,7079分,8089分,9099分及100分的人數(shù),分別存放到S6,S7,S8,S9及S10單元中。DATASEGMENTS6DB 0S7DB 0S8DB 0S9DB 0S10DB 0DATAENDSSTAKSEGMENT STACKDB 100 DUP(?)STAKENDSCODESEGMENTASSUME CS:CODE, DS:DATA, SS:

41、STAKSTART:MOV AX, DATAMOV DS, AXMOV CX, 10LOP:CALL ASC2HEXMOV BL, 10DIV BLCMP AL, 6JNZ L1INC S6JMP NEXTL1:CMP AL, 7JNZ L2INC S7JMP NEXTL2:CMP AL, 8JNZ L3INC S8JMP NEXTL3:CMP AL,9JNZ L4INC S9JMP NEXTL4:CMP AL,10JNZ NEXTINC S10NEXT: LOOP LOPMOV AH, 4CHINT 21HASC2HEXPROCMOV BL, 0LL:MOV AH, 01HINT 21HCMP AL, 0DHJE EXITSUB AL, 30HXCHG BL, ALMOV BH, 10MUL BHADD BL, ALJMP LLEXIT:MOV DL, 0AHMOV AH, 02HINT 21HMOV AH, 0MOV AL, BLRETASC2HEXENDPCODEENDSEND START17.試編一程序,把地址偏移量為100H單元開

溫馨提示

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

評論

0/150

提交評論