微機(jī)原理與接口技術(shù)第二版課后習(xí)題答案完整版_第1頁(yè)
微機(jī)原理與接口技術(shù)第二版課后習(xí)題答案完整版_第2頁(yè)
微機(jī)原理與接口技術(shù)第二版課后習(xí)題答案完整版_第3頁(yè)
微機(jī)原理與接口技術(shù)第二版課后習(xí)題答案完整版_第4頁(yè)
微機(jī)原理與接口技術(shù)第二版課后習(xí)題答案完整版_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、習(xí)題 11. 什么是匯編語(yǔ)言,匯編程序,和機(jī)器語(yǔ)言?答:機(jī)器語(yǔ)言是用二進(jìn)制代碼表示的計(jì)算機(jī)能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合。匯編語(yǔ)言是面向及其的程序設(shè)計(jì)語(yǔ)言。在匯編語(yǔ)言中,用助記符代替操作碼,用地址符號(hào)或標(biāo) 號(hào)代替地址碼。這種用符號(hào)代替機(jī)器語(yǔ)言的二進(jìn)制碼,就把機(jī)器語(yǔ)言編程了匯編語(yǔ)言。使用匯編語(yǔ)言編寫(xiě)的程序,機(jī)器不能直接識(shí)別,要由一種程序?qū)R編語(yǔ)言翻譯成機(jī)器語(yǔ)言,這 種起翻譯作用的程序叫匯編程序。2. 微型計(jì)算機(jī)系統(tǒng)有哪些特點(diǎn)?具有這些特點(diǎn)的根本原因是什么?答:微型計(jì)算機(jī)的特點(diǎn):功能強(qiáng),可靠性高,價(jià)格低廉,適應(yīng)性強(qiáng)、系統(tǒng)設(shè)計(jì)靈活,周期短、見(jiàn)效 快,體積小、重量輕、耗電省,維護(hù)方便。這些特點(diǎn)是

2、由于微型計(jì)算機(jī)廣泛采用了集成度相當(dāng)高的器件和部件,建立在微細(xì)加工工藝基礎(chǔ)之 上。3. 微型計(jì)算機(jī)系統(tǒng)由哪些功能部件組成?試說(shuō)明“存儲(chǔ)程序控制”的概念。答:微型計(jì)算機(jī)系統(tǒng)的硬件主要由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備組成?!按鎯?chǔ)程序控制”的概念可簡(jiǎn)要地概括為以下幾點(diǎn): 計(jì)算機(jī)(指硬件)應(yīng)由運(yùn)算器、存儲(chǔ)器、控制器和輸入/輸出設(shè)備五大基本部件組成。 在計(jì)算機(jī)內(nèi)部采用二進(jìn)制來(lái)表示程序和數(shù)據(jù)。3 將編好的程序和原始數(shù)據(jù)事先存入存儲(chǔ)器中,然后再啟動(dòng)計(jì)算機(jī)工作,使計(jì)算機(jī)在不需要 人工干預(yù)的情況下,自動(dòng)、高速的從存儲(chǔ)器中取出指令加以執(zhí)行,這就是存儲(chǔ)程序的基本含義。4 五大部件以運(yùn)算器為中心進(jìn)行組織。4

3、. 請(qǐng)說(shuō)明微型計(jì)算機(jī)系統(tǒng)的工作過(guò)程。答:微型計(jì)算機(jī)的基本工作過(guò)程是執(zhí)行程序的過(guò)程,也就是 cpu 自動(dòng)從程序存放的第 1 個(gè)存儲(chǔ)單元 起,逐步取出指令、分析指令,并根據(jù)指令規(guī)定的操作類(lèi)型和操作對(duì)象,執(zhí)行指令規(guī)定的相關(guān)操作。 如此重復(fù),周而復(fù)始,直至執(zhí)行完程序的所有指令,從而實(shí)現(xiàn)程序的基本功能。5. 試說(shuō)明微處理器字長(zhǎng)的意義。答:微型機(jī)的字長(zhǎng)是指由微處理器內(nèi)部一次可以并行處理二進(jìn)制代碼的位數(shù)。它決定著計(jì)算機(jī)內(nèi)部 寄存器、alu 和數(shù)據(jù)總線的位數(shù),反映了一臺(tái)計(jì)算機(jī)的計(jì)算精度,直接影響著機(jī)器的硬件規(guī)模和造 價(jià)。計(jì)算機(jī)的字長(zhǎng)越大,其性能越優(yōu)越。在完成同樣精度的運(yùn)算時(shí),字長(zhǎng)較長(zhǎng)的微處理器比字長(zhǎng)較 短的微

