微機(jī)原理及接口技術(shù)試題集_第1頁(yè)
微機(jī)原理及接口技術(shù)試題集_第2頁(yè)
微機(jī)原理及接口技術(shù)試題集_第3頁(yè)
微機(jī)原理及接口技術(shù)試題集_第4頁(yè)
微機(jī)原理及接口技術(shù)試題集_第5頁(yè)
已閱讀5頁(yè),還剩98頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-.z.第一章微型計(jì)算機(jī)根底習(xí)題一1.簡(jiǎn)述微型計(jì)算機(jī)系統(tǒng)的組成。

2.簡(jiǎn)述計(jì)算機(jī)軟件的分類及操作系統(tǒng)的作用。

3.將以下十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù):

(1)49;〔2〕73.8125;(3)79.75

4.將二進(jìn)制數(shù)變換成十六進(jìn)制數(shù):

〔1〕101101B;〔2〕1101001011B;〔3〕11101B;

〔4〕1B;〔5〕1111111B;〔6〕B

5.將十六進(jìn)制數(shù)變換成二進(jìn)制數(shù)和十進(jìn)制數(shù):

〔1〕FAH;〔2〕5BH;〔3〕78A1H;〔4〕FFFFH;(5)34.2AH;〔6〕B8.93H

6.將以下十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù):

〔1〕39;〔2〕299.34375;〔3〕54.5625

7.將以下二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù):

〔1〕10110.101B;〔2〕10010010.001B;〔3〕11010.1101B

8.計(jì)算〔按原進(jìn)制運(yùn)算〕:

〔1〕10001101B+11010B;〔2〕10111B+11100101B;〔3〕1011110B-1110B;

〔4〕124AH+78FH;〔5〕5673H+123H;〔6〕1000H-F5CH;

9.a=1011B,b=11001B,c=100110B,按二進(jìn)制完成以下運(yùn)算,并用十進(jìn)制運(yùn)算檢查計(jì)算結(jié)果:

〔1〕a+b;〔2〕c-a-b;〔3〕a·b;〔4〕c/b10.a=00111000B,b=11000111B,計(jì)算以下邏輯運(yùn)算:

〔1〕aANDb;〔2〕aORb;〔3〕a*ORb;〔4〕NOTa11.設(shè)機(jī)器字長(zhǎng)為8位,寫(xiě)出以下各數(shù)的原碼和補(bǔ)碼:

〔1〕+1010101B;〔2〕-1010101B;〔3〕+1111111B;

〔4〕-1111111B;〔5〕+1000000B;〔6〕-1000000B

12.寫(xiě)出以下十進(jìn)制數(shù)的二進(jìn)制補(bǔ)碼表示〔設(shè)機(jī)器字長(zhǎng)為8位〕:

〔1〕15;〔2〕-1;〔3〕117;〔4〕0;

〔4〕-15;〔5〕127;〔6〕-128;〔7〕80

13.設(shè)機(jī)器字長(zhǎng)為8位,先將以下各數(shù)表示成二進(jìn)制補(bǔ)碼,然后按補(bǔ)碼進(jìn)展運(yùn)算,并用十進(jìn)制數(shù)運(yùn)算進(jìn)展檢驗(yàn):

〔1〕87-73;〔2〕87+〔-73〕;〔3〕87-〔-73〕;

〔4〕〔-87〕+73;〔5〕〔-87〕-73;〔6〕〔-87〕-〔-73〕;

14.a,b,c,d為二進(jìn)制補(bǔ)碼:a=00110010B,b=01001010B,c=11101001B,d=10111010B,計(jì)算:

〔1〕a+b;〔2〕a+c;〔3〕c+b;〔4〕c+d;

〔5〕a-b;〔6〕c-a;〔7〕d-c;〔8〕a+d-c

15.設(shè)以下四組為8位二進(jìn)制補(bǔ)碼表示的十六進(jìn)制數(shù),計(jì)算a+b和a-b,并判斷其結(jié)果是否溢出:

〔1〕a=37H,b=57H;〔2〕a=0B7H,b=0D7H;

〔3〕a=0F7H,b=0D7H;〔4〕a=37H,b=0C7H

16.求以下組合BCD數(shù)的二進(jìn)制和十六進(jìn)制表示形式:

〔1〕3251〔2〕12907〔3〕ABCD〔4〕abcd

17.將以下算式中的十進(jìn)制數(shù)表示成組合BCD碼進(jìn)展運(yùn)算,并用加6/減6修正其結(jié)果:

〔1〕38+42;〔2〕56+77;〔3〕99+88;〔4〕34+69;

〔5〕38-42;〔6〕77-56;〔7〕15-76;〔8〕89-23

18.將以下字符串表示成相應(yīng)的ASCII碼〔用十六進(jìn)制數(shù)表示〕:

〔1〕E*ample1;〔2〕JinanUniversity;〔3〕-108.652;

〔4〕Howareyou";〔5〕Computer〔6〕InternetWeb

19.將以下字符串表示成相應(yīng)的ASCII碼〔用十六進(jìn)制數(shù)表示〕:

〔1〕Hello〔2〕123<CR>456;〔注:<CR>表示回車〕〔3〕ASCII;

