8086組合語言沈美明溫冬娟版複習附答案

2021-03-04 09:39:16 字數 4178 閱讀 3213

組合語言複習資料

第1、2章微處理器的結構和儲存器組成

1、程式語言分哪三類? 【 機器語言、組合語言和高階語言 】

2、二進位制數轉十進位制、十六制數 、十進位制數轉二進位制數、十六制數轉十進數。

3、十進位制數的壓縮和非壓縮bcd碼表示方法。

4、計算機顯示、列印字元的編碼一般採用什麼碼 。 【 ascⅱ碼 】

5、8086微處理器的功能結構分哪兩大部件。

【 匯流排介面單元biu和執行單元eu;biu負責與儲存器介面,eu部分負責指令的執行。 】

6、8086有哪些通用暫存器和段暫存器?哪些可即做8位又可以作16位通用暫存器?哪些在指令中可以裝偏移位址?

【 通用暫存器:八位:al、ah、bl、bh、cl、ch、dl、dh

十六位:ax、bx、cx、dx、di、si、sp、bp

三十二位:eax、ebx、ecx、edx、edi、esi、esp、ebp

既可做八位又可作十六位:ax、bx、cx、dx 段暫存器:ss、cs、ds、es、fs 】

7、掌握實模式下的記憶體分段管理方法。

8、堆疊的基本操作有哪兩種,操作原則是什麼 。對堆疊完成進出棧操作後,堆疊棧頂指標sp如何改變。

9、微機的匯流排按功能分為哪三大匯流排。 【 位址匯流排ab、資料匯流排db、控制匯流排cb 】

10、8086微機記憶體是分段管理的,這樣儲存器單元的邏輯位址分為哪兩個兩部分,計算為實體地址公式是什麼? 【 邏輯位址分為段基址和偏移量。 實體地址=10h*段基址+偏移量 】

11、標誌暫存器中有哪些狀態標誌位和控制標誌位,中文名稱和符號分別為什麼?有什麼作用?

【 狀態標誌位:(1)輔助進製標誌af 這個標誌用於十進位制算術運算指令中。

2) 進製標誌cf 這個標誌主要用於多位元組數的加、減法運算。

3)溢位標誌of 多用於算術運算中。

4) 符號標誌sf 它的值與運算結果的最高位相同

(5) 奇偶標誌pf 這個標誌可用於檢查在資料傳送過程中是否發生錯誤。

6) 零標誌zf 若運算的結果為0,則zf=1,否則zf=0。

控制標誌位:(1)方向標誌df 若用指令置df=1,則引起串操作指令為自動減量指令,也就是從高位址到低位址處理字串;若使df=0,則串操作指令就為自動增量指令,也就是從低位址到高位址處理字串。

2)中斷允許標誌if 若指令中置if=1,則允許cpu去接收外部的可遮蔽中斷請求;若使if=0,則遮蔽上述的中斷請求,對內部產生的中斷不起作用。

3)追蹤標誌tf 置tf標誌,使處理進入單步方式,以便於除錯。在這個方式中,cpu在每條指令執行以後,產生乙個內部中斷,允許程式在每條指令執行以後進行檢查。 】

第3章定址方式和指令系統

1、組合語言指令中定址方式有哪些,能正確識別每種定址方式? 【 p49 】

重點掌握立即、暫存器、直接、暫存器間接、基址、變址、基址加變址、帶位移基址變址(相對)定址方式。 【 立即定址:源運算元是立即數暫存器定址:運算元放在暫存器中

直接定址:運算元在記憶體中,記憶體位址直接告訴了暫存器間接定址:運算元在儲存器中,但運算元位址的偏移量在暫存器中

基址定址:由指定的基址暫存器內容,加上指令中給定的位移量作為運算元的有效位址。