4、處理器運(yùn)算速度快。6. 微機(jī)系統(tǒng)中采用的總線結(jié)構(gòu)有幾種類(lèi)型?各有什么特點(diǎn)?答:微機(jī)主板常用總線有系統(tǒng)總線、i/o 總線、isa 總線、ipci 總線、agp 總線、ieee1394 總線、 usb 總線等類(lèi)型。7. 將下列十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)。 (4.75) =(0100.11) =(4.6) =(4.c)10 2 816 (2.25) =(10.01) =(2.2) =(2.8)10 2 816 (1.875) =(1.111) =(1.7) =(1.e)10 2 8168. 將下列二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)。 (1011.011) =(11.6)210 (1101.01

5、011) =(13.58)210 (111.001) =(7.2)2109. 將下列十進(jìn)制數(shù)轉(zhuǎn)換成 8421bcd 碼。 2006=(0010 0000 0000 0110)bcd 123.456=(0001 0010 0011.0100 0101 0110) 10. 求下列帶符號(hào)十進(jìn)制數(shù)的 8 位基 2 碼補(bǔ)碼。 +127 = 01111111補(bǔ) -1 = 11111111補(bǔ) -128 = 10000000補(bǔ)+1 = 00000001補(bǔ)11. 求下列帶符號(hào)十進(jìn)制數(shù)的 16 位基 2 碼補(bǔ)碼。 +655 = 0000001010001111補(bǔ) -1 =1111111111111110補(bǔ) -32

6、12 =1111011101011100補(bǔ) +100 =0000000001100100補(bǔ)bcd習(xí)題 21. 8086 cpu 在內(nèi)部結(jié)構(gòu)上由哪幾部分組成?各部分的功能是什么?答:8086 cpu 內(nèi)部由兩大獨(dú)立功能部件構(gòu)成,分別是執(zhí)行部件和總線接口部 件。執(zhí)行部件負(fù)責(zé)進(jìn)行所有指令的解釋和執(zhí)行,同時(shí)管理有關(guān)的寄存器???線接口部件是 cpu 在存儲(chǔ)器和 i/o 設(shè)備之間的接口部件,負(fù)責(zé)對(duì)全部引腳的 操作。2. 簡(jiǎn)述 8086 cpu 的寄存器組織。答:8086 cpu 內(nèi)部共有 14 個(gè) 16 位寄存器,按用途可分為數(shù)據(jù)寄存器,段寄 存器,地址指針與變址寄存器和控制寄存器。數(shù)據(jù)寄存器包括累加器

7、,基址 寄存器,計(jì)數(shù)器,和數(shù)據(jù)寄存器。段寄存器用來(lái)存放各分段的邏輯段基值, 并指示當(dāng)前正在使用的 4 個(gè)邏輯段。地址指針與變址寄存器一般用來(lái)存放主 存地址的段內(nèi)偏移地址,用于參與地址運(yùn)算。控制寄存器包括指令寄存器和標(biāo)識(shí)寄存器。3. 試述 8086 cpu 標(biāo)志寄存器各位的含義與作用。答:標(biāo)志寄存器是 16 位的寄存器,但實(shí)際上 8086 只用到 9 位,其中的 6 位 是狀態(tài)標(biāo)識(shí)位,3 位是控制標(biāo)識(shí)位。狀態(tài)標(biāo)志位分別是 cf,pf,af,zf,sf, 和 of;控制標(biāo)志位包括 df,if,tf。cf:進(jìn)位標(biāo)志位。算數(shù)運(yùn)算指令執(zhí)行后,若運(yùn)算結(jié)果的最高位產(chǎn)生進(jìn)位或借 位,則 cf=1,否則 cf=

8、0。pf:奇偶標(biāo)志位。反應(yīng)計(jì)算結(jié)果中 1 的個(gè)數(shù)是偶數(shù)還是奇數(shù)。若運(yùn)算結(jié)果的 低 8 位中含有偶數(shù)個(gè) 1,則 pf=1;否則 pf=0.af:輔助進(jìn)位標(biāo)志。算數(shù)運(yùn)算指令執(zhí)行后,若運(yùn)算結(jié)果的低 4 位向高 4 位產(chǎn) 生進(jìn)位或借位,則 af=1;否則 af=0.zf:零標(biāo)志位。若指令運(yùn)算結(jié)果為 0,則 zf=1;否則 zf=0。sf:符號(hào)標(biāo)志位。它與運(yùn)算結(jié)果最高位相同。of:溢出標(biāo)志位。當(dāng)補(bǔ)碼運(yùn)算有溢出時(shí),of=1;否則 of=0。df:方向標(biāo)志位。用于串操作指令,指令字符串處理時(shí)的方向。if:中斷允許標(biāo)志位。用來(lái)控制 8086 是否允許接收外部中斷請(qǐng)求。tf:?jiǎn)尾綐?biāo)志位。它是為調(diào)試程序而設(shè)定的陷

9、阱控制位。4. 8086 cpu 狀態(tài)標(biāo)志和控制標(biāo)志有何不同?程序中是怎樣利用這兩類(lèi)標(biāo)識(shí)的? 8086 的狀態(tài)標(biāo)志和控制標(biāo)識(shí)分別有哪些?答:狀態(tài)標(biāo)志位反應(yīng)了當(dāng)前運(yùn)算和操作結(jié)果的狀態(tài)條件,可作為程序控制轉(zhuǎn) 移與否的依據(jù)。它們分別是 cf,pf,af,zf,sf,和 of??刂茦?biāo)志位用來(lái)控 制 cpu 的操作,由指令進(jìn)行置位和復(fù)位,控制標(biāo)志位包括 df,if,tf。5. 將 1001 1100 和 1110 0101 相加后,標(biāo)識(shí)寄存器中 cf, pf, af, zf, sf, of 各為何值?答:cf=1,pf=1,af=1,zf=0,sf=1,of=06. 什么是存儲(chǔ)器的物理地址和邏輯地址?在