〔4〕Thenumberis2315習(xí)題二一、選擇題1.80486CPU進(jìn)展算術(shù)和邏輯運(yùn)算時(shí),可處理的信息的長(zhǎng)度為()。A、32位B、16位C、8位D、都可以2.在下面關(guān)于微處理器的表達(dá)中,錯(cuò)誤的選項(xiàng)是()。A、微處理器是用超大規(guī)模集成電路制成的具有運(yùn)算和控制功能的芯片B、一臺(tái)計(jì)算機(jī)的CPU含有1個(gè)或多個(gè)微處理器C、存放器由具有特殊用途的局部?jī)?nèi)存單元組成,是內(nèi)存的一局部D、不同型號(hào)的CPU可能具有不同的機(jī)器指令3.假設(shè)用MB作為PC機(jī)主存容量的計(jì)量單位,1MB等于()字節(jié)。A、210個(gè)字節(jié)B、220個(gè)字節(jié)C、230個(gè)字節(jié)D、240個(gè)字節(jié)4.運(yùn)算器在執(zhí)行兩個(gè)用補(bǔ)碼表示的整數(shù)加法時(shí),判斷其是否溢出的規(guī)則為()。A、兩個(gè)整數(shù)相加,假設(shè)最高位〔符號(hào)位〕有進(jìn)位,則一定發(fā)生溢出B、兩個(gè)整數(shù)相加,假設(shè)結(jié)果的符號(hào)位為0,則一定發(fā)生溢出C、兩個(gè)整數(shù)相加,假設(shè)結(jié)果的符號(hào)位為1,則一定發(fā)生溢出D、兩個(gè)同號(hào)的整數(shù)相加,假設(shè)結(jié)果的符號(hào)位與加數(shù)的符號(hào)位相反,則一定發(fā)生溢出5.運(yùn)算器的主要功能是()。A、算術(shù)運(yùn)算B、邏輯運(yùn)算C、算術(shù)運(yùn)算與邏輯運(yùn)算D、函數(shù)運(yùn)算6.運(yùn)算器由很多部件組成,其核心局部是()。A、數(shù)據(jù)總線B、算術(shù)邏輯單元C、累加器D、多路開(kāi)關(guān)7.在一般的微處理器中,()包含在CPU中。A、內(nèi)存B、輸入/輸出單元C、磁盤(pán)驅(qū)動(dòng)器D、算術(shù)邏輯單元8.80486CPU的標(biāo)志存放器中,OF標(biāo)志表示運(yùn)算結(jié)果的()情況。A、進(jìn)/借位B、符號(hào)C、溢出D、輔助進(jìn)位9.假設(shè)*數(shù)據(jù)段位于存儲(chǔ)區(qū)38000H~47FFFH,則該數(shù)據(jù)段的段基址為〔〕。A、38000HB、47FFFHC、3000HD、3800H10.程序設(shè)計(jì)中所使用的地址是〔〕。A、邏輯地址B、有效地址C、物理地址D、段基址11.80*86執(zhí)行程序時(shí),對(duì)存儲(chǔ)器進(jìn)展訪問(wèn)時(shí),物理地址可由〔〕組合產(chǎn)生。A、SS和IPB、CS和IPC、DS和IPD、CS和BP12.*處理器與內(nèi)存進(jìn)展數(shù)據(jù)交換的外部數(shù)據(jù)總線為32位,它屬于〔〕。A、8位處理器B、16位處理器C、32位處理器D、64位處理器13.在堆棧操作中,隱含使用的通用存放器是〔〕。A、A*B、B*C、SID、SP14.主要決定微機(jī)性能的是〔〕A、CPUB、耗電量C、質(zhì)量D、價(jià)格15.十進(jìn)制負(fù)數(shù)–38的八位二進(jìn)制補(bǔ)碼是〔〕A、01011011BB、11011010BC、11011011BD、01011010B16.假設(shè)*臺(tái)微型計(jì)算機(jī)的型號(hào)是奔四800,則其中800的含義是〔〕A、CPU中有800個(gè)存放器B、CPU中有800個(gè)運(yùn)算器C、該微機(jī)的內(nèi)存為800MBD、時(shí)鐘頻率為800MHZ17.在計(jì)算機(jī)內(nèi)部,一切信息的存取,處理和傳送都是以〔〕形式進(jìn)展。A、EBCDIC碼B、ASCII碼C、十六進(jìn)制編碼D、二進(jìn)制編碼18.16位PC機(jī)中整數(shù)的有效范圍是〔〕A、-32768―32767B、-32767―32767C、0―65535D、-32768―32767或0―6553519.在〔〕表示中,二進(jìn)制數(shù)11111111B表示十進(jìn)制數(shù)–1A、原碼B、反碼C、補(bǔ)碼D、BCD碼20.用8位的二進(jìn)制數(shù)的補(bǔ)碼形式表示一個(gè)帶符號(hào)數(shù),它能表示的整數(shù)范圍是〔〕A、-127—+127B、-128—+128C、-127—+128D、-128—+12721.計(jì)算機(jī)中運(yùn)算器和控制器合稱為〔〕A、CPUB、ALUC、主機(jī)D、ENIAC22.32位的個(gè)人計(jì)算機(jī),一個(gè)字節(jié)〔Byte〕由〔〕位〔bit〕組成。A、4B、8C、16D、3223.假設(shè)機(jī)器中浮點(diǎn)數(shù)的表示格式如下:階符階碼尾符尾尾數(shù)用補(bǔ)碼,階碼〔階碼基數(shù)為2,尾數(shù)以規(guī)格化數(shù)表示〕用補(bǔ)碼表示時(shí),-123.625的表示形式為()。A、00110B、11010C、00101D、0011024.從功能上,8086的CPU由〔〕兩局部組成。A、SP、ALUB、控制器、FLAGSC、EU、BIUD、EU、ALU25.標(biāo)志存放器FLAGS中存放兩類標(biāo)志,即〔〕。A、符號(hào)標(biāo)志、溢出標(biāo)志B、控制標(biāo)志、狀態(tài)標(biāo)志C、方向標(biāo)志、進(jìn)位標(biāo)志D、零標(biāo)志、奇偶標(biāo)志26.假設(shè)AL=3BH,AH=7DH,則AL和AH中的內(nèi)容相加后,標(biāo)志CF、SF和OF的狀態(tài)分別是〔〕。A、0、1、1B、1、1、1C、0、0、0D、1、1、027.假設(shè)AL=3BH,AH=7DH,則AL和AH中的內(nèi)容相減后,標(biāo)志CF、AF和PF的狀態(tài)分別是〔〕。A、0、0、1B、1、1、1C、0、1、0D、1、0、028.以下有關(guān)指令指針存放器的說(shuō)法中,哪一個(gè)是正確的〔〕。A、IP存放當(dāng)前正在執(zhí)行的指令在代碼段中的偏移地址B、IP存放下一條將要執(zhí)行的指令在代碼段中的偏移地址C、IP存放當(dāng)前正在執(zhí)行的指令在存儲(chǔ)器中的物理地址D、IP存放當(dāng)前正在執(zhí)行的指令在存儲(chǔ)器中的段地址29.最小模式時(shí),當(dāng)M/為低電平時(shí),表示CPU正在對(duì)〔〕進(jìn)展訪問(wèn)。A、存儲(chǔ)器B、I/O端口C、外部存儲(chǔ)器D、EPROM30.下面有關(guān)MN/的表達(dá)正確的選項(xiàng)是〔〕A、是工作模式選擇信號(hào),由CPU產(chǎn)生,為高電平時(shí)CPU工作在最小模式,為低電平時(shí),CPU工作在最大模式B、是工作模式選擇信號(hào),由CPU產(chǎn)生,為低電平時(shí)CPU工作在最小模式,為高電平時(shí),CPU工作在最大模式C、是工作模式選擇信號(hào),由外部輸入,為低電平時(shí)CPU工作在最小模式,為高電平時(shí),CPU工作在最大模式D、是工作模式選擇信號(hào),由外部輸入,為高電平時(shí)CPU工作在最小模式,為低電平時(shí),CPU工作在最大模式31.*CPU的主頻為250MHZ,則它的時(shí)鐘周期為〔〕A、250nsB、50nsC、40nsD、4ns32.如果訪問(wèn)存儲(chǔ)器時(shí)使用BP尋址,則默認(rèn)的段存放器是〔〕A、CSB、ESC、DSD、SS33.*單元在數(shù)據(jù)段中,DS=1000H,偏移地址為1200H,則它的物理地址為〔〕A、10000HB、11200HC、12100HD、13000H34.*系統(tǒng)中,SS=2360H,SP=0800H,假設(shè)將20H個(gè)字節(jié)的數(shù)據(jù)入棧,則SP的內(nèi)容為〔〕A、0780HB、0820HC、23E20HD、07E0H35.*系統(tǒng)中,建立堆棧時(shí)SS=2360H,SP=0800H,經(jīng)過(guò)一段時(shí)間后,SP的內(nèi)容變?yōu)?700H,則堆棧中有多少個(gè)字的數(shù)據(jù)〔〕A、80HB、50HC、100D、100H36.設(shè)*一個(gè)單元的物理地址是54321H,則正確的邏輯地址表示為〔〕A、4321H:50000HB、54320H:1HC、5430H:0021HD、5432H:00001H37.如果一個(gè)程序在執(zhí)行前CS=1000H,IP=2000H,該程序的起始地址是〔〕A、3000HB、12000HC、21000HD、1000H38.如果一個(gè)堆棧從地址1250H:0100H開(kāi)場(chǎng),SP=0050,則SS的段地址是〔〕A、12600HB、1260HC、1265HD、125BH39.假設(shè)[*]補(bǔ)=11101011B,[Y]補(bǔ)=01001010B,則[*–Y]補(bǔ)=〔〕A、10100001BB、11011111BC、10100000BD、溢出二、判斷題1.80486的邏輯段不允許有段的重疊和穿插。2.在80486的32位標(biāo)志存放器中,其每一位都有一定的含義。3.假設(shè)一個(gè)數(shù)據(jù)塊的起始地址為20A0H:0F6H,則該數(shù)據(jù)塊起始地址的實(shí)際地址是21B60H。4.SP的內(nèi)容可以不指向堆棧的棧頂。5.存放器尋址其運(yùn)算速度較低。6.字長(zhǎng)是描述CPU數(shù)據(jù)總線寬度的指標(biāo)。7.計(jì)算機(jī)的堆棧是一種特殊的數(shù)據(jù)存儲(chǔ)區(qū),數(shù)據(jù)存取采用先進(jìn)先出的原則。8.當(dāng)運(yùn)算結(jié)果各位全部為零時(shí),標(biāo)志ZF=0。9.邏輯地址不是物理地址,但它是唯一的。三、填空題1.計(jì)算機(jī)是通過(guò)()、()、()總線把各個(gè)部件連接在一起,構(gòu)成一個(gè)系統(tǒng)。2.8086的數(shù)據(jù)總線是()位,地址總線是()位。3.PC機(jī)主存儲(chǔ)器中的根本存儲(chǔ)單元的長(zhǎng)度是()。4.80486可訪問(wèn)8位、()、和()、〔〕位的存放器。5.在微處理器的實(shí)地址方式下,段存放器的作用是()。6.假設(shè)一個(gè)數(shù)中含有3個(gè)"1”8.80486工作在實(shí)模式下時(shí),假設(shè)需對(duì)堆棧區(qū)進(jìn)展操作,其物理地址是由()和()組合產(chǎn)。9.程序設(shè)計(jì)中使用的地址稱為(),而CPU對(duì)存儲(chǔ)器單元進(jìn)展操作時(shí)使用的地址稱為〔)。10.按存儲(chǔ)器的分級(jí)原則,其容量最大的一級(jí)存儲(chǔ)器成為()。11.按存儲(chǔ)器的分級(jí)原則,其速度最快的一級(jí)存儲(chǔ)器成為()。12.微機(jī)的主要性能指標(biāo)中,字長(zhǎng)是指()。13.微型計(jì)算機(jī)由()和()兩大局部組成。14.上電復(fù)位時(shí),假設(shè)CPU的CS=0FFFFH,IP=0000H,則第一條指令從〔〕H方取15.8088與外部交換數(shù)據(jù)的總線寬度是位,與存放器組之間的數(shù)據(jù)總線寬度是位,EU內(nèi)部總線寬度是位。16.設(shè)AL=80H,AH=83H,AL和AH中的內(nèi)容相加后,CF=,OF=,ZF=,PF=,AF=,SF=。17.8086/8088將整個(gè)存儲(chǔ)空間劃分為許多邏輯段,每個(gè)邏輯段容量在以內(nèi),各個(gè)邏輯段相互重疊。18.8086/8088中,*單元只能有一個(gè)地址,但可以有多個(gè)地址。19.如果對(duì)堆棧進(jìn)展操作,則段基址來(lái)源于,偏移地址來(lái)源于。20.*存儲(chǔ)單元物理地址為32413H,則相對(duì)于段地址為3000H,其偏移地址為,假設(shè),它的偏移地址是1003H,則其段地址為。21.在8086/8088系統(tǒng)中,所有讀寫(xiě)存儲(chǔ)器或I/O端口操作都是由通過(guò)系統(tǒng)總線完成的。四、簡(jiǎn)答題1.簡(jiǎn)述EU和BIU的主要功能"

