微機原理及應用習題庫與答案

2023-01-25 17:24:06 字數 5775 閱讀 8823

習題與練習題1

第1章緒論

1. 計算機分那幾類?各有什麼特點?

2. 簡述微處理器、微計算機及微計算機系統三個術語的內涵。

答:微處理器是微計算機系統的核心硬體部件,對系統的效能起決定性的影響。微計算機包括80x86微處理器有幾代?各代的名稱是什麼?

80386/80486:32位機。

4.採用一種匯流排標準進行微型計算機的硬體結構設計具有什麼優點?

5.乙個匯流排的技術規範應包括哪些部分?

6.匯流排的定義是什麼?簡述匯流排的發展過程。

7.微型計算機系統匯流排由哪三部分組成?它們各自的功能是什麼?

第3章微處理器結構及微計算機的組成

1. 8086是多少位的微處理器?為什麼?

2. eu與biu各自的功能是什麼?如何協同工作?

3. 086/8088與其前一代微處理器8085相比,內部操作有什麼改進?

4. 8086/8088微處理器內部有那些暫存器,它們的主要作用是什麼?

答:執行部件有8個16位暫存器,ax、bx、cx、dx、sp、bp、di、si。ax、bx、cx、確定5ch+98h後各標誌位的值。並說明結果的正確性。

5. 8086對儲存器的管理為什麼採用分段的辦法?

6.在8086中,邏輯位址、偏移位址、實體地址分別指的是什麼?具體說明。

7.給定乙個存放資料的記憶體單元的偏移位址是20c0h,(ds)=0c00eh,求出該記憶體單元的實體地址。

8.8086/8088為什麼採用位址/資料引線復用技術?

9. 8086與8088的主要區別是什麼?

10. 怎樣確定8086的最大或最小工作模式?最大、最小模式產生控制訊號的方法有何不同

11. 8086被復位以後,有關暫存器的狀態是什麼?微處理器從何處開始執行程式?

12. 8086基本匯流排週期是如何組成的?各狀態中完成什麼基本操作?

13. 結合8086最小模式下匯流排操作時序圖,說明ale、m/io#、dt/r#、rd#、ready訊號的功能。

14. 8086中斷分哪兩類?8086可處理多少種中斷?

15. 8086可遮蔽中斷請求輸入線是什麼?「可遮蔽」的涵義是什麼?

16. 8086的中斷向量表如何組成?作用是什麼?

17.8086如何響應乙個可遮蔽中斷請求?簡述響應過程。

18. 什麼是匯流排請求?8086在最小工作模式下,有關匯流排請求的訊號引腳是什麼?

19. 簡述在最小工作模式下,8086如何響應乙個匯流排請求?

20.在基於8086的微計算機系統中,儲存器是如何組織的?是如何與處理器匯流排連線的?

bhe#訊號起什麼作用?

21.「8086是乙個16位微處理器」,這句話的涵義主要指的是什麼?

22.80x86系列微處理器採取與先前的微處理器相容的技術路線,有什麼好處?有什麼不足?

習題與練習題2

第4章 8086指令系統及定址方式

1. 根據下列要求編寫乙個組合語言程式::

(1) **段的段名為cod_sg

(2) 資料段的段名為dat_sg

(3) 堆疊段的段名為stk_sg

(4) 變數high_dat所包含的資料為95

(5) 將變數high_dat裝入暫存器ah,bh和dl

(6) 程式執行的入口位址為start

答案:dat_sg segemnt

high_dat db 95

dat_sg ends

;stk_sg segment

dw 64 dup(?)

stk_sg ends

;cod_sg segment

main proc far

assume cs: cod_sg, ds: dat_sg, ss: stk_sg

start: mov ax, dat-sg

mov ds, ax

mov ah, high_dat

mov bh, ah

mov dl, ah

mov ah, 4ch

int 21h

main endp

cod_sg ends

end start

2. 指出下列程式中的錯誤:

staksg segment

db 100 dup(?)

sta_sg ends

dtseg segment

data1 db ?

dtseg end

cdseg segment

main proc far

start: mov ds,datseg

mov al,34h

add al,4fh

mov data,al

start endp

cdseg ends

end答案:

改正後:

staksg segment

db 100 dup(?)

staksg ends

dtseg segment

data1 db ?

dtseg ends

cdseg segment

main proc far

assume cs: cdseg, ds: dtseg, ss: staksg

start: mov ax, dtseg

mov al, 34h

add al, 4fh

mov data1, al

mov ah, 4ch

main endp

cdseg ends

end start

3. 將下列檔案型別填入空格:

(1) .obj (2) .exe (3) .crf (4) .asm (5) .lst (6) .map

編輯程式輸出的檔案有

匯程式設計序輸出的檔案有

連線程式輸出的檔案有

4. 下列標號為什麼是非法的?

(1) (2) 1_num (3) test-data (4) ret (5) new item