10、 8086 系統(tǒng)中,如何由邏輯地址計(jì) 算物理地址?答:邏輯地址是思維性的表示,由段地址和偏移地址聯(lián)合表示的地址類(lèi)型叫 邏輯地址。物理地址是真實(shí)存在的唯一地址,指的是存儲(chǔ)器中各個(gè)單元的單 元號(hào)。在 8086 系統(tǒng)中,物理地址=段地址10h偏移地址7. 段寄存器 cs=1200h,指令指針寄存器 ip=4000h ,此時(shí),指令的物理地址為 多少?指向這一地址的 cs 指和 ip 值是唯一的嗎?答:此指令的物理地址=1200h10h4000h=16000h 并且指向這一物理地址 的 cs 值和 ip 值并不是唯一的。8. 在 8086 系統(tǒng)中,邏輯地址 ffff:0001,00a2:37f 和 b8

11、00:173f 的物理地 址分別是多少?答:邏輯地址物理地址ffff:0001ffff1h00a2:3tf00d9fhb800:173fb973fh9. 在 8086 系統(tǒng)中,從物理地址 388h 開(kāi)始順序存放下列 3 個(gè)雙字節(jié)的數(shù)據(jù) 651ah , d761h 和 007bh ,請(qǐng)問(wèn)物理地址 388h ,389h,38ah,38bh,38ch 和 38dh 6 個(gè)單元中分別是什么數(shù)據(jù)?答:(388h)=1ah,(389h)=65h,(38ah)=61h,(38bh)=dth,(38ch)=7bh, (38dh)=00h10. 8086 微處理器有哪幾種工作模式?各有什么特點(diǎn)?答:8086 微

12、處理器有最大和最小工作模式。在最小模式下:8086 cpu 直接產(chǎn)生全部總線控制信號(hào)(dt/r,den,ale, m/io)和命令輸出信號(hào)(rd,wr,inta)并提出請(qǐng)求訪問(wèn)總線的邏輯信號(hào) hold, hlda。在最大工作模式下,必須配置 8288 總線控制器,并且根據(jù) 8086 提供的 狀態(tài)信號(hào) s2,s1,s0,輸出讀寫(xiě)控制命令,可以提供靈活多變的系統(tǒng)配置, 以實(shí)現(xiàn)最佳的系統(tǒng)性能。11. 簡(jiǎn)述 8086 引腳信號(hào)中 m/io,dt/r,rd,wr,ale,den 和 bhe 的作用。答:m/io:輸出信號(hào),高電平時(shí),表示 cpu 與存儲(chǔ)器之間數(shù)據(jù)傳輸;低電 平時(shí),表示 cpu 與 i/o

13、 設(shè)備之間數(shù)據(jù)傳輸。dt/r:控制其數(shù)據(jù)傳輸方向的信號(hào)。dt/r=1 時(shí),進(jìn)行數(shù)據(jù)發(fā)送;dt/r=0 時(shí),進(jìn)行數(shù)據(jù)接收。rd:cpu 的讀信號(hào),rd=0 時(shí),表示 8086 為存儲(chǔ)口或 i/o 端口讀操作。wr:cpu 的寫(xiě)信號(hào),wr =0 時(shí),表示 8086 為存儲(chǔ)口或 i/o 端口寫(xiě)操作。 ale:地址存鎖信號(hào),在 t1 能時(shí)刻有效。den:數(shù)據(jù)選通信號(hào),當(dāng) den 有效時(shí),表示允許傳輸。bhe:數(shù)據(jù)總線允許信號(hào),與 a0 組合使用,表示是否訪問(wèn)奇地址字節(jié)。 12. 簡(jiǎn)述 8086 讀總線周期和寫(xiě)總線周期和引腳上的信號(hào)動(dòng)尖態(tài)變化過(guò)程。 8086的讀周期時(shí)序和寫(xiě)周期時(shí)序的區(qū)別有哪些?答: 在

14、 8086 讀周期內(nèi),有關(guān)總線信號(hào)的變化如下:m/io:在整個(gè)讀周期保持有效,當(dāng)進(jìn)行存儲(chǔ)器讀操作時(shí),m/io為高電平;當(dāng)進(jìn)行 i/o 端口讀操作時(shí),m/io為低電平。a /s a /s :在 t 期間,輸出 cpu 要讀取的存儲(chǔ)單元或 i/o 端口的地址 19 6 16 3 1高 4 位。t t 期間輸出狀態(tài)信息 s -s 。2 4 6 3bhe/s :在 t 期間,輸出 bhe 有效信號(hào)( 7 1bhe為低電平),表示高 8 位數(shù)據(jù)總線上的信息可以使用, bhe 信號(hào)通常作為奇地址存儲(chǔ)體的體選信號(hào) (偶地址 存儲(chǔ)體的體選信號(hào)是最低地址位 a )。t t 期間輸出高電平。0 2 4ad ad