2.8086和8088的主要區(qū)別是什么"第二章微處理器構(gòu)造習(xí)題一一、簡(jiǎn)答題1.微處理器內(nèi)部構(gòu)造由哪幾局部組成?闡述各局部的主要功能。2.微處理器級(jí)總線有哪幾類?各類總線有什么作用?3.為什么地址總線是單向的,而數(shù)據(jù)總線是雙向的?4.8086/8088微處理器內(nèi)部有哪些存放器?其主要作用是什么?5.什么是虛擬存儲(chǔ)器?其作用是什么?80386/80486的虛擬存儲(chǔ)器容量最大有多少?6.何為RISC技術(shù)?與CISC相比其主要特點(diǎn)是什么?7.80386/80486有哪三種工作模式?各有何特點(diǎn)?8.什么叫流水線技術(shù)和超標(biāo)量、超流水線技術(shù)?9.什么叫高度緩沖存儲(chǔ)器技術(shù)?微機(jī)采用這種技術(shù)的根本目的是什么?10.試比擬實(shí)工作模式和仿8086工作模式的異同。11.8086的邏輯地址、物理地址和線性地址分別指什么?它們的尋址能力分別為多少?12.保護(hù)工作模式下的保護(hù)是何含義?該工作模式下主要進(jìn)展哪幾方面的保護(hù)功能?13.DOS下對(duì)超過(guò)640KB的內(nèi)存如何管理?14.以下操作可使用哪些存放器?〔1〕加法和減法;〔2〕循環(huán)計(jì)數(shù);〔3〕乘法和除法;〔4〕保存段地址;〔5〕表示運(yùn)算結(jié)果的特征;〔6〕指令地址;〔7〕從堆棧中取數(shù)的地址;15.將以下兩組的詞匯和說(shuō)明關(guān)聯(lián)起來(lái):〔1〕CPU;A.保存當(dāng)前棧頂?shù)刂返拇娣牌鳎?/p>

〔2〕EU;B.指示下一條要執(zhí)行指令的地址;

〔3〕BIU;C.總線接口部件,實(shí)現(xiàn)執(zhí)行部件所需要的所有總線操作;

〔4〕IP;D.分析并控制指令執(zhí)行的部件;

〔5〕SP;E.存儲(chǔ)程序、數(shù)據(jù)等信息的記憶裝置,PC機(jī)有RAM和ROM兩種;

〔6〕存儲(chǔ)器;F.以后進(jìn)先出方式工作的存儲(chǔ)器空間;

〔7〕堆棧;G.把匯編語(yǔ)言程序翻譯成機(jī)器語(yǔ)言程序的系統(tǒng)程序;

〔8〕指令;H.惟一代表存儲(chǔ)器空間中的每個(gè)字節(jié)單元的地址;〔9〕狀態(tài)標(biāo)志;I.能被計(jì)算機(jī)直接識(shí)別的語(yǔ)言;

〔10〕控制標(biāo)志;J.用指令的助記符、符號(hào)地址、標(biāo)號(hào)等符號(hào)書(shū)寫(xiě)程序的語(yǔ)言;

〔11〕段存放器;K.把假設(shè)干個(gè)模塊連接起來(lái)成為可執(zhí)行文件的系統(tǒng)程序;

〔12〕物理地址;L.保存各邏輯段的起始地址的存放器;

〔13〕匯編語(yǔ)言;M.控制操作的標(biāo)志,PC機(jī)有三位:DF、IF、TF;〔14〕機(jī)器語(yǔ)言;N.記錄指令操作結(jié)果的標(biāo)志,PC機(jī)有六位:OF、SF、ZF、AF、PF、CF;

〔15〕匯編程序;O.執(zhí)行部件,由算術(shù)邏輯單元〔ALU〕和存放器組等組成;

〔16〕連接程序;P.由匯編程序在匯編過(guò)程中執(zhí)行的指令;

〔17〕目標(biāo)碼;Q.告訴CPU要執(zhí)行的操作,在程序運(yùn)行時(shí)執(zhí)行;

〔18〕偽指令R.機(jī)器語(yǔ)言代碼。16.IBMPC有哪些存放器可用來(lái)指示存儲(chǔ)器的地址?二、計(jì)算選擇題1.如果*微處理器有20條地址總線和16條數(shù)據(jù)總線:〔1〕假定存儲(chǔ)器地址空間與I/O地址空間是分開(kāi)的,則存儲(chǔ)器地址空間有多大?〔2〕數(shù)據(jù)總線上傳送的有符號(hào)整數(shù)的范圍有多大?2.將十六進(jìn)制數(shù)62A0H與以下各數(shù)相加,求出其結(jié)果及標(biāo)志位CF、AF、SF、ZF、OF和PF的值:〔1〕1234H;〔2〕4321H;〔3〕CFA0H;〔4〕9D60H3.從以下各數(shù)中減去4AE0H,求出其結(jié)果及標(biāo)志位CF、AF、SF、ZF、OF和PF的值:〔1〕1234H;〔2〕5D90H;〔3〕9090H;〔4〕EA04H4.寫(xiě)出以下存儲(chǔ)器地址的段地址、偏移地址和物理地址:〔1〕2134:10A0;〔2〕1FA0:0A1F〔3〕267A:B8765.給定一個(gè)數(shù)據(jù)的有效地址為2359H,并且〔DS〕=490BH,求該數(shù)據(jù)的物理地址。6.如果在一個(gè)程序段開(kāi)場(chǎng)執(zhí)行之前,〔CS〕=0A7F7.設(shè)〔B*〕=637DH,〔SI〕=2A9BH,位移量=0C237H,〔DS〕=3100H,求以下尋址方式產(chǎn)生的有效地址和物理地址:〔1〕直接尋址;〔2〕用B*的存放器間接尋址;〔3〕用B*的存放器相對(duì)尋址;〔4〕用B*和SI的基址變址尋址;〔5〕用B*和SI的基址變址且相對(duì)尋址8.假設(shè)〔CS〕=5200H時(shí),物理轉(zhuǎn)移地址為5A238H,則〔CS〕變成7800H時(shí),物理轉(zhuǎn)移地址為多少?9.設(shè)〔CS〕=0200H,〔IP〕=2BC0H,位移量=5119H,〔B*〕=1200H,〔DS〕=212AH,〔224A0H〕=0600H,〔275B9H〕=098AH。求使用以下尋址方式時(shí)的轉(zhuǎn)移地址:〔1〕段內(nèi)直接尋址方式;〔2〕使用B*的存放器尋址的段內(nèi)間接尋址方式;〔3〕使用B*的存放器相對(duì)尋址的段內(nèi)間接尋址方式;10.有一塊120個(gè)字的存儲(chǔ)區(qū)域,其起始地址為625A:234D,寫(xiě)出這個(gè)存儲(chǔ)區(qū)域首末單元的物理地址。11.兩個(gè)十六進(jìn)制數(shù)7825H和5A1FH分別相加和相減后,求運(yùn)算結(jié)果及各標(biāo)志位的值。第三章指令系統(tǒng)和尋址方式習(xí)題三一.選擇題