ea=[基址暫存器+位移量

變址定址:由變址si、di暫存器內容,加上指令中給定的位移量作為運算元的有效位址。

ea=[變址暫存器+位移量

基址加變址定址:由指令中的基址暫存器內容和變址暫存器內容相加得到運算元的有效位址。

ea=[基址暫存器+變址暫存器]

帶位移的基址加變址定址:運算元在記憶體中, 由變址暫存器、基址暫存器和位移量相加得到記憶體有效位址。ea=基址暫存器+變址暫存器+位移量

2、熟悉講過的每條指令的功能。 【 p58 】

3、基本串操作指令有哪五條?助記符是什麼? 【 串傳送指令movsb  串裝入指令lodsb  串儲存指令stosb  串比較指令cmpsb  串掃瞄指令scasb 】

4、8086算術運算指令有哪些? 【 p65 】 daa 和aaa指令的用法及區別。 【 p75 】

【 aaa:非壓縮bcd碼加法調整指令;對al中的加法結果調整調整規則:若(al&0fh)>9或標誌af=1, 則 al=al+6,ah=ah+1,af=1,cf=af,al=al&0fh

daa:壓縮bcd碼加法十進位制調整指令調整規則:若(al&0fh)>9或標誌af=1,則al=al+6,af=1;若(al&0f0h)>90h或標誌cf=1,則al=al+60h,cf=1 】

5、and、or、xor、not指令主要作用是什麼?哪些是對指定位清0、置1、取反? 【 p79 】

【 and主要用於:將指定位清0,其餘位不變。要清0的位與0相與,不變的位與1相與。

or主要用於:將指定位置1,其餘位不變。要置1的位與1相或 ,不變的位與0相或

xor主要用於:a.將指定位取反,其餘位不變。 要取反的位與1相異或,不變的位與0相異或。

b.異或指令還有對暫存器清0的作用,自已與自已相異或,可達到清0目的。

總結:給某乙個暫存器清0的方法,共有4種:(以ax為例)

(1)mov ax,0 (2)sub ax,ax (3)and ax,0 (4)xor ax,ax

6、sal 、shr指令的用法。(移一位和移多位的區別)。 【 p83 】

7、add和adc,sub和sbb指令的區別及用法。 【 p65 】

【 add:加法指令 sub:減法指令 adc:帶進製的加法指令 sbb:帶進製的減法指令 】

8、指令test 的用法及作用舉例。(81頁)

【 test:邏輯測試指令格式:test oprd1,oprd2

功能:完成兩個運算元按位進行邏輯與運算,結果反映在標誌位上,不保留結果。

應用場合:用於不希望改變原有運算元的情況下,檢測某一位或某幾位的狀態。

方法:把測試的資料與某一檢測常數相與,結果為零(即zf=1),則測試位為0,否則為1。

例:若要測試al的最低位是否為1,可用

test al,01h

jnz next

ald7 d6 d5 d4 d3 d2 d1 d0

0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 d0

例:若要測試bx的最高位是否為0,可用

test bx,1000h

jz   next

10109、debug中各操作命令的作用。

【 (1)退出debug命令q 格式:q 功能:退出debug,返回dos。

(2)顯示儲存單元命令d 格式:d[儲存單元位址] 或d[儲存單元位址範圍]

(3)修改儲存單元命令e 格式1:e[儲存單元位址] [替換內容]格式2:e [儲存單元位址]

(4)檢查和修改暫存器內容的命令r

格式1:r功能:顯示cpu內所有暫存器內容和標誌位狀態。

格式2:r 寄存名功能:顯示和修改某個暫存器的內容。2

例:r ax 如不修改則按回車鍵,否則鍵入要修改的內容。

格式3:rf功能:顯示和修改標誌位狀態。

(5)執行命令g 格式:g[=起始位址1][位址2…..]

功能:從起始位址開始執行程式。如不指定則從當前的cs:ip開始執行。

(6)跟蹤命令t 格式1:t[=[起始位址功能:從指定起始位址開始執行一條指令後停下來,顯示所有暫存器內容及標誌位的值。

如未指定起始位址則從當前的cs:ip開始執行。

格式2:t[=[起始位址][n] 功能:從指定起始位址開始執行n條指令停下來。

(7)彙編命令a 格式:a[起始位址功能:允許鍵入組合語言語句,並能把它們彙編成機器**,相繼地存放在從指定位址開始的儲存區。

(8)反彙編命令u 格式1:u[起始位址] 功能:從起始位址開始反彙編32個位元組。

如果位址被省略,則從上乙個u命令的最後一條指令的下乙個單元開始顯示32個位元組。

格式2: u[起始範圍] 功能:對指定範圍的儲存單元進行反彙編。

(9)命名命令n 格式:n 檔名 [檔名] 功能:該命令把兩個檔案識別符號格式化在cs:

5ch和cs:6ch的兩個檔案控制塊中,以便在其後用l或w命令把檔案裝入或存檔。

8086組合語言程式格式答案

一 單項選擇題 1 c 2 d 3 a 4 b 5 c 6 d 7 d 8 c 9 a 10 b 11 b 12 d 13 b 14 c 15 a 16 c 17 b 18 b 19 a 20 a 二 多項選擇題 1 ab 2 abd 3 abc 4 cd 5 ab 6 abc 7 ac 8 ad ...

組合語言 第3章巨集組合語言

第三章巨集組合語言 一 巨集組合語言格式 3.1.1 指令語句格式 指令語句的一般格式如下 標號 指令助記符運算元 注釋 1 標號 標號是機器指令語句存放位址的符號表示,代表該指令目標 的第乙個位元組位址,後面必須緊跟冒號 2 指令助記符 指令助記符為語句的核心成分,表示了該語句的操作型別。3 運算...

組合語言總結

一 乙個完整的源程式的結構 乙個源程式一般由若干個段組成,每個分段可以是棧段 資料段和 段。乙個源程式可以有多個棧段 資料段和 段,從語法規則上來看,棧段是有明顯標誌的 段最好的型別為 code 的標記,並用cs作為段界暫存器,只有資料段不要求標誌。完整的源程式的結構一般形式如下 程式名稱 二 源程...