15、:在 t 期間,輸出 cpu 要讀取的存儲(chǔ)單元或 i/o 端口的地址 a l5 0 1 15a 。t 期間為高阻態(tài),t t 期間,存儲(chǔ)單元或 i/o 端口將數(shù)據(jù)送上數(shù)據(jù)總線。 0 2 3 4cpu 從 ad ad 上接收數(shù)據(jù)。l5 0ale:在 t 期間地址鎖存有效信號(hào),為一正脈沖,系統(tǒng)中的地址鎖存器正1是利用該脈沖的下降沿來(lái)鎖存 a /s a /s ,ad ad 中的 20 位地址信息以及19 6 16 3 l5 0bhe。 rd :t 期間輸出低電平送到被選中的存儲(chǔ)器或 i/o 接口,注意,只有被 2地址信號(hào)選中的存儲(chǔ)單元或 i/o 端口,才會(huì)被 rd 信號(hào)從中讀出數(shù)據(jù)(數(shù)據(jù)送上數(shù)據(jù)總線

16、ad ad )。 l5 0dt/r:在整個(gè)總線周期內(nèi)保持低電平,表示本總線周期為讀周期,在接有數(shù)據(jù)總線收發(fā)器的系統(tǒng)中,用來(lái)控制數(shù)據(jù)傳輸方向。 den :在 t t 期間輸出有效低電平,表示數(shù)據(jù)有效,在接有數(shù)據(jù)總線收2 3發(fā)器的系統(tǒng)中,用來(lái)實(shí)現(xiàn)數(shù)據(jù)的選通。總線寫(xiě)操作的時(shí)序與讀操作時(shí)序相似,其不同處在于:ad ad :在 t t 期間送上欲輸出的的數(shù)據(jù),而無(wú)高阻態(tài)。l5 0 2 4 wr :從 t t ,wr 引腳輸出有效低電平,該信號(hào)送到所有的存儲(chǔ)器和 i/o2 4接口。注意,只有被地址信號(hào)選中的存儲(chǔ)單元或 i/o 端口才會(huì)被 據(jù)。wr信號(hào)寫(xiě)入數(shù)dt/ r :在整個(gè)總線周期內(nèi)保持高電平,表示本總

17、線周期為寫(xiě)周期,在接 有數(shù)據(jù)總線收發(fā)器的系統(tǒng)中,用來(lái)控制數(shù)據(jù)傳輸方向。習(xí)題 31. 假定(ds)=2000h ,(es)=2100h ,(ss)=1500h ,(si)=00a0h ,(bx)=0100h , (bp)=0010h ,數(shù)據(jù)變量 val 的偏移地址為 0050h,請(qǐng)指出下列指令原操作 數(shù)是什么尋址方式,其物理地址是多少?(1) mov ax, 0abh(3) mov ax, val(2) mov ax, 100h(4) mov bx, si(5) mov al, valbx (6) mov cl, bxsi(7) mov valsi, bx (8) mov bpsi, 100答:

18、(1) 立即數(shù)尋址,無(wú)物理地址(2) 直接尋址,物理地址=2000h10h+100h=20100h(3) 直接尋址,物理地址=2000h10h+0050h=20050h(4) 寄存器間接尋址,物理地址=2000h10h+00a0=200a0h(5) 相對(duì)寄存器尋址,物理地址=2000h10h+(0050+0100h)=20150h (6) 基址加變尋址,物理地址=2000h10h+(0100h+00a0h)=201a0h (7) 寄存器尋址,無(wú)物理地址(8) 立即數(shù)尋址,無(wú)物理地址2. 已知(ss)=0ffa0h,(sp)=00b0h ,先執(zhí)行兩條把 8057h 和 0f79h 分別進(jìn)棧 的

19、push 指令,再執(zhí)行一條 pop 指令,試畫(huà)出堆棧區(qū)和 sp 內(nèi)容變化的過(guò)程示 意圖。答:“8057h”進(jìn)棧,則 sp 自動(dòng)從 00b0h 指向 00b2h,“0f79h”進(jìn)棧,則 sp 自動(dòng) 從 00b2h 指向 00b4h;執(zhí)行一條 pop 指令,“0f79h”被彈出棧,sp 從 00b4h 指向 00b2h。圖略。3. 設(shè)有關(guān)寄存器及存儲(chǔ)單元的內(nèi)容如下:(ds)=2000h, (bx)=0100h, (ax)=1200h, (si)=0002h, (20100h)=12h, (20101h)=34h, (20102h)=56h, (20103h)=78h, (21200h)=2ah,(

20、21201h)=4ch, (21202h)=0b7h, (21203h)=65h.試說(shuō)明下列各條指令單獨(dú)執(zhí)行后相關(guān)寄存器或存儲(chǔ)單元的內(nèi)容。(1)mov ax, 1800h (2) mov ax, bx(3) mov bx, 1200h (4) mov dx, 1100bx(5) mov bxsi, al (6) mov ax, 1100bxsi4.5.6.答:(1) (ax)=1800h (2) (ax)=0100h (3) (bx)=4c2ah(4) (dx)=4c2ah (5) (20102h)=00h (6) (ax)=65b7h寫(xiě)出實(shí)現(xiàn)下列計(jì)算的指令序列。(1) z=w+(x+z) (

21、2) z=w-(x+6)-(r+9)答:(1) mov ax, zadd ax, xadd ax, wmov z, ax(2) mov ax, wadd x, 6sub ax, xadd r, 9sub ax, rmov z, ax若在數(shù)據(jù)段中從字節(jié)變量 table 相應(yīng)的單元開(kāi)始存放了 015 的平方值,試 寫(xiě)出包含 xlat 指令的指令序列查找 n(015)中的某個(gè)平方數(shù)。答:lea bx, tablemov al, clxlat寫(xiě)出實(shí)現(xiàn)下列計(jì)算的指令序列。(1) z=(w*x)/(r+6) (2) z=(w-x)/5*y)*2答:(1) mov ax, wimul xadd r, 6id

