微機原理 第一章 1. 1 解: 五代, 詳細見書 1. 2 解: 微型計算機: 以大規模、 超大規模集成電路為主要部件, 以集成了計算機主要部件——控制器和運算器的微處理器為核心, 所構造出的計算機系統 。 PC 機: PC( ) 機就是面向個人單獨使用的一類微機 。 單片機: 用于控制的微處理器芯片, 內部除 CPU 外還集成了計算機的其他一些主要部件, 如: ROM、 RAM、 定時器、 并行接口、 串行接口, 有的芯片還集成了 A/D、 D/A 轉換電路等。 數字信號處理器 DSP: 主要面向大流量數字信號的實時處理, 在宿主系統中充當數據處理中心, 在網絡通信、 多媒體應用等領域正得到越來越多的應用 1. 3 解: 微機主要有存儲器、 I/O 設備和 I/O 接口、 CPU、 系統總線、 操作系統和應用軟件組成, 各部分功能如下: CPU: 統一協調和控制系統中的各個部件 系統總線: 傳送信息 存儲器: 存放程序和數據 I/O 設備: 實現微機的輸入輸出功能 I/O 接口: I/O 設備與 CPU 的橋梁 操作系統: 管理系統所有的軟硬件資源 1. 4 解: 系統總線: 傳遞信息的一組公用導線, CPU 通過它們與存儲器和 I/O 設備進行信息交換 。
好處: 組態靈活、 擴展方便 三組信號線: 數據總線、 地址總線和控制總線 。 其使用特點是: 在某一時刻, 只能由一個總線主控設備來控制系統總線, 只能有一個發送者向總線發送信號; 但可以有多個設備從總線上同時獲得信號。 1. 5 解: (1) 用于數值計算、 數據處理及信息管理方向。 采用通用微機, 要求有較快的工作速度、 較高的運算精度、 較大的內存容量和較完備的輸入輸出設備, 為用戶提供方便友好的操作界面和簡便快捷的維護、 擴充手段。 (2) 用于過程控制及嵌人應用方向。 采用控制類微機, 要求能抵抗各種干擾、 適應現場的惡劣環境、 確保長時間穩定地工作,要求其實時性要好、 強調其體積要小、 便攜式應用強調其省電。 1. 6 解:1. 7 解:I/O 通道: 位于 CPU 和設備控制器之間, 其目的是承擔一些原來由 CPU 處理的 I/O 任務, 從而把 CPU 從繁雜的 I/O 任務中解脫出來。 由 10 根信號線組成(A9-A0) 。 1. 8 解: BIOS: 基本輸入輸出系統。 主要功能: 用來驅動和管理諸如鍵盤、 顯示器、 打印機、 磁盤、 時鐘、 串行通信接口等基本的輸入輸出設備 1. 9 解: 基本 RAM 區: 640KB 保留 RAM 區: 128KB 擴展 ROM 區: 128KB 基本 ROM 區: 128KB 1. 10 解: (1) 、 數—用來直接表征量的大小, 包括: 定點數、 浮點數。
(2) 、 碼—用來指代某個事物或事物的某種狀態屬性, 包括: 二進制、 八進制、 十進制、 十六進制。 區別: 使用場合不同, 詳見 P16. 1. 11 解: (1).66)((.10101)174.66)((. 8)AE A== (2).01011)((2283.34375)1.01011)((8.58)EB== (3).6)(.0110)F18A6.6)(.375)==(( 1. 12 解: +37 /25H //25H -37 /A5H //DBH 1. 13 解:+37 原碼反碼補碼-37 16 位 32 位 16 位32 位 00 25H 00 00 00 25H FF 5BH FF FF FF 5BH 1. 14 解: 無符號數: 70D 補碼有符號數: 70D BCD 碼: 46D ASCII: F 1. 15 解: 1) 、 相加后若出現和大于 9, 則將和減去 10 后再向高位進 1 2) 、 若出現組間進位, 則將低位加 6 1. 16 解: 詳見課本 16 頁。
1. 17 解:C3 40 20 00 1. 18 解: 50 50H 十進制值 50 80 二進制 十六進制 二進制 十六進制1. 19 解:1. 20 解:0011 0010B 32H 0101 0000B 50HD: 44H d: 64H CR: 0DH LF: 0AH 0: 30H SP: 20H NUL: 00H國標碼: 36 50H 機內碼: B6 B0H 第二章 2. 1 算術邏輯單元 ALU、 寄存器組和控制器; 總線接口單元 BIU: 管理 8088 與系統總線的接口負責 cpu 對接口和外設進行訪問 執行單元 EU: 負責指令譯碼、 執行和數據運算; 8 位 cpu 在指令譯碼前必須等待取指令操作的完成, 8088 中需要譯碼的指令已經取到了指令隊列, 不需要等待取指令。 而取指令是 cpu 最為頻繁的操作, 因此 8088 的結構和操作方式節省了 大量等待時間, 比 8 位 cpu 節省了 時間,提高了性能。 2. 2 8 個 8 位寄存器: AH、 AL、 BH、 BL、 CH、 CL、 DH、 DL; 8 個 16 位寄存器: 累加器 AX、 基址寄存器 BX、 計數器 CX、 數據寄存器 DX、 源地址寄存器 SI、 目的地址寄存器 DI、 基址指針 BP、 堆棧指針 SP。
2. 3 標志用于反映指令執行結果或者控制指令執行形式。 狀態標志用于記錄程序運行結果的狀態信息; 控制標志用于控制指令執行的形式。 2. 4 例: 有運算: 3AH+7CH=B6H作為無符號數運算16/32位微機原理匯編語言及接口技術, 沒有進位, CF=0;作為有符號數運算,結果超出范圍16/32位微機原理匯編語言及接口技術, OF=1. 2.5 8088 中每個存儲單元有唯一的 20 位地址, 稱為物理地址。 處理器通過總線存取存儲器數據時, 采用這個物理地址。 在用戶編程過程中采用的“段地址: 偏移地址” 的形式稱為邏輯地址。 將邏輯地址中的段地址左移 4 位, 加上偏移地址就得到物理地址。 1MB 最多能分成 65536 個邏輯段。2. 6 代碼段: 存放程序的指令序列; 堆棧段: 確定堆棧所在的主存儲區; 數據段: 存放當前運行程序的數據; 附加段: 附加數據段, 用于數據保存。 另外串操作指令將其作為目 的操作數的存放區。 2. 7 8088 的存儲空間分段管理, 程序設計時采用邏輯地址。 由于段地址在默認的或指定的段寄存器中, 所以只需要偏移地址, 稱為有效地址 EA. 操作數在主存中有以下幾種尋址方式: 直接尋址、 寄存器間接尋址、 寄存器相對尋址、 基址變址尋址、 相對基址變址尋址。
2. 8 (1) 立即數尋址 ax:1200H (2) 寄存器尋址 ax:0100H (3) 存儲器直接尋址 ax:4C2AH (4) 寄存器間接尋址 ax:3412H (5) 寄存器間接尋址 ax:4C2AH (6) 基址變址尋址 ax:7856H (7) 相對基址變址尋址 ax:65B7H 2. 9 (1) cx 為字寄存器, dl 為字節寄存器, 類型不匹配。 (2) mov 指令的目的操作數只能是寄存器或者主存單元, ip 是指針。 (3) 不允許立即數到段寄存器的傳送。 (4) 不允許段寄存器之間的直接傳送。 (5) 數據溢出。 (6) sp 不能用于寄存器間接尋址。 (7) 格式不對。 應為: mov ax,[bx+di] (8) mov 指令的操作數不能是立即數。 2. 10 (1) bx 得到 table 的偏移地址, bx=200H. (2) 將立即數 8 送到 al。 (3) 換碼, al=12H. 2. 11 (1) al=89H (2) al=12H,cf=1,zf=0,sf=0,of=1,pf=1 (3) al=0AFH,cf=0,zf=0,sf=1,of=0,pf=1 (4) al=0AFH,cf=1,zf=0,sf=1,of=1,pf=1 (5) al=0,cf=0,zf=1,sf=0,of=0,pf=1 (6) al=0FFH,cf=0,zf=0,sf=1,of=0,pf=1(7) al=0,cf=0,zf=1,sf=0,of=0,pf=1 2. 12 (1) add dx,bx (2) add al,[bx+si] (3) add word ptr[bx+0B2H],cx (4) add word ptr[0520H],3412H (5)add al,0A0H 2. 13 運算公式:XYXZV(/ )540*+??。
商存儲在 ax, 余數存儲在 dx。 2. 14 (1) ax=1470H (2) ax=1470H,cf=0,of=0,sf=0,zf=0,pf=0 (3) ax=1470H,cf=0,of=0,sf=0,zf=0,pf=0 (4) ax=0,cf=0,of=0,sf=0,zf=1,pf=1 (5) ax=,cf=0,of=0,sf=0,zf=1,pf=1 (6) ax=,cf=0,of=0,sf=1,zf=0,pf=1 2.15 相對尋址方式、 直接尋址方式、 間接尋址方式。 2. 16 (1) 1256H (2) 3280H 2. 17 (1) ax=1E1EH (2) al 的 D0、 D7 位不全為 0 (3) cx<64H 2. 18 執行 65536 次。 2. 19 功能: 將數組中每個字元素相加, 結果存儲于 total。 2. 20 (1) lea si, dh,[si]Mov dl,[si+5] (2) mov ax word ptr ax word ptr dx word ptr +2Sbb dx word ptr +2(3) test dx, jz even even: mov ax,0 (4) mov cx,4 again: sar dx,1rcr ax,1loop again (5) mov cx,100 mov si,0 again: mov al, al,array[si]mov array[si],alinc again 2.21 bl,alMov al,ahMov bh,10Mul bhAnd ax, al,bl : ret endp 2.22 計算機系統利用中斷為用戶提供硬件設備驅動程序。
在 IBM-PC 系列微機中, 基本輸入輸出系統 ROM-BIOS 和 DOS 都提供了豐富的中斷服務程序, 稱為系統功能調用。 調用步驟(1) AH 中設置系統功能調用號(2) 在指定寄存器中設置入口參數(3) 使用中斷調用指令執行功能調用(4) 根據出口參數分析調用情況 2. 23 al, al, al, ah, dl,alInt endp 2.24 ah, ax, dl,ahMov ah, dl,alMov ah, endp 2.25 db”input 0-9”,”$” db”error”,”$”Mov ah, dx, 21H Again: mov ah, al,30HJb al,39HJa dl,alMov ah, done Disp:mov dx, ah, :mov ah, dl,alInt 21H第 3 章 3. 1 解: 匯編語言是一種以處理器指令系統為基礎的低級程序設計語言, 它采用助記符表達指令操作碼, 采用標識符號表示指令操作數, 可以直接、 有效地控制計算機硬件, 因而容易創建代碼序列短小、 運行快速的可執行程序 3. 2 解: (1) 完整的匯編語言源程序由段組成 (2) 一個匯編語言源程序可以包含若干個代碼段、 數據段、 附加段或堆棧段, 段與段之間的順序可隨意排列 (3) 需獨立運行的程序必須包含一個代碼段, 并指示程序執行的起始點, 一個程序只有一個起始點 (4) 所有的可執行性語句必須位于某一個代碼段內, 說明性語句可根據需要位于任一段內 (5) 通常, 程序還需要一個堆棧段 3. 3 解: 存儲模式 特 點 TINY COM 類型程序, 只有一個小于 64KB 的邏輯段(MASM 6. x 支持) SMALL 小應用程序, 只有一個代碼段和一個數據段(含堆棧段) , 每段不大于 64KB 代碼少、 數據多的程序, 只有一個代碼段, 但有多個數據段 代碼多、 數據少的程序, 可有多個代碼段, 只有一個數據段 LARGE 大應用程序, 可有多個代碼段和多個數據段(靜態數據小于 64KB) HUGE 更大應用程序, 可有多個代碼段和多個數據段(對靜態數據沒有限制) FLAT 32 位應用程序, 運行在 32 位 和 9x 或 NT 環境 3. 4 解:3. 5 解: 段定位、 段組合和段類型。
3. 6 解: stack stack (0) stack ends data db ' Hello, ! ' , 0dH, 0aH, ‘$’ data ends code ' code' cs: code, ds:data, ss: stack start: mov dx, mov ah, 9 int 21h code ends end start 3. 7 解: (1) . EXE 程序 程序可以有多個代碼段和多個數據段, 程序長度可以超過 64KB 通常生成 EXE 結構的可執行程序 (2) . COM 程序 只有一個邏輯段, 程序長度不超過 64KB 需要滿足一定條件才能生成 COM 結構的可執行程序(MASM 6. x 需要采用 TINY 模式) 3. 8 解: 符號定義偽指令有“等價 EQU” 和“等號=” : 符號名 EQU 數值表達式 符號名 EQU <字符串>符號名 = 數值表達式 EQU 用于數值等價時不能重復定義符號名, 但“=” 允許有重復賦值。
例如: X= 7 ; 等效于: X equ 7 X= X+5 ; “X EQU X+5” 是錯誤的 3. 9 解: (1) al=67h (2) ax=133h, dx=4h (3) ax=0230h (4) al=41h 開始位置: 用標號指明 返回 DOS: 利用 DOS 功能調用的 4CH 子功能來實現 匯編停止: 執行到一條 END 偽指令時, 停止匯編3. 10 解: (1) 43h (2) 10h 3. 11 解: . data3. 12 解: 利用定位偽指令控制, 如 org, even, align 3. 13 解: 包括邏輯地址和類型兩種屬性。 3. 14 解: ; 數據段 org 100h varw dw 1234h , 5678h varb db 3 , 4 vard dd buff dd 10 dup(?) mess db ' Hello' ; 代碼段 mov ax , varb mov ax , type mov ax , varw+ mov ax , 3. 15 解: (1) 1000 超過一個字節所能表達的最大整數 (2) SI 應為偶數 (3) 兩個內存單元不能直接運算 (4) ax=7654h 41h 42h 10 10h 45h 46h -1 ? 4 4 4 -1 ?4 4 4 -1 ?4 4 4 00h 0fbh 0ffh ? ? ? ?...