1.指令A(yù)DDC*,55H[BP]的源操作數(shù)的尋址方式是()。

(A)存放器尋址(B)直接尋址(C)存放器間接尋址(D)存放器相對(duì)尋址

2.設(shè)(SS)=3300H,(SP)=1140H,在堆棧中壓入5個(gè)字?jǐn)?shù)據(jù)后,又彈出兩個(gè)字?jǐn)?shù)據(jù),則(SP)=()。

(A)113AH(B)114AH(C)1144H(D)1140H

3.假設(shè)SI=0053H,BP=0054H,執(zhí)行SUBSI,BP后,則()。

(A)CF=0,OF=0(B)CF=0,OF=1(C)CF=1,OF=0(D)CF=1,OF=1

4.(BP)=0100H,(DS)=7000H,(SS)=8000H,(80100H)=24H,(80101H)=5AH,(70100H)=01H,(70101H)=02H,指令MOVB*,[BP]執(zhí)行后,(B*)=()。

(A)0102H(B)0201H(C)245AH(D)5A24H

5.實(shí)模式下80486CPU對(duì)指令的尋址由()決定。

(A)CS,IP(B)DS,IP(C)SS,IP(D)ES,IP

6.使用80486匯編語(yǔ)言的偽操作指令定義:VALDB2DUP(1,2,3DUP(3),2DUP(1,0))則在VAL存儲(chǔ)區(qū)內(nèi)前十個(gè)字節(jié)單元的數(shù)據(jù)是()。

(A)1,2,3,3,2,1,0,1,2,3(B)1,2,3,3,3,3,2,1,0,1

(C)2,1,2,3,3,2,1,0(D)1,2,3,3,3,1,0,1,0,1

7.以下四條指令都可用來(lái)使累加器清"0",但其中不能清"進(jìn)位"位的是()。

(A)*ORAL,AL(B)ANDAL,0(C)MOVAL,0(D)SUBAL,AL

8.假設(shè)(A*)=96H,(B*)=65H,依次執(zhí)行ADDA*,B*指令和DAA指令后,(AL)=()。

(A)0FBH(B)01H(C)61H(D)0BH

9.以下能使CF標(biāo)志置1的指令是()。

(A)CMC(B)CLC(C)STC(D)CLD

10.MOVA*,[BP+SI]隱含使用的段存放器是()。

(A)CS(B)DS(C)ES(D)SS

11.設(shè)AL=7FH,要使AL=80H,應(yīng)使用以下哪一條指令()。

(A)ANDAL,80H(B)ORAL,80H(C)*ORAL,80H(D)NOTAL

12.在執(zhí)行十進(jìn)制調(diào)整指令DAA,DAS之前必須將結(jié)果存放于()中。

(A)A*(B)AH(C)AL(D)BL

13.以下指令執(zhí)行后影響標(biāo)志位的是()。

(A)MOV(B)PUSH(C)ADD(D)*CHG

14.唯一能對(duì)應(yīng)存儲(chǔ)單元的地址是()。

(A)物理地址(B)端口地址(C)有效地址(D)邏輯地址

15.計(jì)算機(jī)能直接執(zhí)行的語(yǔ)言是()。

(A)機(jī)器語(yǔ)言(B)匯編語(yǔ)言(C)高級(jí)語(yǔ)言(D)程序設(shè)計(jì)語(yǔ)言

16.需采用先進(jìn)后出原則操作的存儲(chǔ)區(qū)是()。

(A)存放器組(B)地址緩沖器(C)數(shù)據(jù)存放器(D)堆棧區(qū)

17.存放器SP用于對(duì)()的操作。

(A)空閑單元(B)堆棧單元(C)數(shù)據(jù)單元(D)指令單元

18.假設(shè)(B*)=1000H,(DS)=2000H,(21000H)=12H,(21001H)=34H,執(zhí)行LEASI,[B*]指令后,SI存放器的內(nèi)容是()。

(A)1234H(B)3412H(C)1000H(D)0010H

19.假設(shè)(AL)=80H,執(zhí)行NEGAL指令后,CF和OF標(biāo)志位的狀態(tài)分別為()。

(A)0和0(B)0和1(C)1和0(D)1和1

20.假設(shè)要完成〔A*〕*7/2運(yùn)算,則在以下四條指令之后添加()指令。MOVB*,A*;MOVCL,3;SALA*,CL;SUBA*,B*()。

(A)RORA*,1(B)SALA*,1(C)SARA*,1(D)DIVA*,2

21.在保護(hù)模式下,代碼段的段基址存在于()中。

(A)段選擇符(B)指令指針存放器(C)段存放器(D)段描述符

22.查表指令*LAT規(guī)定,待查表的首址應(yīng)存入()中。

(A)BP(B)SI(C)DI(D)B*

23.將要取的*一條指令的偏移地址由()提供。

(A)SI(B)BP(C)SP(D)IP

24.存放器間接尋址方式中,操作數(shù)在()中。

(A)通用存放器(B)堆棧(C)主存單元(D)段存放器

25.運(yùn)算型指令的尋址和轉(zhuǎn)移型指令的尋址,其不同點(diǎn)在于()。

(A)前者取操作數(shù),后者決定程序的轉(zhuǎn)移地址

(B)后者取操作數(shù),前者決定程序的轉(zhuǎn)移地址

(C)兩者都是取操作數(shù)(D)兩者都是決定程序的轉(zhuǎn)移地址

26.JMPWORDPTR[DI]是()。

(A)段內(nèi)間接轉(zhuǎn)移(B)段間間接轉(zhuǎn)移(C)段內(nèi)直接轉(zhuǎn)移(D)段間直接轉(zhuǎn)移

27.INC指令不影響()標(biāo)志。

(A)OF(B)CF(C)SF(D)ZF

28.邏輯移位指令SHL用于()。

(A)帶符號(hào)數(shù)乘2(B)帶符號(hào)數(shù)除2(C)無(wú)符號(hào)數(shù)乘2(D)無(wú)符號(hào)數(shù)除2

29.算術(shù)移位指令SAR用于()。

(A)帶符號(hào)數(shù)乘2(B)帶符號(hào)數(shù)除2(C)無(wú)符號(hào)數(shù)乘2(D)無(wú)符號(hào)數(shù)除2

30.以下指令中,有語(yǔ)法錯(cuò)誤的選項(xiàng)是()。

(A)MOV[SI],A*(B)INAL,D*

(C)*ORA*,1234H(D)OUT210H,AL

31.在以下偽指令中定義字變量的是()。

(A)DD(B)DW(C)DQ(D)DT

32.以下指令中,能使AL的內(nèi)容固定為偶數(shù)的是()。

(A)ADDAL,01H(B)ORAL,0FEH(C)ANDAL,0FEH(D)*ORAL,0FEH

33.改變()存放器的值,可改變堆棧中棧頂元素的位置。

(A)BP(B)IP(C)SP(D)B*

34.加減類運(yùn)算指令對(duì)標(biāo)志位的狀態(tài)()。

(A)有影響(B)局部影響(C)無(wú)影響(D)任意

35.當(dāng)AH=()時(shí),執(zhí)行INT21H指令可在屏幕上顯示一組字符。

(A)01H(B)02H(C)09H(D)0AH

36.VARDW1,2,$+2,5,6假設(shè)匯編時(shí)VAR分配的偏移地址是2010和,則匯編后2014H單元的內(nèi)容是()。

(A)6H(B)14H(C)5H(D)16H

37.假設(shè)*數(shù)據(jù)段位于存儲(chǔ)區(qū)68000H~7FFFFH,則該數(shù)據(jù)段的段基址是()。

(A)68000H(B)7FFFFH(C)6000H(D)6800H

38.SP的作用是用來(lái)指示〔〕。

(A)棧頂元素的有效地址(B)下一條要執(zhí)行指令的地址