22、iv rmov z, ax(2) mov ax, wsub ax, xmov bl, 5idiv blcbw7.imul ymov bx, 2imul bxmov z, ax假定(dx)=1100100110111001b,cl=3 ,cf=1, 試確定下列各條指令單獨(dú)執(zhí)行后 dx 的值。(1) shr dx, 1 (2) shl dl, 1 (3) sal dh, 1 (4) sar dx, cl (5) ror dx, cl (6) rol dl, cl (7) rcr dl, 1 (8) rcl dx, cl 答:(1) (dx)=0110 0100 1101 1100b (2) (dx

23、)=1100 1001 0111 0010b(3) (dx)=1001 0010 1011 1001b (4) (dx)= 1111 1001 0011 0111b (5) (dx)= 0011 1001 0011 0111b (6)(dx)= 0100 1101 1100 1110b (7) (dx)= 1110 0100 1101 1100b (8) (dx)= 1001 0011 0111 0011b8.已知程序段如下:mov ax, 1234hmov cl, 4rol ax, cldec axmov cx, 4mul cxint 20h試問(wèn):(1)每條指令執(zhí)行后, ax 寄存器的內(nèi)容是

24、什么?( 2)每條指令執(zhí) 行后,cf,sf 及 zf 的值分別是什么?(3)程序運(yùn)行結(jié)束后, ax 及 dx 寄 存器的值為多少?答:mov ax, 1234h (ax)=1234h, cf=0,sf=0,zf=0mov cl, 4rol ax,cl (ax)=2341h,cf=1,sf=0,zf=0dec ax (ax)=2340h,cf=1,sf=0,zf=0mov cx,4mull cx (ax)=8d00h, cf=0,sf=1,zf=0int 20h結(jié)束后,(dx)=0000h, (ax)=8000h9. 試分析下列程序段:add ax, bxjnc l2sub ax, bxjnc

25、l3jmp shortl5如果 ax,bx 的內(nèi)容給定如下:ax bx(1) 14c6h 80dch(2) b568h 54b7h問(wèn)該程序在上述情況下執(zhí)行后,程序轉(zhuǎn)向何處。 答:(1)轉(zhuǎn)到 l2 處(2)轉(zhuǎn)到 l3 處習(xí)題 41下列語(yǔ)句在存儲(chǔ)器中分別為變量分配多少字節(jié)空間?并畫(huà)出存儲(chǔ)空間的分配 圖。var1 db 10 ,2var2 dw 5 dup (?),0var3 db how are you?,3 dup(1,2)var4 dd -1 ,1,0答:字節(jié)空間:var1:2;var2:12;var3:13;var4:8。存儲(chǔ)空間的分配圖:2假定 var1 和 var2 為字變量, lab

26、為標(biāo)號(hào),試指出下列指令的錯(cuò)誤之處。(1)add var1,var2(3)jmp labcx (5) mov 1000h ,100(2)sub al,var1(4)jnz var1 (6)shl al, 4答:(1) 在算術(shù)運(yùn)算指令中,兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址方式(2) al 為字節(jié),var1 為字變量,字長(zhǎng)不相等;(3) 錯(cuò)誤 1:寄存器相對(duì)尋址方式,只能使用基址或變址寄存器,不能使用 cx 寄存器。錯(cuò)誤 2:匯編格式錯(cuò)誤,無(wú)法判段是段內(nèi)轉(zhuǎn)移還是段間轉(zhuǎn)移。(4) 轉(zhuǎn)向地址應(yīng)為標(biāo)號(hào),不能是變量;(5) 目的操作數(shù)的類(lèi)型不確定;(6) shl 指令中,當(dāng)所移位數(shù)超過(guò) 1 時(shí),必須用 cl 取

27、代所移位數(shù)。3對(duì)于下面的符號(hào)定義,指出下列指令的錯(cuò)誤。a1 db ?a2 db 10k1 equ 1024(1) mov k1,ax (2)mov a1,ax(3)cmp a1,a2 (4)k1 equ 2048答:(1)k1 為常量,不能用 mov 指令賦值;(2) a1 為字節(jié),ax 為字變量,類(lèi)型不一致;(3) a1 和 a2 同為存儲(chǔ)器尋址方式,不符合語(yǔ)法規(guī)則;(4) k1 重新賦值前,必須用 purge 釋放。4數(shù)據(jù)定義語(yǔ)句如下所示 :first db 90h,5fh,6eh,69hsecond db 5 dup(?)third db 5 dup(?)forth db 4 dup (

28、?)自 first 單元開(kāi)始存放的是一個(gè)四字節(jié)的十六進(jìn)制數(shù)(低位字節(jié)在前 ),要求: 編一段程序?qū)⑦@個(gè)數(shù)左移兩位后存放到自 second 開(kāi)始的單元,右移兩位后存放 到自 third 開(kāi)始的單元 ,求補(bǔ)后放到 forth 開(kāi)始的單元。 (注意保留移出部分 ) 答:data segmentfirst db 90h ,5fh,6eh,69hsecond db 5 dup(?)third db 5 dup(?)forth db 4 dup (?)data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axlea si,fi

