課程簡介:介紹PC系列的微型計(jì)算機(jī)原理與匯編語言。共10章,包括:Intel系列處理器;匯編語言指令系統(tǒng)和匯編語言的程序設(shè)計(jì);存儲器;中斷系統(tǒng);輸入/輸出系統(tǒng);總線技術(shù)及通信接口和常用外設(shè)接口,體現(xiàn)了微機(jī)技術(shù)新發(fā)展和知識系統(tǒng)的完整性。
微機(jī)原理及應(yīng)用復(fù)習(xí)題
一,選擇題
完整的計(jì)算機(jī)系統(tǒng)應(yīng)包括( )
A.運(yùn)算器,控制器,寄存器組,總線接口 B.外設(shè)和主機(jī)
C.主機(jī)和應(yīng)用程序 D.配套的硬件設(shè)備和軟件系統(tǒng)
計(jì)算機(jī)系統(tǒng)中的存儲器系統(tǒng)是指( )
A.RAM B.ROM C.主存儲器 D.內(nèi)存和外存
機(jī)器語言是指( )
A.用英語縮寫詞表示的面向機(jī)器的程序設(shè)計(jì)語言 B.用二進(jìn)制代碼表示的程序設(shè)計(jì)語言
C.用"0"或"1"表示的面向機(jī)器的程序設(shè)計(jì)語言
匯編語言是指( )
A用英語縮寫詞表示的面向機(jī)器的程序設(shè)計(jì)語言
B用二進(jìn)制代碼表示的面向機(jī)器的程序設(shè)計(jì)語言
C用自然語匯表示的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言
D用助記符表示的程序設(shè)計(jì)語言
高級語言是指( )
A用英語縮寫詞表示的面向機(jī)器的程序設(shè)計(jì)語言
B用二進(jìn)制代碼表示的程序設(shè)計(jì)語言
C用自然語匯表示的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言
D用英語縮寫詞表示的面向機(jī)器的程序設(shè)計(jì)語言
微處理器主要包括( ).
A.運(yùn)算器和總線接口 B.控制器和寄存器組
C.運(yùn)算器和寄存器組 D.運(yùn)算器,控制器,寄存器組,總線接口
8259A是( ).
A.鎖存器 B.可編程中斷控制器 C.并行I/O芯片 D.串口I/O芯片
當(dāng)RESET信號進(jìn)高電平狀態(tài)時(shí),將使8086/8088 CPU的( )寄存器初始化為0FFFFH.
A. ss B. DS C. ES D. CS
程序查詢流程總是按( )次序完成一個(gè)字符的傳輸.
A.讀狀態(tài)端口,寫數(shù)據(jù)端口 B.寫數(shù)據(jù)端口,讀狀態(tài)端口,寫數(shù)據(jù)端口
C.寫控制端口,讀狀態(tài)端口,寫數(shù)據(jù)端口 D.隨I/O接口的具體要求而定
8086/8088CPU響應(yīng)硬件中斷INTER請求的必要條件除IF=1外,還需滿足( ).
A.訪存儲器操作結(jié)束 B.當(dāng)前指令執(zhí)行完
C.無軟件中斷請求 D.無內(nèi)部中斷請求
CPU對DMA控制器提出的總線請求響應(yīng)要比中斷請求的響應(yīng)快,其原因是( ).
A.只需完成訪內(nèi)存操作 B.只需釋放總線控制權(quán)
C.無需保留斷點(diǎn)現(xiàn)場 D.有硬件DMA控制器
DMA傳送結(jié)束由I/O接口向CPU發(fā)出中斷請求,其目的是( ).
A.讓CPU 收回總線控制權(quán) B.讓DMA 控制器釋放總線控制
C.讓CPU 檢查DMA 操作正確性 D.讓DMA復(fù)位,準(zhǔn)備下一次DMA 傳輸
計(jì)算機(jī)軟件系統(tǒng)包括( ) .
A. 系統(tǒng)軟件和應(yīng)用軟件 B. 編輯軟件和應(yīng)用軟件
C. 數(shù)據(jù)庫軟件和工具軟件 D. 程序和數(shù)據(jù)
下面敘述中不正確的是( ).
A. 操作系統(tǒng)屬于系統(tǒng)軟件 B. 操作系統(tǒng)只管理內(nèi)存
C. UNIX是一種操作系統(tǒng) D. DOS屬于操作系統(tǒng)的一種
操作系統(tǒng)的作用是( ).
A. 解釋執(zhí)行源程序 B. 編譯源程序
C. 進(jìn)行編碼轉(zhuǎn)換 D. 控制和管理系統(tǒng)資源
以下敘述正確的是( ).
A. 微機(jī)的字長可以是8,16,24,32位
B. 微機(jī)的字長可以是8,16,32,64位
C. 微機(jī)的字長可以是8,16,24,32K
D. 字長是指計(jì)算機(jī)處理數(shù)據(jù)的精度
以下敘述不正確的是( ).
A. 一個(gè)字節(jié)由8位二進(jìn)制數(shù)構(gòu)成
B. 字節(jié)是衡量存儲容量的基本單位.
C. 字節(jié)是衡量微機(jī)性能的重要指標(biāo).
D. 字節(jié)是衡量微機(jī)字長的基本單位.
計(jì)算機(jī)的發(fā)展以( )為標(biāo)志.
A. 電子器件的更新 B. 時(shí)間的劃分
C. CPU的發(fā)展 D. 集成電路的發(fā)展
微型計(jì)算機(jī)的發(fā)展以( )為主要特征.
A. 電子器件的更新 B.微處理器的發(fā)展
C. 存儲器件的發(fā)展 D.集成電路的發(fā)展
以下有關(guān)CPU的說法不正確的是( ).
A. CPU也稱作運(yùn)算控制單元 B. CPU也稱作微處理器
C. CPU是微型機(jī)的核心部件 D. CPU也稱作運(yùn)算處理單元
下列存儲器中,存取速度最快的是( ).
A. CD-ROM B. 內(nèi)存儲器 C. 軟盤 D. 硬盤
8086CPU包括( ) .
A. 運(yùn)算器,控制器和存儲器 B. 運(yùn)算器,控制器和寄存器
C. 運(yùn)算器,控制器和接口部件 D. 運(yùn)算器,控制器和累加器
IP中存放的是( ).
A. 數(shù)據(jù) B. 地址 C. 下一指令的地址 D. 下一指令的數(shù)據(jù)
地址寄存器用( )表示.
A. IR B. DR C. ID D. AR
數(shù)據(jù)寄存器用 ( )表示.
A. IR B. DR C. ID D. AR
指令寄存器用( )表示.
A. IR B. DR C. ID D. AR
指令譯碼器用( )表示.
A. IR B. DR C. ID D. AR
8086中數(shù)據(jù)寄存器有 ( )個(gè).
A. 4 B. 5 C. 6 D. 8
8086中段寄存器有 ( )個(gè).
A. 4 B. 5 C. 6 D. 8
8086中標(biāo)志寄存器的狀態(tài)標(biāo)志占( ) 位.
A. 4 B. 5 C. 6 D. 8
8086中標(biāo)志寄存器的控制標(biāo)志占 ( )位.
A. 4 B. 5 C. 3 D. 2
8086的尋址能力為( ).
A. 20MB B. 1MB C. 64KB D. 4MB
8086的I/O尋址空間為( ).
A. 1024個(gè) B. 1M個(gè) C. 64K個(gè) D. 32K個(gè)
8086的一個(gè)基本總線周期為 個(gè)T狀態(tài).
A. 4個(gè) B. 5個(gè) C. 6個(gè) D. 7個(gè)
等待狀態(tài)TW應(yīng)在 ( )之間插入.
A. T1和T2 B. T3和T2 C. T3和T4 D. T4和T1
以下說法中,( )是錯(cuò)誤的.
A.邏輯段允許在整個(gè)存儲空間內(nèi)浮動. B.一個(gè)程序可以有代碼段,數(shù)據(jù)段和堆棧段.
C.段與段之間可以連續(xù),也可以重疊. D. 段與段之間可以連續(xù),不可以重疊.
8086中指令隊(duì)列的長度為 ( )字節(jié).
A. 4個(gè) B. 5個(gè) C. 6個(gè) D. 7個(gè)
8086中狀態(tài)寄存器為( )位寄存器.
A. 8 B. 16 C. 10 D. 32
以下敘述中,不正確的是( ) .
A. 一個(gè)總線周期含4個(gè)T狀態(tài). B. 一個(gè)時(shí)鐘周期也稱為一個(gè)T狀態(tài).
C.一個(gè)指令周期由4個(gè)總線周期組成. D. 執(zhí)行一條指令所需時(shí)間為一個(gè)指令周期.
8086中,復(fù)位操作后,程序從( )地址開始執(zhí)行.
A. 00000H B. FFFFFH C. FFFFEH D. FFFF0H
SRAM是一種( ) .
A,動態(tài)RAM B,靜態(tài)RAM C,動態(tài)ROM D,靜態(tài)ROM
DRAM是一種( ) .
A,動態(tài)RAM B,靜態(tài)RAM C,動態(tài)ROM D,靜態(tài)ROM
掩膜型ROM可簡記為( ) .
A,PROM B,MROM C,EPROM D,EEPROM
可編程ROM可簡記為( ) .
A,PROM B,MROM C,EPROM D,EEPROM
RAM是一種( )的內(nèi)存儲器.
A,永久性,隨機(jī)性 B,易失性,隨機(jī)性 C,永久性,只讀性 D,易失性,只讀性
ROM是一種( ) 的內(nèi)存儲器.
A,永久性,隨機(jī)性 B,易失性,隨機(jī)性 C,永久性,只讀性 D,易失性,只讀性
優(yōu)盤是一種電可擦除,可重寫的( )的存儲器.
A,非易失性 B,易失性 C,只讀性 D,磁介質(zhì)性
存儲器芯片位數(shù)不足時(shí),需用( ) .
A,字?jǐn)U展 B,位擴(kuò)展 C,字位擴(kuò)展 D,以上均可
實(shí)際地址,段地址,有效地址分別是多少位16進(jìn)制碼:( )
A.5,4,4 B.20,16,16 C.5,4,5 D .20,16,20
8086系統(tǒng)1M內(nèi)存空間最多能分成多少個(gè)不同的段:( )
A.16個(gè) B.64K個(gè) C.256個(gè) D.20個(gè)
8086CPU的PUSH指令執(zhí)行時(shí):( )
A.先推數(shù)據(jù),再將SP-2 B.先將SP-2,再推數(shù)據(jù)
C.先推數(shù)據(jù),再將SP+2 D.先將SP+2,再推數(shù)據(jù)
8086CPU的POP指令執(zhí)行時(shí):( )
A.先彈數(shù)據(jù),再將SP+2 B.先將SP+2,再彈數(shù)據(jù)
C.先彈數(shù)據(jù),再將SP-2 D.先將SP-2,再彈數(shù)據(jù)
存儲器尋址方式中,缺省段地址是SS的間址寄存器是:( )
A.SP間址 B.BP間址 C.BX間址
能進(jìn)行間接尋址的間址寄存器有:( )
A.4個(gè) B.6個(gè) C.8個(gè)
LEA指令要求源操作數(shù)必須為:( )
A.一個(gè)16位寄存器 B.一個(gè)存儲器操作數(shù) C.一個(gè)有效地址
LEA指令傳送的是:( )
A.源操作數(shù)的值 B.源操作數(shù)的偏移地址 C.源操作數(shù)的物理地址
兩單字節(jié)帶符號數(shù)用IMUL相乘,結(jié)果為:( )
A.單字節(jié)帶符號數(shù) B.雙字節(jié)無符號數(shù) C.雙字節(jié)帶符號數(shù)
帶符號數(shù)將其字長擴(kuò)充1倍,而值不變,只需要:( )
A.將高半部分補(bǔ)全"0" B.將高半部分補(bǔ)全"1" C.將原最高位擴(kuò)充到高半部分
MOV AX,0和XOR AX,AX兩條指令:( )
A.實(shí)現(xiàn)的功能完全一樣 B.都將AX清零 C.執(zhí)行后AX值不一致
MOVS指令傳送的串類型:( )
A.僅能為字節(jié)串 B.僅能為字串 C.可以為字節(jié)串及字串
調(diào)用指令執(zhí)行完后,堆棧指針指向:( )
A.最后推入斷點(diǎn)地址的單元 B.最后推入斷點(diǎn)地址單元的上一個(gè)單元(地址較低的單元)
C.-128~+127范圍內(nèi)
[SI]的類型是: ( )
A.字 B.字節(jié) C.不確定
二,填空題
指令包括 , 兩部分.
標(biāo)號有3個(gè)屬性, 屬性, 屬性和 屬性.
8086產(chǎn)生20位的地址,稱為 .
8086系統(tǒng)中,就有三種時(shí)間周期,分別是 , , .
邏輯地址由兩部分組成 , .
堆棧段在存儲區(qū)中的位置由 , 來規(guī)定.
8位無符號數(shù)表示的范圍為 .
16位無符號數(shù)表示的范圍為 .
微計(jì)算機(jī)中的帶符號數(shù)通常用 表示.
8位帶符號數(shù)表示的范圍為 .
16位帶符號數(shù)表示的范圍為 .
指令就是為調(diào)用程序調(diào)用過程(或稱轉(zhuǎn)子程序)而設(shè)立的.
指令放在子程序的末尾,當(dāng)子程序功能完成后,由它實(shí)現(xiàn)返回.
當(dāng)微計(jì)算機(jī)系統(tǒng)在運(yùn)行時(shí),或者程序運(yùn)行期間,遇到某些特殊情況,需要CPU停止執(zhí)行當(dāng)前的程序,產(chǎn)生 .
轉(zhuǎn)去執(zhí)行一組專門的例行程序進(jìn)行處理,這種情況稱為中斷.這種例行程序稱為 .
已知邏輯地址為2F80H:38A0H,物理地址= .
靜態(tài)MOS存儲器是靠 存儲信息,動態(tài)MOS存儲器是靠 存儲信息.
存儲器芯片地址譯碼方法有 和 兩種方法.
用4K×4bit的存儲器芯片構(gòu)成32KB的存儲器,所需要的芯片數(shù)是 片.
受CLI和STI指令控制的中斷是 .
標(biāo)號有3個(gè)屬性, 屬性, 屬性和 屬性.
如果一個(gè)程序在執(zhí)行前(CS)=0A8F0H,(IP)=2B40H,該程序的起始物理地址是 .
三總線包括 總線, 總線和 總線.
在8088系統(tǒng)中, 一個(gè)段最大64KB,8088有 條地址線,可以尋址的最大物理空間為1MB.
十六進(jìn)制數(shù)30AH轉(zhuǎn)換為二進(jìn)制原碼是 ,轉(zhuǎn)換為BCD碼是 .
在指令中立即數(shù)只能用作 操作數(shù),而不能用作目的操作數(shù).
用2K×4位的存儲芯片組成4K×8位的存儲器,需要進(jìn)行 擴(kuò)展.
在8088系統(tǒng)中, 在構(gòu)成存儲器時(shí)使用全部20位地址線進(jìn)行譯碼,即 譯碼方式.
如果帶符號數(shù)FFH加上帶符號數(shù)01H,結(jié)果 產(chǎn)生溢出.
CPU的尋址能力取決于 的根數(shù).
8086 CPU內(nèi)部數(shù)據(jù)總線寬度為______位,外部數(shù)據(jù)總線寬度為______位.
8088 CPU內(nèi)部數(shù)據(jù)總線寬度為______位,外部數(shù)據(jù)總線寬度為______位.
IO接口地址譯碼方法有 和 兩種方法.
在8088系統(tǒng)中,中斷類型碼為7的中斷向量的存放地址是 .
當(dāng)存儲器的讀出時(shí)間大于CPU所要求的時(shí)間,為保證CPU與存儲器的周期配合,就需要用 信號,使CPU插入一個(gè) 狀態(tài).
當(dāng)總線負(fù)載超過負(fù)載能力時(shí),需在總線與負(fù)載間加接 .
如果一個(gè)程序在執(zhí)行前(CS)=0A7F0H,(IP)=2B40H,該程序的起始地址是 .
判斷有符號數(shù)加/減運(yùn)算后是否溢出的公式是OF= ,若OF= ,則溢出.
中斷類型碼為1AH的中斷向量地址為 .
8086系統(tǒng)最多能識別 種不同類型的中斷,每種中斷在中斷向量表中分配有 個(gè)字節(jié)單元,用以指示中斷服務(wù)程序的入口地址.
三,簡答題
1,下列指令中源操作數(shù)的尋址方式是什么
(1) MOV BX,[0100H] 答:
(2) MOV CX,DATA[SI] 答:
(3) MOV ES:[SI],AX 答:
(4) ADD AX,[BX][DI] 答:
(5) MOV AL,NUMBER[BP][DI] 答:
2,執(zhí)行下列指令后,AX寄存器的內(nèi)容是什么
定義: TABLE DW 0,100H,200H,300H,400H
DISTA DW 6
(1)執(zhí)行 MOV BX,OFFSETTABLE
ADD BX,DISTA
MOV AX,[BX] AX的內(nèi)容:
(2)執(zhí)行 MOV SI,4
LEA BX,TABLE
MOV AX,[BX][SI] AX的內(nèi)容:
3,指出下列指令的錯(cuò)誤.
a.MOV AX,[SI][DI]; 答:
b.MOV [SI],OFFH; 答:
c.MOV DATA[SI],CS:AX;答:
d.MOV CL,BX; 答:
e.OUT280H,AL; 答:
4,變量是什么 標(biāo)號是什么
5.8086/8088系統(tǒng)中有20根地址線,它的存儲空間最大是多少 將該內(nèi)存空間順序分為16段,每段64K,試寫出第二段和最末段的地址范圍.
6.分析下列程序段,寫出該程序段的功能.
MOV AX,2000H
MOV DS,AX
MOV AX,6000H
MOV ES,AX
MOV SI,1200H
MOV DI,0
MOV CX,100
CLD
NEXT:REP CMPSB
7.8088CPU的中斷系統(tǒng)中,中斷向量表長度是多少字節(jié) 中斷向量表的地址范圍是多少
8,已知X=-1101001 Y=-1010110,計(jì)算[X-Y]補(bǔ)=
9,8088的EU和BIU有哪些主要功能 在執(zhí)行指令期間,EU能直接訪問存儲器嗎
10,指出以下指令中源操作數(shù)的尋址方式.
MOV SI,300 MOV AX,[3102H] ADD AX,[BX][SI] MUL BL
MOV [BP],AX
11,編寫程序段,當(dāng)輸入接口的bit1,bit4,bit7位同時(shí)為1時(shí),CPU將內(nèi)存中以DATA為首址的10個(gè)單元的數(shù)據(jù)從輸出接口輸出,若不滿足上述條件則等待.
已知輸入接口地址:FF80H
輸出接口地址:FF81H
12,已知X=1100001B,Y=1010101B,用8位補(bǔ)碼計(jì)算(X-Y)補(bǔ)= ,并說明結(jié)果是否溢出.
14,在8086/8088系統(tǒng)中,當(dāng)前數(shù)據(jù)段位于存儲器的78000H-87FFFH,則DS 段寄存器為: .
15,在數(shù)據(jù)段中有以下定義:
ARRAY1 EQU 16H
ARRAY2 DW 7F16H
請指出下面兩條指令中源操作數(shù)的尋址方式:
MOV AX,ARRAY1; 尋址方式
MOV AX,ARRAY2; 尋址方式
四,程序填空題
1,下列程序段為RAM實(shí)驗(yàn)中的存儲器測試程序,將語句補(bǔ)充完整.
DATA
MESSAGE DB "PLEASE ENTER A KEY TO SHOW THE CONTENTS",ODH,OAH,"$"
DATA ENDS
CODE SEGMENT
ASSUME CS: ,DS:DATA, ES:DATA
START:MOV AX,DATA
MOV DS,
MOV AX,2000H
MOV ES,AX
MOV BX,1000H
MOV DL,40H
REP1: INC DL ;輸入A到Z 26個(gè)字符
MOV ES:[BX],DL
INC ;修改指針
CMP DL,"Z"
JNZ
LEA DX, ;以下顯示提示信息
MOV AH,09H
INT 21H
MOV AH,01H ;等待按鍵
INT 21H
MOV AX,2000H ;
MOV ES,AX
MOV BX,1000H
MOV CX,26 ;以下顯示已寫入的字符
REP2: MOV DL,ES:[BX]
MOV ,02H
INT 21H
INC BX
LOOP
MOV AX, ;返回DOS
INT 21H
CODE
END START
2,設(shè)在內(nèi)存NUM單元開始存放著100個(gè)字節(jié),要求將其中為零的元素全部刪除,并將保留的數(shù)據(jù)連續(xù)存放,以$為結(jié)束標(biāo)志;結(jié)束標(biāo)志的下一個(gè)單元保存零元素個(gè)數(shù).下列程序是滿足以上要求的部分程序,請補(bǔ)充完整.
DATA SEGMENT
NUM 100 DUP( )
NUM1 DB 00,00
DATA ENDS
CODE
ASSUME CS:CODE,
START: MOV AX,DATA
MOV DS,AX
LEA SI, ;取NUM數(shù)據(jù)區(qū)首址
MOV DI,SI
MOV CX,100
XOR DL,DL ;DL作為統(tǒng)計(jì)零元素個(gè)數(shù)的計(jì)數(shù)器
GO1: MOV AL,[SI]
CMP
JNZ GO2
INC
JMP GO3
GO2: MOV [DI],AL
INC DI
GO3: INC
LOOP
MOV [DI],"$"
INC DI
MOV [DI],
MOV AH,
INT 21H
CODE ENDS
END START
3,設(shè)在內(nèi)存NUM單元開始存放著100個(gè)字節(jié)類型的整數(shù),要求將其中為一的元素全部刪除,并將剩余的數(shù)據(jù)元素連續(xù)存放,以0為結(jié)束標(biāo)志,另外結(jié)束標(biāo)志的下一個(gè)單元保存零元素個(gè)數(shù).下列程序是滿足以上要求的部分程序,完成該程序:
DATA SEGMENT
NUM a1, a2, ……, a100
NUM1 DB 0,0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:
START:MOV AX,DATA
MOV DS,AX
LEA SI, ;取數(shù)據(jù)首址
MOV DI, SI
MOV CX,100
XOR DL,DL ;DL作為統(tǒng)計(jì)零元素個(gè)數(shù)的計(jì)數(shù)器
GO1: MOV AL,|SI|
CMP ,0 ;與0比較
JNZ GO2
INC ;零元素計(jì)數(shù)器加一
JMP GO3
GO2: MOV [DL], ;保存 非零元素
INC DI
GO3: INC SI
LOOP GO1
MOV BYTE PTR |DI|,0
MOV ,DL ;保存零元素個(gè)數(shù)
MOV AH,
INT 21H
CODE ENDS
END
4,把從ARRAY單元開始的6個(gè)無符號數(shù)按從小到大的順序排序.請把程序補(bǔ)充完整,說明:本程序用BL寄存器作為交換標(biāo)志寄存器,BL=0,表示排序完成;BL=0FFH,表示排序示完成,BL初值預(yù)置為0FFH.
程序如下:
DATA
ARRAY DB 25,75,3,46,5,30
COUNT EQI 6
DATA ENDS
STACK SEGMENT
DW 50 DCP ( )
STACK ENDS
CODE SEGMENT
CS:CODE,DS:DATA,ES:DATA,SS:STACK
START: MOV AX, ;初始化DS,ES,SS
MOV DS,AX
MOV ES,AX
MOV AX,
MOV SS,AX
MOV BL,0FFH ;初始化變換標(biāo)志寄存器
AGAIN0: CMP BL,0
JZ DONE ;BL=0,轉(zhuǎn)移到DONE
BL,BL ;否則BL清0
MOV SI,OFFSET ARRAY
MOV CX, ;置循環(huán)次數(shù)
DEC CX
AGAINI: MOV AL,|SI| ;兩元素比較
CMP ,|SI+1|
JBE UNCH ;若|SI|≤|SI+1,不交換
EXCH: MOV DL,|SI+1| ;否則交換
MOV |SI|,DL
MOV |SI+1|,
MOV BL,0FFH ; 互換標(biāo)志位
UNCH: INC SI
LOOP AGAIN1
JMP AGAIN0
DONE: MOV AH ;返回DOS
INT 21H
CODE ; 碼段結(jié)束
END START
五,應(yīng)用題
1. 根據(jù)下列要求編寫一個(gè)匯編語言程序::
代碼段的段名為COD_SG
數(shù)據(jù)段的段名為DAT_SG
堆棧段的段名為STK_SG
變量HIGH_DAT所包含的數(shù)據(jù)為95
將變量HIGH_DAT裝入寄存器AH,BH和DL
程序運(yùn)行的入口地址為START
2. 指出下列程序中的錯(cuò)誤:
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
12. 變量DATAX和DATAY定義如下:
DATAX DW 0148H
DW 2316H
DATAY DW 0237H
DW 4052H
按下述要求寫出指令序列:
DATAX和DATAY中的兩個(gè)字?jǐn)?shù)據(jù)相加, 和存放在DATAY和DATAY+2中.
DATAX和DATAY中的兩個(gè)雙字?jǐn)?shù)據(jù)相加, 和存放在DATAY開始的字單元中.
DATAX和DATAY兩個(gè)字?jǐn)?shù)據(jù)相乘(用MUL).
DATAX和DATAY兩個(gè)雙字?jǐn)?shù)據(jù)相乘(用MUL).
DATAX除以23(用DIV).
DATAX雙字除以字DATAY(用DIV).
14. 用其他指令完成和下列指令一樣的功能:
(1) REP MOVSB (2) REP LODSB (3) REP STOSB (4) REP SCASB
微機(jī)原理及應(yīng)用復(fù)習(xí)題
一,選擇題
完整的計(jì)算機(jī)系統(tǒng)應(yīng)包括( )
A.運(yùn)算器,控制器,寄存器組,總線接口 B.外設(shè)和主機(jī)
C.主機(jī)和應(yīng)用程序 D.配套的硬件設(shè)備和軟件系統(tǒng)
計(jì)算機(jī)系統(tǒng)中的存儲器系統(tǒng)是指( )
A.RAM B.ROM C.主存儲器 D.內(nèi)存和外存
機(jī)器語言是指( )
A.用英語縮寫詞表示的面向機(jī)器的程序設(shè)計(jì)語言 B.用二進(jìn)制代碼表示的程序設(shè)計(jì)語言
C.用"0"或"1"表示的面向機(jī)器的程序設(shè)計(jì)語言
匯編語言是指( )
A用英語縮寫詞表示的面向機(jī)器的程序設(shè)計(jì)語言
B用二進(jìn)制代碼表示的面向機(jī)器的程序設(shè)計(jì)語言
C用自然語匯表示的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言
D用助記符表示的程序設(shè)計(jì)語言
高級語言是指( )
A用英語縮寫詞表示的面向機(jī)器的程序設(shè)計(jì)語言
B用二進(jìn)制代碼表示的程序設(shè)計(jì)語言
C用自然語匯表示的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言
D用英語縮寫詞表示的面向機(jī)器的程序設(shè)計(jì)語言
微處理器主要包括( ).
A.運(yùn)算器和總線接口 B.控制器和寄存器組
C.運(yùn)算器和寄存器組 D.運(yùn)算器,控制器,寄存器組,總線接口
8259A是( ).
A.鎖存器 B.可編程中斷控制器 C.并行I/O芯片 D.串口I/O芯片
當(dāng)RESET信號進(jìn)高電平狀態(tài)時(shí),將使8086/8088 CPU的( )寄存器初始化為0FFFFH.
A. ss B. DS C. ES D. CS
程序查詢流程總是按( )次序完成一個(gè)字符的傳輸.
A.讀狀態(tài)端口,寫數(shù)據(jù)端口 B.寫數(shù)據(jù)端口,讀狀態(tài)端口,寫數(shù)據(jù)端口
C.寫控制端口,讀狀態(tài)端口,寫數(shù)據(jù)端口 D.隨I/O接口的具體要求而定
8086/8088CPU響應(yīng)硬件中斷INTER請求的必要條件除IF=1外,還需滿足( ).
A.訪存儲器操作結(jié)束 B.當(dāng)前指令執(zhí)行完
C.無軟件中斷請求 D.無內(nèi)部中斷請求
CPU對DMA控制器提出的總線請求響應(yīng)要比中斷請求的響應(yīng)快,其原因是( ).
A.只需完成訪內(nèi)存操作 B.只需釋放總線控制權(quán)
C.無需保留斷點(diǎn)現(xiàn)場 D.有硬件DMA控制器
DMA傳送結(jié)束由I/O接口向CPU發(fā)出中斷請求,其目的是( ).
A.讓CPU 收回總線控制權(quán) B.讓DMA 控制器釋放總線控制
C.讓CPU 檢查DMA 操作正確性 D.讓DMA復(fù)位,準(zhǔn)備下一次DMA 傳輸
計(jì)算機(jī)軟件系統(tǒng)包括( ) .
A. 系統(tǒng)軟件和應(yīng)用軟件 B. 編輯軟件和應(yīng)用軟件
C. 數(shù)據(jù)庫軟件和工具軟件 D. 程序和數(shù)據(jù)
下面敘述中不正確的是( ).
A. 操作系統(tǒng)屬于系統(tǒng)軟件 B. 操作系統(tǒng)只管理內(nèi)存
C. UNIX是一種操作系統(tǒng) D. DOS屬于操作系統(tǒng)的一種
操作系統(tǒng)的作用是( ).
A. 解釋執(zhí)行源程序 B. 編譯源程序
C. 進(jìn)行編碼轉(zhuǎn)換 D. 控制和管理系統(tǒng)資源
以下敘述正確的是( ).
A. 微機(jī)的字長可以是8,16,24,32位
B. 微機(jī)的字長可以是8,16,32,64位
C. 微機(jī)的字長可以是8,16,24,32K
D. 字長是指計(jì)算機(jī)處理數(shù)據(jù)的精度
以下敘述不正確的是( ).
A. 一個(gè)字節(jié)由8位二進(jìn)制數(shù)構(gòu)成
B. 字節(jié)是衡量存儲容量的基本單位.
C. 字節(jié)是衡量微機(jī)性能的重要指標(biāo).
D. 字節(jié)是衡量微機(jī)字長的基本單位.
計(jì)算機(jī)的發(fā)展以( )為標(biāo)志.
A. 電子器件的更新 B. 時(shí)間的劃分
C. CPU的發(fā)展 D. 集成電路的發(fā)展
微型計(jì)算機(jī)的發(fā)展以( )為主要特征.
A. 電子器件的更新 B.微處理器的發(fā)展
C. 存儲器件的發(fā)展 D.集成電路的發(fā)展
以下有關(guān)CPU的說法不正確的是( ).
A. CPU也稱作運(yùn)算控制單元 B. CPU也稱作微處理器
C. CPU是微型機(jī)的核心部件 D. CPU也稱作運(yùn)算處理單元
下列存儲器中,存取速度最快的是( ).
A. CD-ROM B. 內(nèi)存儲器 C. 軟盤 D. 硬盤
8086CPU包括( ) .
A. 運(yùn)算器,控制器和存儲器 B. 運(yùn)算器,控制器和寄存器
C. 運(yùn)算器,控制器和接口部件 D. 運(yùn)算器,控制器和累加器
IP中存放的是( ).
A. 數(shù)據(jù) B. 地址 C. 下一指令的地址 D. 下一指令的數(shù)據(jù)
地址寄存器用( )表示.
A. IR B. DR C. ID D. AR
數(shù)據(jù)寄存器用 ( )表示.
A. IR B. DR C. ID D. AR
指令寄存器用( )表示.
A. IR B. DR C. ID D. AR
指令譯碼器用( )表示.
A. IR B. DR C. ID D. AR
8086中數(shù)據(jù)寄存器有 ( )個(gè).
A. 4 B. 5 C. 6 D. 8
8086中段寄存器有 ( )個(gè).
A. 4 B. 5 C. 6 D. 8
8086中標(biāo)志寄存器的狀態(tài)標(biāo)志占( ) 位.
A. 4 B. 5 C. 6 D. 8
8086中標(biāo)志寄存器的控制標(biāo)志占 ( )位.
A. 4 B. 5 C. 3 D. 2
8086的尋址能力為( ).
A. 20MB B. 1MB C. 64KB D. 4MB
8086的I/O尋址空間為( ).
A. 1024個(gè) B. 1M個(gè) C. 64K個(gè) D. 32K個(gè)
8086的一個(gè)基本總線周期為 個(gè)T狀態(tài).
A. 4個(gè) B. 5個(gè) C. 6個(gè) D. 7個(gè)
等待狀態(tài)TW應(yīng)在 ( )之間插入.
A. T1和T2 B. T3和T2 C. T3和T4 D. T4和T1
以下說法中,( )是錯(cuò)誤的.
A.邏輯段允許在整個(gè)存儲空間內(nèi)浮動. B.一個(gè)程序可以有代碼段,數(shù)據(jù)段和堆棧段.
C.段與段之間可以連續(xù),也可以重疊. D. 段與段之間可以連續(xù),不可以重疊.
8086中指令隊(duì)列的長度為 ( )字節(jié).
A. 4個(gè) B. 5個(gè) C. 6個(gè) D. 7個(gè)
8086中狀態(tài)寄存器為( )位寄存器.
A. 8 B. 16 C. 10 D. 32
以下敘述中,不正確的是( ) .
A. 一個(gè)總線周期含4個(gè)T狀態(tài). B. 一個(gè)時(shí)鐘周期也稱為一個(gè)T狀態(tài).
C.一個(gè)指令周期由4個(gè)總線周期組成. D. 執(zhí)行一條指令所需時(shí)間為一個(gè)指令周期.
8086中,復(fù)位操作后,程序從( )地址開始執(zhí)行.
A. 00000H B. FFFFFH C. FFFFEH D. FFFF0H
SRAM是一種( ) .
A,動態(tài)RAM B,靜態(tài)RAM C,動態(tài)ROM D,靜態(tài)ROM
DRAM是一種( ) .
A,動態(tài)RAM B,靜態(tài)RAM C,動態(tài)ROM D,靜態(tài)ROM
掩膜型ROM可簡記為( ) .
A,PROM B,MROM C,EPROM D,EEPROM
可編程ROM可簡記為( ) .
A,PROM B,MROM C,EPROM D,EEPROM
RAM是一種( )的內(nèi)存儲器.
A,永久性,隨機(jī)性 B,易失性,隨機(jī)性 C,永久性,只讀性 D,易失性,只讀性
ROM是一種( ) 的內(nèi)存儲器.
A,永久性,隨機(jī)性 B,易失性,隨機(jī)性 C,永久性,只讀性 D,易失性,只讀性
優(yōu)盤是一種電可擦除,可重寫的( )的存儲器.
A,非易失性 B,易失性 C,只讀性 D,磁介質(zhì)性
存儲器芯片位數(shù)不足時(shí),需用( ) .
A,字?jǐn)U展 B,位擴(kuò)展 C,字位擴(kuò)展 D,以上均可
實(shí)際地址,段地址,有效地址分別是多少位16進(jìn)制碼:( )
A.5,4,4 B.20,16,16 C.5,4,5 D .20,16,20
8086系統(tǒng)1M內(nèi)存空間最多能分成多少個(gè)不同的段:( )
A.16個(gè) B.64K個(gè) C.256個(gè) D.20個(gè)
8086CPU的PUSH指令執(zhí)行時(shí):( )
A.先推數(shù)據(jù),再將SP-2 B.先將SP-2,再推數(shù)據(jù)
C.先推數(shù)據(jù),再將SP+2 D.先將SP+2,再推數(shù)據(jù)
8086CPU的POP指令執(zhí)行時(shí):( )
A.先彈數(shù)據(jù),再將SP+2 B.先將SP+2,再彈數(shù)據(jù)
C.先彈數(shù)據(jù),再將SP-2 D.先將SP-2,再彈數(shù)據(jù)
存儲器尋址方式中,缺省段地址是SS的間址寄存器是:( )
A.SP間址 B.BP間址 C.BX間址
能進(jìn)行間接尋址的間址寄存器有:( )
A.4個(gè) B.6個(gè) C.8個(gè)
LEA指令要求源操作數(shù)必須為:( )
A.一個(gè)16位寄存器 B.一個(gè)存儲器操作數(shù) C.一個(gè)有效地址
LEA指令傳送的是:( )
A.源操作數(shù)的值 B.源操作數(shù)的偏移地址 C.源操作數(shù)的物理地址
兩單字節(jié)帶符號數(shù)用IMUL相乘,結(jié)果為:( )
A.單字節(jié)帶符號數(shù) B.雙字節(jié)無符號數(shù) C.雙字節(jié)帶符號數(shù)
帶符號數(shù)將其字長擴(kuò)充1倍,而值不變,只需要:( )
A.將高半部分補(bǔ)全"0" B.將高半部分補(bǔ)全"1" C.將原最高位擴(kuò)充到高半部分
MOV AX,0和XOR AX,AX兩條指令:( )
A.實(shí)現(xiàn)的功能完全一樣 B.都將AX清零 C.執(zhí)行后AX值不一致
MOVS指令傳送的串類型:( )
A.僅能為字節(jié)串 B.僅能為字串 C.可以為字節(jié)串及字串
調(diào)用指令執(zhí)行完后,堆棧指針指向:( )
A.最后推入斷點(diǎn)地址的單元 B.最后推入斷點(diǎn)地址單元的上一個(gè)單元(地址較低的單元)
C.-128~+127范圍內(nèi)
[SI]的類型是: ( )
A.字 B.字節(jié) C.不確定
二,填空題
指令包括 , 兩部分.
標(biāo)號有3個(gè)屬性, 屬性, 屬性和 屬性.
8086產(chǎn)生20位的地址,稱為 .
8086系統(tǒng)中,就有三種時(shí)間周期,分別是 , , .
邏輯地址由兩部分組成 , .
堆棧段在存儲區(qū)中的位置由 , 來規(guī)定.
8位無符號數(shù)表示的范圍為 .
16位無符號數(shù)表示的范圍為 .
微計(jì)算機(jī)中的帶符號數(shù)通常用 表示.
8位帶符號數(shù)表示的范圍為 .
16位帶符號數(shù)表示的范圍為 .
指令就是為調(diào)用程序調(diào)用過程(或稱轉(zhuǎn)子程序)而設(shè)立的.
指令放在子程序的末尾,當(dāng)子程序功能完成后,由它實(shí)現(xiàn)返回.
當(dāng)微計(jì)算機(jī)系統(tǒng)在運(yùn)行時(shí),或者程序運(yùn)行期間,遇到某些特殊情況,需要CPU停止執(zhí)行當(dāng)前的程序,產(chǎn)生 .
轉(zhuǎn)去執(zhí)行一組專門的例行程序進(jìn)行處理,這種情況稱為中斷.這種例行程序稱為 .
已知邏輯地址為2F80H:38A0H,物理地址= .
靜態(tài)MOS存儲器是靠 存儲信息,動態(tài)MOS存儲器是靠 存儲信息.
存儲器芯片地址譯碼方法有 和 兩種方法.
用4K×4bit的存儲器芯片構(gòu)成32KB的存儲器,所需要的芯片數(shù)是 片.
受CLI和STI指令控制的中斷是 .
標(biāo)號有3個(gè)屬性, 屬性, 屬性和 屬性.
如果一個(gè)程序在執(zhí)行前(CS)=0A8F0H,(IP)=2B40H,該程序的起始物理地址是 .
三總線包括 總線, 總線和 總線.
在8088系統(tǒng)中, 一個(gè)段最大64KB,8088有 條地址線,可以尋址的最大物理空間為1MB.
十六進(jìn)制數(shù)30AH轉(zhuǎn)換為二進(jìn)制原碼是 ,轉(zhuǎn)換為BCD碼是 .
在指令中立即數(shù)只能用作 操作數(shù),而不能用作目的操作數(shù).
用2K×4位的存儲芯片組成4K×8位的存儲器,需要進(jìn)行 擴(kuò)展.
在8088系統(tǒng)中, 在構(gòu)成存儲器時(shí)使用全部20位地址線進(jìn)行譯碼,即 譯碼方式.
如果帶符號數(shù)FFH加上帶符號數(shù)01H,結(jié)果 產(chǎn)生溢出.
CPU的尋址能力取決于 的根數(shù).
8086 CPU內(nèi)部數(shù)據(jù)總線寬度為______位,外部數(shù)據(jù)總線寬度為______位.
8088 CPU內(nèi)部數(shù)據(jù)總線寬度為______位,外部數(shù)據(jù)總線寬度為______位.
IO接口地址譯碼方法有 和 兩種方法.
在8088系統(tǒng)中,中斷類型碼為7的中斷向量的存放地址是 .
當(dāng)存儲器的讀出時(shí)間大于CPU所要求的時(shí)間,為保證CPU與存儲器的周期配合,就需要用 信號,使CPU插入一個(gè) 狀態(tài).
當(dāng)總線負(fù)載超過負(fù)載能力時(shí),需在總線與負(fù)載間加接 .
如果一個(gè)程序在執(zhí)行前(CS)=0A7F0H,(IP)=2B40H,該程序的起始地址是 .
判斷有符號數(shù)加/減運(yùn)算后是否溢出的公式是OF= ,若OF= ,則溢出.
中斷類型碼為1AH的中斷向量地址為 .
8086系統(tǒng)最多能識別 種不同類型的中斷,每種中斷在中斷向量表中分配有 個(gè)字節(jié)單元,用以指示中斷服務(wù)程序的入口地址.
三,簡答題
1,下列指令中源操作數(shù)的尋址方式是什么
(1) MOV BX,[0100H] 答:
(2) MOV CX,DATA[SI] 答:
(3) MOV ES:[SI],AX 答:
(4) ADD AX,[BX][DI] 答:
(5) MOV AL,NUMBER[BP][DI] 答:
2,執(zhí)行下列指令后,AX寄存器的內(nèi)容是什么
定義: TABLE DW 0,100H,200H,300H,400H
DISTA DW 6
(1)執(zhí)行 MOV BX,OFFSETTABLE
ADD BX,DISTA
MOV AX,[BX] AX的內(nèi)容:
(2)執(zhí)行 MOV SI,4
LEA BX,TABLE
MOV AX,[BX][SI] AX的內(nèi)容:
3,指出下列指令的錯(cuò)誤.
a.MOV AX,[SI][DI]; 答:
b.MOV [SI],OFFH; 答:
c.MOV DATA[SI],CS:AX;答:
d.MOV CL,BX; 答:
e.OUT280H,AL; 答:
4,變量是什么 標(biāo)號是什么
5.8086/8088系統(tǒng)中有20根地址線,它的存儲空間最大是多少 將該內(nèi)存空間順序分為16段,每段64K,試寫出第二段和最末段的地址范圍.
6.分析下列程序段,寫出該程序段的功能.
MOV AX,2000H
MOV DS,AX
MOV AX,6000H
MOV ES,AX
MOV SI,1200H
MOV DI,0
MOV CX,100
CLD
NEXT:REP CMPSB
7.8088CPU的中斷系統(tǒng)中,中斷向量表長度是多少字節(jié) 中斷向量表的地址范圍是多少
8,已知X=-1101001 Y=-1010110,計(jì)算[X-Y]補(bǔ)=
9,8088的EU和BIU有哪些主要功能 在執(zhí)行指令期間,EU能直接訪問存儲器嗎
10,指出以下指令中源操作數(shù)的尋址方式.
MOV SI,300 MOV AX,[3102H] ADD AX,[BX][SI] MUL BL
MOV [BP],AX
11,編寫程序段,當(dāng)輸入接口的bit1,bit4,bit7位同時(shí)為1時(shí),CPU將內(nèi)存中以DATA為首址的10個(gè)單元的數(shù)據(jù)從輸出接口輸出,若不滿足上述條件則等待.
已知輸入接口地址:FF80H
輸出接口地址:FF81H
12,已知X=1100001B,Y=1010101B,用8位補(bǔ)碼計(jì)算(X-Y)補(bǔ)= ,并說明結(jié)果是否溢出.
14,在8086/8088系統(tǒng)中,當(dāng)前數(shù)據(jù)段位于存儲器的78000H-87FFFH,則DS 段寄存器為: .
15,在數(shù)據(jù)段中有以下定義:
ARRAY1 EQU 16H
ARRAY2 DW 7F16H
請指出下面兩條指令中源操作數(shù)的尋址方式:
MOV AX,ARRAY1; 尋址方式
MOV AX,ARRAY2; 尋址方式
四,程序填空題
1,下列程序段為RAM實(shí)驗(yàn)中的存儲器測試程序,將語句補(bǔ)充完整.
DATA
MESSAGE DB "PLEASE ENTER A KEY TO SHOW THE CONTENTS",ODH,OAH,"$"
DATA ENDS
CODE SEGMENT
ASSUME CS: ,DS:DATA, ES:DATA
START:MOV AX,DATA
MOV DS,
MOV AX,2000H
MOV ES,AX
MOV BX,1000H
MOV DL,40H
REP1: INC DL ;輸入A到Z 26個(gè)字符
MOV ES:[BX],DL
INC ;修改指針
CMP DL,"Z"
JNZ
LEA DX, ;以下顯示提示信息
MOV AH,09H
INT 21H
MOV AH,01H ;等待按鍵
INT 21H
MOV AX,2000H ;
MOV ES,AX
MOV BX,1000H
MOV CX,26 ;以下顯示已寫入的字符
REP2: MOV DL,ES:[BX]
MOV ,02H
INT 21H
INC BX
LOOP
MOV AX, ;返回DOS
INT 21H
CODE
END START
2,設(shè)在內(nèi)存NUM單元開始存放著100個(gè)字節(jié),要求將其中為零的元素全部刪除,并將保留的數(shù)據(jù)連續(xù)存放,以$為結(jié)束標(biāo)志;結(jié)束標(biāo)志的下一個(gè)單元保存零元素個(gè)數(shù).下列程序是滿足以上要求的部分程序,請補(bǔ)充完整.
DATA SEGMENT
NUM 100 DUP( )
NUM1 DB 00,00
DATA ENDS
CODE
ASSUME CS:CODE,
START: MOV AX,DATA
MOV DS,AX
LEA SI, ;取NUM數(shù)據(jù)區(qū)首址
MOV DI,SI
MOV CX,100
XOR DL,DL ;DL作為統(tǒng)計(jì)零元素個(gè)數(shù)的計(jì)數(shù)器
GO1: MOV AL,[SI]
CMP
JNZ GO2
INC
JMP GO3
GO2: MOV [DI],AL
INC DI
GO3: INC
LOOP
MOV [DI],"$"
INC DI
MOV [DI],
MOV AH,
INT 21H
CODE ENDS
END START
3,設(shè)在內(nèi)存NUM單元開始存放著100個(gè)字節(jié)類型的整數(shù),要求將其中為一的元素全部刪除,并將剩余的數(shù)據(jù)元素連續(xù)存放,以0為結(jié)束標(biāo)志,另外結(jié)束標(biāo)志的下一個(gè)單元保存零元素個(gè)數(shù).下列程序是滿足以上要求的部分程序,完成該程序:
DATA SEGMENT
NUM a1, a2, ……, a100
NUM1 DB 0,0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:
START:MOV AX,DATA
MOV DS,AX
LEA SI, ;取數(shù)據(jù)首址
MOV DI, SI
MOV CX,100
XOR DL,DL ;DL作為統(tǒng)計(jì)零元素個(gè)數(shù)的計(jì)數(shù)器
GO1: MOV AL,|SI|
CMP ,0 ;與0比較
JNZ GO2
INC ;零元素計(jì)數(shù)器加一
JMP GO3
GO2: MOV [DL], ;保存 非零元素
INC DI
GO3: INC SI
LOOP GO1
MOV BYTE PTR |DI|,0
MOV ,DL ;保存零元素個(gè)數(shù)
MOV AH,
INT 21H
CODE ENDS
END
4,把從ARRAY單元開始的6個(gè)無符號數(shù)按從小到大的順序排序.請把程序補(bǔ)充完整,說明:本程序用BL寄存器作為交換標(biāo)志寄存器,BL=0,表示排序完成;BL=0FFH,表示排序示完成,BL初值預(yù)置為0FFH.
程序如下:
DATA
ARRAY DB 25,75,3,46,5,30
COUNT EQI 6
DATA ENDS
STACK SEGMENT
DW 50 DCP ( )
STACK ENDS
CODE SEGMENT
CS:CODE,DS:DATA,ES:DATA,SS:STACK
START: MOV AX, ;初始化DS,ES,SS
MOV DS,AX
MOV ES,AX
MOV AX,
MOV SS,AX
MOV BL,0FFH ;初始化變換標(biāo)志寄存器
AGAIN0: CMP BL,0
JZ DONE ;BL=0,轉(zhuǎn)移到DONE
BL,BL ;否則BL清0
MOV SI,OFFSET ARRAY
MOV CX, ;置循環(huán)次數(shù)
DEC CX
AGAINI: MOV AL,|SI| ;兩元素比較
CMP ,|SI+1|
JBE UNCH ;若|SI|≤|SI+1,不交換
EXCH: MOV DL,|SI+1| ;否則交換
MOV |SI|,DL
MOV |SI+1|,
MOV BL,0FFH ; 互換標(biāo)志位
UNCH: INC SI
LOOP AGAIN1
JMP AGAIN0
DONE: MOV AH ;返回DOS
INT 21H
CODE ; 碼段結(jié)束
END START
五,應(yīng)用題
1. 根據(jù)下列要求編寫一個(gè)匯編語言程序::
代碼段的段名為COD_SG
數(shù)據(jù)段的段名為DAT_SG
堆棧段的段名為STK_SG
變量HIGH_DAT所包含的數(shù)據(jù)為95
將變量HIGH_DAT裝入寄存器AH,BH和DL
程序運(yùn)行的入口地址為START
2. 指出下列程序中的錯(cuò)誤:
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
12. 變量DATAX和DATAY定義如下:
DATAX DW 0148H
DW 2316H
DATAY DW 0237H
DW 4052H
按下述要求寫出指令序列:
DATAX和DATAY中的兩個(gè)字?jǐn)?shù)據(jù)相加, 和存放在DATAY和DATAY+2中.
DATAX和DATAY中的兩個(gè)雙字?jǐn)?shù)據(jù)相加, 和存放在DATAY開始的字單元中.
DATAX和DATAY兩個(gè)字?jǐn)?shù)據(jù)相乘(用MUL).
DATAX和DATAY兩個(gè)雙字?jǐn)?shù)據(jù)相乘(用MUL).
DATAX除以23(用DIV).
DATAX雙字除以字DATAY(用DIV).
14. 用其他指令完成和下列指令一樣的功能:
(1) REP MOVSB (2) REP LODSB (3) REP STOSB (4) REP SCASB