(C)下一條要取的指令的地址(D)棧底元素的有效地址

39.在數(shù)據(jù)傳送指令執(zhí)行過(guò)程中,不能直接與立即數(shù)進(jìn)展傳送的是〔〕。

(A)通用存放器(B)段存放器(C)存儲(chǔ)器(D)通用存放器和存儲(chǔ)器

40.轉(zhuǎn)移類指令對(duì)標(biāo)志位的狀態(tài)〔〕。

(A)有影響(B)局部影響(C)無(wú)影響(D)隨意

41.欲從存儲(chǔ)單元取*操作數(shù),可采用〔〕。

(A)存放器尋址、存放器間接尋址(B)立即尋址、直接尋址

(C)立即尋址、存放器間接尋址(D)存放器間接尋址、直接尋址

42.在指令MOVA*,0執(zhí)行后,CPU狀態(tài)標(biāo)志位ZF的取值〔〕。

〔A〕為0〔B〕為1〔C〕不確定〔D〕不改變

43.AL=10010111H,BL=00010101H,執(zhí)行ADDAL,BL指令后,OF、SF、CF、ZF標(biāo)志的狀態(tài)為〔〕。

(A)1、0、1、1(B)1、1、0、0(C)0、0、1、1(D)0、1、0、1

44.以下指令中,錯(cuò)誤的選項(xiàng)是〔〕。

(A)MOVB*,OFFSETBUF(B)LEASI,BUF

(C)LEADI,OFFSETBUF(D)MOVBP,SEGBUF

45.輸入/輸出指令對(duì)標(biāo)志位的狀態(tài)〔〕。

〔A〕有影響〔B〕局部影響〔C〕無(wú)影響〔D〕任意

46.以下描述正確的選項(xiàng)是〔〕。

(A)匯編語(yǔ)言僅由指令性語(yǔ)句組成

(B)匯編語(yǔ)言包括指令性語(yǔ)句和偽指令語(yǔ)句

(C)指令性語(yǔ)句和偽指令語(yǔ)句的格式是完全一樣的

(D)指令性語(yǔ)句和偽指令語(yǔ)句需經(jīng)匯編程序翻譯成機(jī)器代碼后才能執(zhí)行

47.以下指令中不屬于邏輯運(yùn)算指令的是〔〕。

〔A〕*OR〔B〕CWD〔C〕NOT〔D〕OR

48.假定D*=10111001B,CL=3,CF=1,則執(zhí)行指令SHLD*,CL后,D*的值為〔〕。

〔A〕005CH〔B〕0017H〔C〕1700H〔D〕05C8H

49.以下指令中不會(huì)改變指令指針存放器內(nèi)容的是〔〕。

〔A〕MOV〔B〕JMP〔C〕CALL〔D〕RET

50.偽指令ENDP告訴匯編程序〔〕。

〔A〕宏定義完畢〔B〕過(guò)程定義完畢

〔C〕段定義完畢〔D〕過(guò)程運(yùn)行完畢

51.利用DOS系統(tǒng)功能調(diào)用的9號(hào)〔AH=9〕功能,顯示一個(gè)字符串,其入口參數(shù)應(yīng)為〔〕。

〔A〕DS:D*=字符串首地址〔B〕DS:D*=字符串末地址

〔C〕CS:D*=字符串首地址〔D〕CS:D*=字符串末地址

52.在以下偽指令中定義雙字變量的是〔〕。

(A)DB(B)DW(C)DD(D)DT

二、判斷題

1.指令MOVA*,[B*]的源操作數(shù)是存放器尋址方式。

2.對(duì)堆棧區(qū)的操作必須遵循先進(jìn)先出的原則。

3.比擬兩個(gè)帶符號(hào)數(shù)的大小,可根據(jù)CF標(biāo)志來(lái)判斷。

4.邏輯操作符AND,OR,*OR和NOT,只能用于數(shù)字表達(dá)式。

5.不能給段存放器賦立即數(shù)。

6.OF位可用來(lái)表示有符號(hào)數(shù)的溢出。

7.無(wú)條件轉(zhuǎn)移指令只能用于段內(nèi)直接轉(zhuǎn)移。

8.MOVA*,[BP]的源操作數(shù)的物理地址為16*(DS)+(BP)。

9.指令MOVDI,OFFSET[B*][SI]是正確的。

10.指令MOVCS,B*是非法的。

11.指令NOTA*,B*是合法的。

12.MOV[B*][BP],A*是對(duì)的。

13.80486中對(duì)堆棧單元的存取操作是以字節(jié)為單位的。

14.JMP指令要影響標(biāo)志位。

15.INC指令影響所有狀態(tài)標(biāo)志。

16.欲交換存放器SI,DI的內(nèi)容,可用指令*CHGSI,DI實(shí)現(xiàn)。

17.CPU中的程序計(jì)數(shù)器IP中存放的是指令的邏輯地址。

18.兩個(gè)符號(hào)一樣的數(shù)相減不會(huì)產(chǎn)生溢出。

19.匯編程序就是匯編語(yǔ)言程序。

20.相對(duì)尋址中的位移量只能用16位表示。

21.CLD指令是MOVSB指令的使用條件之一。

22.段存放器間不能直接進(jìn)展數(shù)據(jù)傳送。

23.要把變量BUFF的有效地址送給B*,可用MOVB*,BUFF指令。

24.當(dāng)對(duì)堆棧段的數(shù)據(jù)進(jìn)展操作時(shí),其操作數(shù)的有效地址可保存在BP中。

25.TEST指令屬于邏輯運(yùn)算指令。

26.CS和IP都不能作傳送指令的目的操作數(shù)。

三、填空題

1.假設(shè)SS=5310H,SP=0E30H,其物理地址為()。

2.假設(shè)CH=07H,CL=08H,執(zhí)行指令A(yù)DDCH,CL后,AF=(),CF=(),OF=(),PF=()。

3.指令由()和()兩個(gè)字段構(gòu)成。

4.條件轉(zhuǎn)移指令JNE的測(cè)試條件是()。

5.假設(shè)用指針〔BP〕訪問(wèn)存儲(chǔ)器,則數(shù)據(jù)包含在()段中。

6.假設(shè)A*=1234H,SP=1000H,指令PUSHA*執(zhí)行后A*=(),SP=()。

7.指令采用()尋址方式時(shí)操作數(shù)是在代碼段中。

四、閱讀程序

程序中數(shù)據(jù)定義如下:

DATA1DW"