29、rstlllll ,secondmmmmm ,2clc;左移 2 位mov ax ,word ptr si ;ax=5f90h 為低十 六位數(shù)據(jù)inc siinc simov dx ,word ptr si ;dx=696eh 為高十 六位數(shù)據(jù)push dx ;保存原有的高十六位數(shù) 據(jù)push ax ;保存原有的低十六位數(shù) 據(jù)rol dx,cl;將高位數(shù)據(jù)不帶進(jìn)位循環(huán)左移兩位,即高 2 位數(shù)據(jù)在 dl 的低 2 位and dl,03h ;讓 dl 中僅保存移出的高2 位數(shù)據(jù)mov di+4 ,dl;將移出的高 2 位數(shù)據(jù)放入 second 中的 最高單元中rol ax,cl;將低位數(shù)據(jù)不帶進(jìn)位

30、循環(huán)左移兩位,即 ax 的高 2 位在 al 的低 2 位and al,03h;讓 al 中僅保存移出的 ax 高 2 位數(shù)據(jù) mov bl ,al;將 al 中的數(shù)據(jù)放入 bl 中保存pop ax;彈出原有的低十六位數(shù)據(jù)pop dx;彈出原有的高十六位數(shù)據(jù)shl dx,cl;將高位數(shù)據(jù)算術(shù)邏輯左移 2 位shl ax,cl;將低位數(shù)據(jù)算術(shù)邏輯左移 2 位or dl,bl;將 ax 中移出的高 2 位數(shù)據(jù)放入 dx 的低 2 位 mov word ptr di ,axmov word ptr di+2 ,dx;右移 2 位lea si,firstlllll ,thirdmmmmm ,2clcm

31、ov ax,word ptr si ;ax=5f90h 為低十六位數(shù)據(jù) inc siinc simov dx,word ptr si ; dx=696eh 為高十六位數(shù)據(jù) push dx;保存原有的高十六位數(shù)據(jù)push ax;保存原有的低十六位數(shù)據(jù)ror ax,cl;將低位數(shù)據(jù)不帶進(jìn)位循環(huán)右移兩位,即低 2 位 數(shù)據(jù)在 ah 的高 2 位and ah,0c0h;讓 ah 中僅保存移出的低 2 位數(shù)據(jù)push cxmov cx,6shr ah,clpop cxmov di ,ah ;將移出的低 2 位數(shù)據(jù)放入 third 中的 最低單元中ror dx, cl;將低位數(shù)據(jù)不帶進(jìn)位循環(huán)左移兩位,即

32、ax 的高 2 位在 al 的低 2 位and dh,0c0h ;讓 dh 中僅保存移出的 dx 低 2 位 數(shù)據(jù)mov bl ,dh ;將 dh 中的數(shù)據(jù)放入 bl 中保存 pop ax ;彈出原有的低十六位數(shù)據(jù) pop dx ;彈出原有的高十六位數(shù)據(jù) shr dx,cl ;將高位數(shù)據(jù)算術(shù)邏輯左移 2 位 shr ax,cl ;將低位數(shù)據(jù)算術(shù)邏輯左移 2 位 or ah,bl ;將 dx 中移出的低 2 位數(shù)據(jù)放入 ax的高 2 位mov word ptr di+1 , axmov word ptr di+3 ,dx;求補(bǔ)lea si,firstlllll ,forthmmmmm ,word

33、 ptr si ;ax=5f90h 為低十六位數(shù)據(jù) inc siinc simov dx,word ptr si ; dx=696eh 為高十六位數(shù)據(jù) xor ax, 0ffffh ;將低十六位取反xor dx, offffh ;將高十六位按位取反clcadd ax,01h ;低位加 1,即可為原數(shù)的求 補(bǔ)adc dx,0 ;高位加低位加法時(shí)的進(jìn)位 mov word ptr di , axmov word ptr di+2 ,dxmov ah,4chint 21hcode endsend start5. 試編程序?qū)?nèi)存從 40000h 到 4bfffh 的每個(gè)單元中均寫(xiě)入 55h,并再逐個(gè)單

34、元讀出比較,看寫(xiě)入的與讀出的是否一致。若全對(duì),則將 al 置 7eh; 只要有 錯(cuò),則將 al 置 81h。答:data segmentda1 db 55hcode segmentassume cs:code,ds:datastart: mov ax,4000hmov ds,axmov cx,0c000hmov bx,0000hmov ah,55hnext1: mov byte ptrbx,ahinc bxloop next1mov bx,0000hmov cx,0c000hmov al,81hnext2: mov ah, bxcmp ah,55hjnz exitinc bxloop next