答案:非法標號: (1)因為『.』只允許是標號的第乙個字元

(2)第乙個字元不能為數字

(3)不允許出現『-』

(4)不能是保留字,如助記符

(5)不能有空格

5. 下面的資料項定義了多少個位元組?

data_1 db 6 dup(4 dup(0ffh))

答案: 24位元組

6. 對於下面兩個資料段,偏移位址為10h和11h的兩個位元組中的資料是一樣的嗎?為什麼?

dtseg segmentdtseg segment

org 10horg 10h

data1 db 72hdata1 dw 7204h

db 04hdtseg ends

dtseg ends

答案:不一樣. 分別是72h, 04h和04h, 72h. 儲存字時低8位存在低位元組,高8位存在高位元組.

7. 下面的資料項設定了多少個位元組?

(1) asc_data db 『12342) hex_data dw 1234h

答案: (1) 設定了4個位元組 (2) 設定了2個位元組

8. 執行下列指令後, ax暫存器中的內容是什麼?

table dw 10,20,30,40,50

entry dw 3

mov bx,offset table

add bx,entry

mov ax,[bx]

答案: (ax)=1e00h

9. 指出下列指令的錯誤:

(1) mov ah,bx2) mov [si],[bx3) mov ax,[si][di]

(4) mov ax,[bx][bp5) mov [bx],es:ax (6) mov byte ptr[bx],1000

(7) mov ax,offset [si] (8) mov cs,ax9) mov ds,2000h

答案:(1) 源、目的字長不一致

(2) 源、目的不能同時為存貯器定址方式

(3) 基址變址方式不能有 si和di的組合

(4) 基址變址方式不能有 bx和bp的組合

(5) 在8086定址方式中,ax不能作為基址暫存器使用,而且源、目的不能同時為存貯器定址方式

(6) 1000超出乙個位元組的表數範圍

(7) offset只用於簡單變數,應去掉

(8) cs不能作為目的暫存器

(9) 段位址不能直接送入資料段暫存器

10data segment

table_addr dw 1234h

data ends

mov bx, table_addr

lea bx, table_addr

請寫出上述兩條指令執行後, bx暫存器中的內容。

答案:mov bx,table_addr執行後(bx)=1234h

lea bx,table_addr執行後(bx)=0

答案:les bx, [2000h]

mov ax, es: [bx]

mov bx,8000h

mov ax, es: [bx]

12. 變數datax和datay定義如下:

datax dw 0148h

dw 2316h

datay dw 0237h

dw 4052h

按下述要求寫出指令序列:

(1) datax和datay中的兩個字資料相加, 和存放在datay和datay+2中。

(2) datax和datay中的兩個雙字資料相加, 和存放在datay開始的字單元中。

(3) datax和datay兩個字資料相乘(用mul)。

(4) datax除以23(用div)。

(5) datax雙字除以字datay(用div)。

答案:13. 試分析下面的程式段完成什麼操作?

mov cl,04

shl dx,cl

mov bl,ah

shl ax,cl

shr bl,cl

or dl,bl

答案: 將dx: ax中的雙字左移4位(乘16)

14. 假定ax和bx中的內容為帶符號數, cx和dx中的內容為無符號數, 請用比較指令和條件轉移指令實現以下判斷:

(1) 若dx的值超過cx的值,則轉去執行exceed

(2) 若bx的值大於ax的值,則轉去執行exceed

(3) cx中的值為0嗎? 若是則轉去執行zero

(4) bx的值與ax的值相減, 會產生溢位嗎? 若溢位則轉overflow

(5) 若bx的值小於ax的值,則轉去執行eq_sma

(6) 若dx的值低於cx的值,則轉去執行eq_sma

答案:(1) cmp dx, cx

《微機原理與應用》試卷答案2019

中國礦業大學2008 2009學年第一學期 微機原理與應用 試題 a卷 自06 考試時間 100分鐘考試方式 閉卷 學院班級姓名學號 一 判斷對錯,如對則在 中寫 如錯則在 中寫 8分每題1分 1 mcs 51微控制器可執行指令 mov r2,r1 2 mcs 51微控制器可執行指令 movc a,...

微機原理及應用

課程名稱 微機原理及應用 一 考試的總體要求 掌握微型計算機的基本工作原理及相關的數學及數字電子技術基礎,靈活運用所學的基礎知識與方法解決控制領域相關的計算機應用系統或主要功能模組的分析與設計問題。二 考試的內容 1.微型計算機的基本工作原理及其數學及電子技術基礎。包括典型微型計算機的基本結構組成和...

微機原理及應用教案

南京工程學院教案 封面 任課系部 電力工程學院授課時間 13 14 學期 南京工程學院教案 教學單元首頁 第 1 2 次課授課學時 3教案完成時間 課程目標 微機原理是學習和掌握微機硬體知識和組合語言程式設計的入門課程 微型計算機的基本工作原理 組合語言程式設計 微型計算機接 術 建立微型計算機系統...