DATA2DB32DUP(")

DATA3DD"

COUNTEQU$-DATA1

此時(shí)COUNT的值是〔〕。

2.分析以下程序段,說(shuō)出其功能。MOVA*,1000H

MOVDS,A*

MOVES,A*

MOVSI,0100H

MOVDI,0200H

MOVC*,50D

REPMOVSB

3.寫(xiě)出以下程序段的功能

MOVB*,2000H

MOVDS,B*

*ORAL,AL

MOVC*,100

AGAIN:MOV[B*],AL

INCB*

LOOPAGAIN

4.寫(xiě)出以下程序段的功能

LEASI,BUFFER

LEADI,ARRAY

MOVC*,100

*ORBL,BL

LP:CMP[SI],01H

JNZLP1

INCBL

LP1:INCSI

LOOPLP

MOV[DI],BL

5.寫(xiě)出以下程序段的功能

MOVC*,16

MOVA*,N

MOVBH,0

LP0:SHLA*,1

JCLP

INCBH

LP:LOOPLP0

MOVSUM,BH

6.寫(xiě)出以下程序段的功能

MOVAL,N

ANDN,0FH

MOVBL,N

SHRAL,4

MOVBH,AL

7.執(zhí)行以下程序段后,A*=?

MOVA*,0702H

MOVBH,09H

AAD

DIVBH

8.下面程序段執(zhí)行后AL=?

ABCDW2152H,3416H,5731H,4684H

MOVB*,OFFSETABC

MOVAL,3

*LAT

9.執(zhí)行下面的程序段后A*=?

MOVC*,5

MOVA*,50

NE*T:SUBA*,C*

LOOPNE*T

HLT

10.執(zhí)行下面的程序段后A*=?

TABDW1,2,3,4,5,6

ENTRYEQU6

MOVB*,OFFSETTAB

ADDB*,ENTRY

MOVA*,[B*]

11.執(zhí)行下面程序段后A*=

ARRAYDW1,2,3,4,5,6,7,8,9,10

COUNTEQU$-ARRAY

*ORA*,A*

MOVC*,COUNT

MOVSI,OFFSETARRAY

NE*T:ADDA*,[SI]

INCSI

LOOPNE*T

12.寫(xiě)出以下程序段的功能

MOVAH,1

INT21H

ANDAL,0FH

MOVBL,AL

MOVAH,1

INT21H

SHLAL,4

ANDAL,BL

將從鍵盤(pán)承受到的兩個(gè)字符拼在一起

13.執(zhí)行以下程序段后

NDB07H

*ORBH,BH

MOVBL,N

RCLBL,1

ADDBH,BL

*ORBH,0FFH

HLT

存放器BH的值是,存放器BL的值是。

14.分析以下程序段

MOVAL,N

*ORAH,AH

MOVCL,4

DIVCL

當(dāng)N=3CH時(shí),程序執(zhí)行完后A*=

15.程序段如下:

CLC

MOVAL,6

MOVBL,9

ADDAL,BL

MOVBL,AL

DAA

執(zhí)行上面程序段后,AL=,AF=,BL=

16.執(zhí)行以下指令后

TABLEDB19H,55H,9CH

LEAB*,TABLE

MOVAL,[B*]

*ORAL,89H

MOV[B*],AL

存放器AL的值是

17.分析以下程序段,說(shuō)明該程序段執(zhí)行何種功能。

MOVC*,10

MOVDL,30H

NE*T1:MOVAH,2

INT21H

INCDL

LOOPNE*T1

18.執(zhí)行以下指令后

MOVA*,1245H

MOVB*,5689H

ADDAL,BL

MOVCL,AL

MOVAL,AH

ADCAL,BH

DAA

存放器AL的值是,存放器CL的值是

19.分析以下程序段:

MOVAL,N

*ORAH,AH

MOVBL,16

DIVBL

當(dāng)N=57H時(shí),程序執(zhí)行完后A*=?

20.在下面程序的括號(hào)中分別填入如下指令:

①LOOP*H②LOOPNE*H③LOOPE*H

問(wèn)在這三種情況下,當(dāng)程序執(zhí)行完后,A*、B*、C*、D*四個(gè)存放器中的內(nèi)容分別是什么?

START:MOVA*,04

MOVB*,02

MOVC*,03

MOVD*,05

*H:INCA*

ADDB*,A*

SHRD*,1

〔〕

HLT

21.閱讀程序,請(qǐng)說(shuō)出該程序的功能是什么?

MOVA*,DATA

MOVDS,A*

LEASI,BUFFER

*ORBL,BL

MOVC*,100

AGAIN:MOVAL,[SI]

TESTAL,1

JNZNE*T

INCBL

NE*T:INCSI

LOOPAGAIN

HLT

22.從鍵盤(pán)上接收一字符,假設(shè)是"Y〞轉(zhuǎn)YES,是"N〞轉(zhuǎn)NO,否則繼續(xù)等待,到輸入"Y〞或"N〞為止。

程序段如下:

MOVAL,N

ANDAL,0FH

ADDAL,90H

DAA

ADCAL,40H

MOVRUT,AL

HLT

問(wèn):①假設(shè)N=5,以下程序執(zhí)行后AL=?②該程序段的功能是什么?

23.執(zhí)行以下程序段后:

DATASEGMENT

DT1LABLEWORD

DT2DB12H,34H

DATAENDS

………………

MOVAL,DT2

MOVD*,DT1

存放器AL的值是①,存放器D*的值是②。

24.讀以下程序,請(qǐng)說(shuō)出該程序的功能是什么?

DATASEGMENT

SUMDW0

DATAENDS

STACKSEGMENT

DB200DUP〔?〕

STACKENDS

CODESEGMENT

ASSUMEDS:DATA,SS:STACK,CS:CODE

START:MOVA*,DATA

MOVDS,A*

MOVC*,50

MOVA*,0

MOVB*,1

NE*T:ADDA*,B*

INCB*

INCB*

DECC*

JNENE*T

MOVSUM,A*

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

25.設(shè)偽指令定義如下,請(qǐng)畫(huà)出內(nèi)存分配示意圖。

BUFDB"

DW‘AB’

DW‘C’

DW1234H

DB‘EF’

26.執(zhí)行以下程序段后:

DATASEGMENT

DT1DW8A9BH

DT2DB7CH,6DH

DATAENDS

MOVA*,DT1

MOVB*,OFFSETDT1

MOVSI,OFFSETDT2

存放器B*的值是①,存放器SI的值是②。

27.執(zhí)行以下指令后:

TABLEDB10H,33H,41H

┉┉

MOVB*,OFFSETTABLE

MOVAL,[B*]

*ORAL,80H

MOV[B*],AL

存放器AL的值是多少?

28.執(zhí)行以下程序段后:

DATASEGMENT

N1DW3355H

N2DB23H,89H

DATAENDS

MOVA*,N1

MOVDI,OFFSETN1

MOVBP,OFFSETN2

存放器DI的值是多少?存放器BP的值是多少?

29.執(zhí)行以下指令后:

DATDB10H,33H,41H

┉┉

LEAB*,DAT

MOVA*,SEGDAT

MOVES,A*

MOVAL,ES:[B*]

*ORAL,80H

MOVES:[B*],AL

存放器AL的值是多少?

30.執(zhí)行以下程序段后:

BUFDB01H

……

*ORAL,AL

MOVAL,BUF

MOVBL,AL

SALAL,1

ADDAL,BL

*ORAL,0FFH

HLT

存放器AL的值是多少?存放器BL的值是多少?

五.程序填空

1.以下程序是在鍵盤(pán)上輸入120個(gè)字符,然后將輸入反序后顯示在屏幕上。請(qǐng)將程序填寫(xiě)完整。

STACK1SEGMENT

STPDW120DUP(")

STACK1ENDS

CODESEGMENT

ASSUMECS:CODE,SS:STACK1

START:MOVA*,STACK1

MOVSS,A*

MOVSP,SIZESTPMOVC*,120

LOOP1:MOVAH,01H

INT21H

PUSHA*

()

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,0DH

INT21H

MOVC*,120

LOOP2:()

MOVAH,02H

INT21H

LOOPLOOP2

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

六、編寫(xiě)程序

1.在STR到STR+49單元中存放著一個(gè)字符串,試編寫(xiě)一個(gè)程序,測(cè)試字符串中是否存在數(shù)字,如有,則把DL的第五位置1,否則將該位置0。

2.試編程實(shí)現(xiàn),從鍵盤(pán)接收N個(gè)〔N≤60〕8位二進(jìn)制數(shù),統(tǒng)計(jì)其中奇數(shù)的個(gè)數(shù),并將結(jié)果顯示在屏幕上。

3.有100字節(jié)的數(shù)據(jù)塊存放在以5C10H:2000H開(kāi)場(chǎng)的存儲(chǔ)區(qū)內(nèi),要求編寫(xiě)一個(gè)完整程序?qū)?shù)據(jù)移動(dòng)到以5C10H:2008H開(kāi)場(chǎng)的存儲(chǔ)區(qū)內(nèi)。

4.?dāng)?shù)組A包含100個(gè)互不相等的整數(shù),數(shù)組B包含150個(gè)互不相等的整數(shù),試編程實(shí)現(xiàn)將數(shù)組A和數(shù)組B都有的整數(shù)存放在數(shù)組C中。5.在以BASE起始的表中存有一組字符,它以‘回車’〔0DH〕完畢。請(qǐng)編寫(xiě)程序:實(shí)現(xiàn)從該表中查找關(guān)鍵字KEY〔設(shè)關(guān)鍵字KEY在AL中〕,并將找到的第一個(gè)關(guān)鍵字偏離表首的位置存放在存放器D*中,假設(shè)無(wú)此關(guān)鍵字,D*返回值為-1。

6.編寫(xiě)一個(gè)中斷程序,實(shí)現(xiàn)人機(jī)對(duì)話。要求執(zhí)行程序時(shí),顯示‘WHATISYOURNAME?’,在回車換行后,接收鍵盤(pán)輸入信息,并顯示。

7.編寫(xiě)程序找出BUF數(shù)據(jù)區(qū)中50個(gè)帶符號(hào)數(shù)的最大值和最小值,并分別存入MA*和MIN單元。