35、2mov al,7ehexit: mov ah,4chint 21hcode endsend start6. 在當(dāng)前數(shù)據(jù)段 4000h 開(kāi)始的 128 個(gè)單元中存放一組數(shù)據(jù),試編程序?qū)⑺鼈冺?序搬移到 a000h 開(kāi)始的順序 128 個(gè)單元中,并將兩個(gè)數(shù)據(jù)塊逐個(gè)單元進(jìn)行比 較; 若有錯(cuò)將 bl 置 00h; 全對(duì)則將 bl 置 ffh,試編程序。答:data segmentorg 400hda1 db 128 dup(?)org 0a00hda2 db 128 dup(?)data endscode segmentassume cs:code,ds:data,es:datastart: mov

36、 ax,datamov ds,axlea si,da1lllll ,da2mmmmm ,128again: mov al,siinc siinc diloop againlea si, da1lllll , da2mmmmm ,128next: mov al,simov bl,dicmp al,bljnz errorinc siinc dimov bl,0ffhloop nextjmp exiterror: mov bl,00hexit: mov ah,4chint 21hcode endsend start7. 設(shè)變量單元 a、b、c 存放有 3 個(gè)數(shù),若 3 個(gè)數(shù)都不為零,則求 3 個(gè)數(shù)的

37、和, 存放在 d 中; 若有一個(gè)為零,則將其余兩個(gè)也清零,試編寫(xiě)程序。答:data segmentaaa ?bbb ?ccc ?data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axcmp a,00hjnz lp1mov b,0mov c,0jmp lp4lp1: cmp b,00hjnz lp2mov a,0mov c,0jmp lp4lp2: cmp c,00hjnz lp3mov a,0mov b,0jmp lp4lp3: mov al,aadd al,badd al,cmov ah,4chlp4: i

38、nt 21hcode endsend start8. 有一個(gè) 100 個(gè)字節(jié)的數(shù)據(jù)表,表內(nèi)元素已按從大到小的順序排列好,現(xiàn)給定 一元素,試編程序在表內(nèi)查找,若表內(nèi)已有此元素,則結(jié)束 ; 否則,按順序?qū)?此元素插入表中適當(dāng)?shù)奈恢?,并修改表長(zhǎng)。答:data segmentbuff db 100 dup(?)da1 db (?)length db 0data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov si,0mov al,da1mov cx,100find0: cmp buffsi,aljz exitin

39、c siloop find0mov di,99mov si,0compare: cmp buffdi,aljg insertmov bl,buffdimov buffdi+1,bldec dicmp di,sijnl comparejmp exitinsert: mov buffdi+1,almov length , 101exit: mov ah,4chint 21hcode endsend start9. 內(nèi)存中以 first 和 second 開(kāi)始的單元中分別存放著兩個(gè) 16 位組合的十進(jìn)制 (bcd 碼)數(shù),低位在前。編程序求這兩個(gè)數(shù)的組合的十進(jìn)制和 ,并存到以 third 開(kāi) 始的單

40、元。答:data segmentfirst dd 34341212hsecond dd 78785656hthird db ?,?,?,?data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axlea si,firstlea di,secondlllll ,thirdmmmmm ,4clcagain: mov al,byte ptrsimov dl,byte ptrdiadc al,dldaamov byte ptrbx,alinc siinc diinc bxloop againjc aamov byte p

41、trbx,0jmp exitaa: mov byte ptrbx,1exit: mov ah,4chint 21hcode endsend start10. 編寫(xiě)一段程序,接收從鍵盤(pán)輸入的 10 個(gè)數(shù),輸入回車(chē)符表示結(jié)束,然后將 這些數(shù)加密后存于 buff 緩沖區(qū)中。加密表如下 :輸入數(shù)字 : 0,1,2,3,4,5,6,7,8,9; 密碼數(shù)字: 7,5,9,1,3,6,8, 0,2,4。答:data segmentmitab db 7591368024cont equ $-mitabbuff db 10 dup (?),$yuanwen db 10 dup (?),$data endscod

42、e segmentassume cscode,dsdatastart: mov ax,datamov ds,axmov si,0mov cx,continput: mov ah,1int 21hcmp al,13jz exitand al,0fhmov yuanwensi ,alinc siloop inputexit : lea bx,mitabmov cx,simov si,0jiami: mov al,yuanwensixlat mitabmovbuffsi,alinc siloop jiamimov ah, 4chint 21hcode endsend start11.試編程序,統(tǒng)計(jì)由

43、 40000h 開(kāi)始的 16k 個(gè)單元中所存放的字符“ a”的個(gè)數(shù), 并將結(jié)果存放在 dx 中。答:data segmentda1 db abuff db 4000h dup(?)data endscode segmentassume cs:code,ds:datastart: mov ax,4000hmov ds,axmov bx,0mov cx,4000hfind: mov al,bxmov bl,da1cmp al,bljnz nextinc dxnext: inc siloop findmov ah,4chint 21hcode endsend start12. 在當(dāng)前數(shù)據(jù)段 (ds)