8.試編程實(shí)現(xiàn)從鍵盤(pán)接收N個(gè)〔N≤50〕8位二進(jìn)制數(shù),統(tǒng)計(jì)偶數(shù)的個(gè)數(shù)及偶數(shù)之和,并將統(tǒng)計(jì)的個(gè)數(shù)以十進(jìn)制方式顯示在屏幕上。9.以STRING起始的字符串的最大長(zhǎng)度為80個(gè)字符,字符串的完畢用字符$表示。編寫(xiě)程序在該字符串中查找是否有空格符〔ASCII碼為20H〕,假設(shè)有就將第一個(gè)空格字符串中的位置〔00H~4FH〕存入POST單元;假設(shè)無(wú)空格則將-1存入POST。

10.BUFFER字節(jié)數(shù)組中存有一組無(wú)序列字節(jié)數(shù)數(shù)據(jù),列的長(zhǎng)度表示在BUFFER的第一個(gè)字節(jié)中KEY中為一個(gè)字節(jié)數(shù)據(jù),編寫(xiě)程序在BUFFER中查找有無(wú)KEY,假設(shè)有就完畢,假設(shè)沒(méi)有就將KEY參加到BUFFER中去,并修改列的長(zhǎng)度。

11.利用移位及數(shù)據(jù)循環(huán)指令完成將DHAL中的16位二進(jìn)制乘以8的運(yùn)算,結(jié)果仍存入DHAL中。

12.分別從鍵盤(pán)上接收兩長(zhǎng)度相等的組數(shù)A和B,試完成兩數(shù)組的求和任務(wù),將結(jié)果存放在數(shù)組C中,并顯示在屏幕上。13.編寫(xiě)程序,將鍵盤(pán)輸入的小寫(xiě)字母用大寫(xiě)字母顯示出來(lái)。

14.要求從鍵盤(pán)接收一個(gè)十進(jìn)制數(shù)字,然后找出它的前導(dǎo)數(shù)字和后繼數(shù)字,并按相反的順序顯示輸出。

15.設(shè)在變量*、Y、Z中存放有三個(gè)數(shù),假設(shè)三個(gè)數(shù)都不為0,則求出三個(gè)數(shù)之和存入U(xiǎn)中,假設(shè)有一個(gè)為0,則將其它兩個(gè)單元也清零,編寫(xiě)此程序。

16.求出首地址為DATA的M個(gè)字節(jié)的無(wú)符號(hào)數(shù)組中最小奇數(shù),并把它存放于DL中。第四章匯編語(yǔ)言程序設(shè)計(jì)習(xí)題四例4-1寫(xiě)出以下變量的內(nèi)容:VAR1DB125,125/3,-1,-10HVAR2DW125,125/3,-1,-10HVAR3DB‘AB’,‘CD’VAR4DW‘AB’,‘CD’解:按十六進(jìn)制數(shù)依次寫(xiě)出各個(gè)變量的內(nèi)容為:VAR1:7D,29,F(xiàn)F,F(xiàn)0VAR2:007D,0029,F(xiàn)FFF,F(xiàn)FF0VAR3:41,42,43,44VAR4:4142,4344按內(nèi)存存儲(chǔ)順序給出:7D,29,F(xiàn)F,F(xiàn)0,7D,00,29,00,F(xiàn)F,F(xiàn)F,F(xiàn)0,F(xiàn)F,41,42,43,44,42,41,44,43例4.2設(shè)有以下偽指令:STARTDB1,2,3,4,’ABCD’DB3DUP〔?,1〕BUFDB10DUP〔?〕,15LEQUBUF-START求L的值。解:由EQU偽指令知,L的值為BUF的偏移地址減去START的偏移地址,而變量START共占用8個(gè)字節(jié),第2行定義的變量〔無(wú)變量名〕共占用6個(gè)字節(jié),因此,L的值為8+6=14=0EH。例4.3在緩沖區(qū)DATABUF中保存有一組無(wú)符號(hào)數(shù)據(jù)〔8位〕,其數(shù)據(jù)個(gè)數(shù)存放在DATABUF的第1、2個(gè)字節(jié)中,要求編寫(xiě)程序?qū)?shù)據(jù)按遞增順序排列?!才c教材p.114例類似,但方法不同〕解:這里采用雙重循環(huán)實(shí)現(xiàn)數(shù)據(jù)的排序,這可使程序變得簡(jiǎn)單。N=100;設(shè)有100個(gè)數(shù)據(jù)STACKSEGMENTSTACK‘STACK’DW100HDUP(")TOPLABELWORDSTACKENDSDATASEGMENTDATABUFDWNDBNDUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVA*,DATAMOVDS,A*MOVES,A*MOVA*,STACKMOVSS,A*LEASP,TOP;取出隨機(jī)數(shù)據(jù)MOVC*,DATABUFLEASI,DATABUF+2MOVBL,23MOVAL,11LP:MOV[SI],ALINCSIADDAL,BLLOOPLP;數(shù)據(jù)排序MOVC*,DATABUFDECC*LEASI,DATABUF+2ADDSI,C*LP1:PUSHC*PUSHSILP2:MOVAL,[SI]CMPAL,[SI-1]JAENO*CHG*CHGAL,[SI-1]MOV[SI],ALNO*CHG:DECSILOOPLP2POPSIPOPC*LOOPLP1;數(shù)據(jù)排序完畢MOVAH,4CH;返回DOSMOVAL,0INT21HCODEENDSENDSTART例4-4有一組數(shù)據(jù)(16位而進(jìn)制數(shù))存放在緩沖區(qū)BUF1中,數(shù)據(jù)個(gè)數(shù)保存在BUF1的頭兩個(gè)字節(jié)中。要求編寫(xiě)程序?qū)崿F(xiàn)在緩沖區(qū)中查找*一數(shù)據(jù),如果緩沖區(qū)中沒(méi)有該數(shù)據(jù),則將它插入到緩沖區(qū)的最后;如果緩沖區(qū)中有多個(gè)被查找的數(shù)據(jù),則只保存第一個(gè),將其余的刪除。解:在緩沖區(qū)BUF中搜索指定的數(shù)據(jù),當(dāng)沒(méi)有找到時(shí),插入該數(shù)據(jù);當(dāng)找到時(shí),進(jìn)入搜索多余的重復(fù)數(shù)據(jù),每找到一個(gè)就刪除它〔將緩沖區(qū)的剩余數(shù)據(jù)向前移動(dòng)一個(gè)字〕。當(dāng)然應(yīng)注意更新緩沖區(qū)的長(zhǎng)度單元。STACKSEGMENTSTACK'STACK'DW100HDUP(")TOPLABELWORDSTACKENDS;設(shè)緩沖區(qū)原有10個(gè)字,指定的數(shù)據(jù)為〔NEW〕=56AAHDATASEGMENTBUFDW10DW1000H,0025H,6730H,6758H,7344H,2023H,0025H,6745H,10A7H,0B612HDW10DUP(")NEWDW56AAHDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVA*,DATAMOVDS,A*MOVES,A*MOVA*,STACKMOVSS,A*LEASP,TOP;搜索指定的數(shù)據(jù)MOVC*,BUFLEASI,BUF+2MOVA*,NEWL1:CMPA*,[SI]JZL2.......INCSIINCSILOOPL1;沒(méi)有找到,則插入數(shù)據(jù)MOV[SI],A*INCBUFJMPOK;找到后,在剩余局部搜索重復(fù)的數(shù)據(jù)L2:DECC*INCSIINCSIL3:CMPA*,[SI]JZL4INCSIINCSILOOPL3JMPOK;找到一個(gè)重復(fù)數(shù)據(jù),則刪除它L4:PUSHSIDECC*PUSHC*MOVDI,SIINCSIINCSICLDREPMOVSWDECBUFPOPC*POPSIJMPL3;刪除后,返回繼續(xù)搜索重復(fù)的數(shù)據(jù)OK:MOVAH,4CH;返回DOSMOVAL,0INT21HCODEENDSENDSTART例4.5在緩沖區(qū)DAT1和DAT2中,存放著兩組遞增有序的8位二進(jìn)制無(wú)符號(hào)數(shù),其中前兩個(gè)字節(jié)保存數(shù)組的長(zhǎng)度,要求編程實(shí)現(xiàn)將它們合并成一組遞增有序的數(shù)據(jù)DAT,DAT的前兩個(gè)字節(jié)仍用于保存數(shù)組長(zhǎng)度。解:這里要用到3個(gè)指針的使用。對(duì)于寫(xiě)指針首選使用DI,兩個(gè)讀指針可采用SI和B*,分別指示DAT1和DAT2。這樣可適時(shí)使用字符串指令,以簡(jiǎn)化程序設(shè)計(jì)。在設(shè)計(jì)中,將用B*指示的緩沖區(qū)DAT2內(nèi)容讀入AL,這樣,當(dāng)要將DAT1的內(nèi)容傳送到DAT時(shí),可采用MOVSB指令;當(dāng)要將DAT2的內(nèi)容傳送到DAT時(shí),可采用STOSB指令。STACKSEGMENTSTACK'STACK'DW100HDUP(")TOPLABELWORDSTACKENDS;設(shè)DAT1中有10個(gè)數(shù)據(jù),DAT2中有13個(gè)數(shù)據(jù)DATASEGMENTDAT1DW10DB10H,25H,67H,68H,73H,83H,95H,0A8H,0C2H,0E6HDAT2DW13DB05,12H,26H,45H,58H,65H,67H,70H,76H,88H,92H,0CDH,0DEHDATDW"DB200DUP(")DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVA*,DATAMOVDS,A*MOVES,A*MOVA*,STACKMOVSS,A*LEASP,TOPMOVC*,DAT1MOVD*,DAT2MOVDAT,C*ADDDAT,D*LEASI,DAT1+2LEAB*,DAT2+2LEADI,DAT+2CLDL1:MOVAL,[B*]INCB*L2:CMPAL,[SI]JBL3MOVSB;DAT1區(qū)中的數(shù)據(jù)傳送到DAT區(qū)DECC*JZL4JMPL2L3:STOSB;DAT2區(qū)中的數(shù)據(jù)傳送到DAT區(qū)DECD*JZL5JMPL1L4:MOVSI,B*DECSIMOVC*,D*L5:REPMOVSBMOVAH,4CH;返回DOSMOVAL,0INT21HCODEENDSENDSTART例4.6緩沖區(qū)BUFA內(nèi)有20個(gè)互不相等的整數(shù)〔其序號(hào)從0到19〕,緩沖區(qū)BUFB內(nèi)有30個(gè)互不相等的整數(shù)〔其序號(hào)從0到29〕。編寫(xiě)程序完成:將既在BUFA中出現(xiàn)又在BUFB中出現(xiàn)的整數(shù)〔設(shè)為*〕存放在緩沖區(qū)BUFC中,并將*在BUFA和BUFB中的序號(hào)分別存放于緩沖區(qū)BUFCA和BUFCB中。解:這里需要5個(gè)指針,但BUFC、BUFCA和BUFCB為同步操作,只需要一個(gè)指針,尋址方式為存放器相對(duì)尋址,即〔設(shè)AL為找到的值,DL、BL為序號(hào)〕MOVBUFC[DI],ALMOVBUFCA[DI],DLMOVBUFCB[DI],BL;對(duì)序號(hào)也應(yīng)小心處理,我們采用存放器相對(duì)尋址,例如MOVAL,BUFA[SI],其中SI即為序號(hào)。STACKSEGMENTSTACK'STACK'DW100HDUP(")TOPLABELWORDSTACKENDSN1=20N2=30DATASEGMENTBUFADB10H,25H,67H,26H,68H,73H,83H,58H,0,06H,12H,0CDH,95HDB0A8H,0C2H,48H,0E6H,0F1H,1AH,0F5HBUFBDB05,12H,26H,45H,53H,60H,6AH,7FH,76H,88H,92H,0C1H,0DEH,0E1H,0F5HDB09,17H,23H,48H,58H,65H,67H,70H,7CH,82H,96H,0CDH,0D1H,0F1H,0FEHBUFCDB20DUP(")BUFCADB20DUP(")BUFCBDB20DUP(")DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVA*,DATAMOVDS,A*MOVES,A*MOVA*,STACKMOVSS,A*LEASP,TOP;以BUFA為外循環(huán),每個(gè)字節(jié)與BUFB的所有字節(jié)比擬〔構(gòu)成內(nèi)循環(huán)〕,;以確定是否存在一樣的值。MOVC*,N1*ORSI,SI*ORDI,DIL1:MOVAL,BUFA[SI]PUSHC*MOVC*,N2*ORB*,B*L2:CMPAL,BUFB[B*]JZL3INCB*LOOPL2JMPL4;找到一樣的值后,進(jìn)展值傳送和序號(hào)保存。L3:MOVBUFC[DI],ALMOVD*,SIMOVBUFCA[DI],DLMOVBUFCB[DI],BLINCDIL4:POPC*INCSILOOPL1MOVAH,4CH;返回DOSMOVAL,0INT21HCODEENDSENDSTART4.2習(xí)題1.寫(xiě)出完成以下要求的變量定義語(yǔ)句:〔1〕在變量var1中保存6個(gè)字變量:4512H,4512,-1,100/3,10H,65530;〔2〕在變量var2中保存字符串:’BYTE’,’word’,’WORD’;〔3〕在緩沖區(qū)buf1中留出100個(gè)字節(jié)的存儲(chǔ)空間;〔4〕在緩沖區(qū)buf2中,保存5個(gè)字節(jié)的55H,再保存10個(gè)字節(jié)的240,并將這一過(guò)程重復(fù)7次;〔5〕在變量var3中保存緩沖區(qū)buf1的長(zhǎng)度;〔6〕在變量pointer中保存變量var1和緩沖區(qū)buf1的偏移地址。2.設(shè)變量var1的邏輯地址為0100:0000,畫(huà)出以下語(yǔ)句定義的變量的存儲(chǔ)分配圖:var1DB12,-12,20/6,4DUP〔0,55H〕var2DB‘Assemble’var3DW‘AB’,‘cd’,‘E’var4DWvar2var5DDvar23.指令正誤判斷,對(duì)正確指令寫(xiě)出源和目的操作數(shù)的尋址方式,對(duì)錯(cuò)誤指令指出原因〔設(shè)VAR1,VAR2為字變量,L1為標(biāo)號(hào)〕:〔1〕MOVSI,100〔2〕MOVB*,VAR1[SI]〔3〕MOVA*,[B*]〔4〕MOVAL,[D*]〔5〕MOVBP,AL〔6〕MOVVAR1,VAR2〔7〕MOVCS,A*〔8〕MOVDS,0100H〔9〕MOV[B*][SI],1〔10〕MOVA*,VAR1+VAR2〔11〕ADDA*,LENGTHVAR1〔12〕ORBL,TYPEVAR2〔13〕SUB[DI],78H〔14〕MOVSVAR1,VAR2〔15〕PUSH100H〔16〕POPCS〔17〕*CHGA*,ES〔18〕MOVDS,CS〔19〕JMPL1+5〔20〕DIVA*,10〔21〕SHLBL,2〔22〕MOVAL,15+23〔23〕MULC*〔24〕*CHGCL,[SI]〔25〕ADCCS:[0100],AH〔26〕SBBVAR1-5,1544.說(shuō)明以下指令對(duì)的區(qū)別:〔1〕MOVA*,VAR1與MOVA*,OFFSETVAR1〔2〕MOVA*,VAR2與LEAA*,VAR2〔3〕MOVAL,LENGTHVAR1與MOVAL,SIZEVAR1〔4〕MOVAL,ES:[DI]CMPAL,[SI]與CMPSB〔5〕SHRAL,1與SARAL,1〔6〕SHRAL,1與RORAL,1〔7〕ROLB*,1與RCLB*,15.寫(xiě)出以下轉(zhuǎn)移指令的尋址方式〔設(shè)L1為標(biāo)號(hào),VAR1為字型變量,DVAR1為雙字型變量〕:〔1〕JMPL1〔2〕JMPNEARL1〔3〕JNZL1〔4〕JMPB*〔5〕JGL1〔6〕JMPVAR1[SI]〔7〕JMPFARPTRL1〔8〕JMPDVAR16.設(shè)〔DS〕=2000H,〔B*〕=0100H,〔SI〕=0002H,〔20100〕=3412H,〔20102〕=7856H,〔21200〕=4C2AH,〔21202〕=65B7H,求以下指令執(zhí)行后A*存放器的內(nèi)容:〔1〕MOV

溫馨提示

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

評(píng)論

0/150

提交評(píng)論