44、,偏移地址為 datab 開(kāi)始的順序 80 個(gè)單元中,存放著某 班 80 個(gè)同學(xué)某門(mén)考試成績(jī)。按如下要求編寫(xiě)程序 :(1) 編寫(xiě)程序統(tǒng)計(jì) 90 分; 80 分89 分; 70 分79 分; 60 分69 分,60 分的人數(shù)各為多少,并將結(jié)果放在同一數(shù)據(jù)段、偏移地址為 btrx 開(kāi)始的順序單 元中。(2) 試編程序,求該班這門(mén)課的平均成績(jī)?yōu)槎嗌伲⒎旁谠摂?shù)據(jù)段的 aver 單元 中。答:data segmentbuff dw 80 dup(?)da9 db 0da8 db 0da7 db 0da6 db 0da5 db 0aver db 0data endscode segmentassume

45、cs:code,ds:datastart: mov ax,datamov ds,axmov cx,80compare: mov bx,0cmp buffbx,90jb lp8inc da9jmp nextlp8: cmp buffbx,80jb lp7inc da8jmp nextlp7: cmp buffbx,70jb lp6inc da7jmp nextlp6: cmp buffbx,60jb lp5inc da6jmp nextlp5: inc da5jmp nextnext: inc bxloop comparemov cx,80xor ax,axmov bx,00sum: add a

46、x,buffbxinc bxloop lp1mov cl,80div clmov aver , almov ah,4chint 21hcode endsend start13. 編寫(xiě)一個(gè)子程序,對(duì) al 中的數(shù)據(jù)進(jìn)行偶校驗(yàn),并將經(jīng)過(guò)校驗(yàn)的結(jié)果放回 al 中。答:jiou procpush cxpush bxxor ah, ahpush axmov cl, 7loop1: sar al, 1adc ah, 0loop loop1mov al, ahxor ah, ahmov bl, 2div blmov bl, ahpop axror bl, 1or al, blpop bxpop cxretj

47、iou endp14. 利用上題的子程序,對(duì) 80000h 開(kāi)始的 256 個(gè)單元的數(shù)據(jù)加上偶校驗(yàn),試編 程序。code segmentassume cs: codestart : mov ax, 8000hmov ds, axmov si, 0mov cx, 256lp: mov al, sicall jioumov si, alinc siloop lpmov ah, 4chint 21hjiou procpush cxpush bxxor ah, ahpush axmov cl, 7loop1: sar al, 1adc ah, 0loop loop1mov al, ahxor ah,

48、ahmov bl, 2div blmov bl, ahpop axror bl, 1or al, blpop bxpop cxretjiou endpcode endsend start習(xí)題 51. 試述 dram 的工作特點(diǎn);與 sram 相比有什么長(zhǎng)處和不足之處;說(shuō)明它的使用 場(chǎng)合。答:dram,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,需要不斷的刷新,才能保存數(shù)據(jù)。 而且是 行列地址復(fù)用的,許多都有頁(yè)模式。 sram,靜態(tài)的隨機(jī)存取存儲(chǔ)器,加電情況 下,不需要刷新,數(shù)據(jù)不會(huì)丟失,而且一般不是行列地址復(fù)用的。與 sram 相比,dram 價(jià)格便宜、速度慢、容量大,主要用來(lái)做主存儲(chǔ)器,存 儲(chǔ)程序和數(shù)據(jù);而 sra

49、m 主要用在 cache 等對(duì)速度要求高的情況。2. 試述 dram 刷新過(guò)程和正常讀/寫(xiě)過(guò)程的區(qū)別。答:刷新是以行為單位進(jìn)行,且刷新過(guò)程中不能進(jìn)行讀寫(xiě)操作。3. 設(shè)有一個(gè)具有 20 位地址和 32 位字長(zhǎng)的存儲(chǔ)器,問(wèn):(1) 該存儲(chǔ)器能存儲(chǔ)多少個(gè)字節(jié)的信息?(2) 如果存儲(chǔ)器由 512k*8 位 sram 芯片組成,需要多少片?(3) 需要多少位作芯片選擇?答:(1)該存儲(chǔ)器能存儲(chǔ) 4mb 的信息。(2) 需要 8 片 512k*8 位的芯片。(3) 需要 1 位做芯片選擇。4. 對(duì)于 8k8 位 ram 組成的存儲(chǔ)器系統(tǒng),若某組的起始地址為 08000h ,則其末 地址為多少?答:末地址為 9fff.5. 在 8088 最大方式系統(tǒng)總線上擴(kuò)充設(shè)計(jì) 4k 字節(jié)的 sram 存儲(chǔ)器電路。sram 芯 片選用 intel 2114,起始地址從 0000h。試畫(huà)出此存儲(chǔ)器電路與系統(tǒng)總線的 連接圖。答:系統(tǒng)容量為 4k*8bit,芯片容量為 1k*4bit,所以一共需要 8 片芯片 連接圖如下:6. 在 8088 系統(tǒng)總線上擴(kuò)充設(shè)計(jì) 8k 的字節(jié)的 sram 存儲(chǔ)器電路。 sram 芯片選用 intel 6264 ,起始地址從 04000h 開(kāi)始,譯碼器電路 74ls138.(1) 計(jì)算此 ram 存儲(chǔ)區(qū)的最高地址是多少。(2) 畫(huà)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論