微機原理復習題(081109答案)_第1頁
微機原理復習題(081109答案)_第2頁
微機原理復習題(081109答案)_第3頁
微機原理復習題(081109答案)_第4頁
微機原理復習題(081109答案)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、微機原理復習大綱復習范圍:1.作業(yè)2.書上例題3.課堂上反復強調的內容4.復習題微機原理復習題一、單項選擇題1pc機是( c )a、單片機 b、單板機 c、微型計算機 d、微型計算機系統(tǒng)2cpu中運算器的主要功能是( d )a、算術運算 b、邏輯運算c、函數(shù)運算 d、算術運算和邏輯運算38086cpu中的段寄存器用來存放( c )a、存儲段的物理地址 b、存儲器的邏輯地址c、存儲器的段基值 d、存儲器的起始地址48086系統(tǒng)中內存儲器的地址空間為1m,而在進行i/讀寫時,有效的地址線是( b )a、高16位 b、低16位 c、高8位 d、低8位58086cpu在進行寫內存操作時,控制信號m/和

2、dt是( d )a、00 b、0 1 c、 1 0 d、 1 16芯片8288在8086cpu系統(tǒng)中用作( c )a、總線鎖存器 b、總線驅動器 c、總線控制器 d、總線仲裁器7有一靜態(tài)ram芯片的地址線為a0a9,數(shù)據(jù)線為d0d3,則該存儲器芯片的存儲容量為( d )a、2k×4位 b、1kb(b:字節(jié)) c、2kb d、1k×4位8在16位存儲系統(tǒng)中,為了( c ),存儲字最好存放在偶地址。a、便于快速尋址 b、節(jié)省所占的內存空間 c、減少執(zhí)行指令的總線周期 d、減少讀寫錯誤9有一8086系統(tǒng)的中斷向量表,在003ch:003fh單元開始依次存放34h、feh、00h和

3、f0h四個字節(jié),該向量對應的中斷類型碼和中斷服務程序的入口地址分別為( c )a、0eh,34fe:00f0h b、0eh,0f000:0fe34hc、0fh,0f000:0fe34h d、0fh,00f0h:34feh108259a可編程中斷控制器中的中斷服務寄存器isr用于( a )a、記憶正在處理中的中斷 b、存放從外設來的中斷請求信號c、允許向cpu發(fā)中斷請求 d、禁止向cpu發(fā)中斷請求11當8255a 工作在方式1的輸入狀態(tài)時,8255a與外設之間的聯(lián)絡信號為( c )a、ibf、ack  b、obf、ack   c、ibf、stb  

4、; d、obf、stb128253可編程定時/計數(shù)器的計數(shù)范圍是( d )a、0-255 b、1-256 c、0-32768 d、1-6553613可編程定時器計數(shù)器8253的6種工作方式中,既可軟件啟動,又可硬件啟動的是( b )a、方式1,2; b、方式2,3 ; c、方式3,5; d、方式2,514根據(jù)串行通信規(guī)程規(guī)定,收發(fā)雙方的( b )必須保持相同。a、外部時鐘周期; b、波特率因子; c、波特率; d、以上都正確158251a用作異步串行通信接口,如果設定波特率因子為16,而發(fā)送器與接收器時鐘頻率為19200hz,則波特率為( a ) 。a、1200波特; b、2400波特; c、

5、9600波特; d、19200波特16、10進制數(shù)127的補碼為( a )a、10000001 b、10000000 c、00000001 d、1111111117、指令mov bx, databx采用的尋址方式是( d )。a、立即尋址 b、寄存器間接尋址 c、直接尋址 d、寄存器相對間接尋址18、已知al=7eh, dl=8ah, 執(zhí)行cmp al, dl指令后,標志寄存器中c、o、s、z四標志的狀態(tài)分別為( c )。a、0、0、1、0 b、0、1、1、0 c、1、0、1、0 d、1、0、0、019、已知bl=08h, dl=0e2h, 執(zhí)行xor dl, bl指令后,dl寄存器中的數(shù)為(

6、 d )a、132 b、20h c、00h d、0eah20、cpu響應中斷后得到中斷類型碼是9,則從( c )單元取出中斷服務子程序的入口地址a、0009h b、00009h c、00024h d、0024h21 十進制數(shù)66轉換成二進制數(shù)為( d )a. 11000010 b. 01100110 c. 11100110 d. 01000010 22 下列數(shù)中最小的是aa. (101001)2 b. (52)8 c. (2b)16 d. (50)1023 設(101)x(41)16,求x(c)a.6 b. 10 c.8 d. 1224 用16位二進制補碼表示一個帶符號數(shù),其最小數(shù)為(c),如

7、表示一個無符號數(shù),其最小數(shù)為(a)a.0 b.-32767 c.-32768 d. -6553625 一個8位二進制整數(shù),若用補碼表示,由3個“0”和5個“1”組成,則最小值為(c)。a.-120 b. -8 c.-113 d. -1126 8086/8088加電復位后,執(zhí)行的第一條指令的物理地址是(b)。a.0ffffh b. ffff0h c.0000h d. 0240h27 8086在執(zhí)行 mov al, bx指令的總線周期內,若bx存放的內容為2034h,則bhe= ,和a0的狀態(tài)為 d。a.0,1 b. 0,0 c.1,1 d. 1,028 在8086/8088cpu中,一個最基本的

8、總線周期數(shù)由( d)個時鐘周期(t狀態(tài))組成,在t1狀態(tài),cpu往總線上發(fā)送的是(b)信息。 a. 1 b. 2 c. 3 d. 4 a.數(shù)據(jù) b. 地址 c.控制 d. 其他29 8086用于中斷請求輸入的引腳信號是(a)。 a. intr和nmi b. int和nmi c. intr和inta d. inte和inet30 8086cpu響應單個可屏蔽中斷的條件是(d)。a. cpu開中斷b. 外設有中斷請求信號c. 外設中斷請求信號不屏蔽d. 同時滿足上述a,b,c條件,且正在執(zhí)行的指令執(zhí)行完畢。31 不需要訪問內存的尋址方式是 (b)。a. 直接尋址 b. 立即數(shù)尋址 c. 間接尋址

9、d. 變址尋址32 條件轉移指令je next,能轉移到語句標號為next執(zhí)行的條件是(d)。a.zf=0 b. cf=1 c.cf=0 d. zf=133 實現(xiàn)al寄存器中d7和d0都取反的指令是da. and al, 7eh b.or al, 81h c. test al,81h d. xor al,81h二、多項選擇題18086cpu的下列寄存器中,不能用作寄存器間接尋址方式時的地址寄存器的有 ( acd )。a、ax b、bx c、cx d、dx e、si28086有兩種工作模式,即最大模式和最小模式,其中最小模式的特點是( ade )。a、8086提供全部控制信號 b、必須使用總線控

10、制器8288c、必須使用總線收發(fā)器 d、必須使用總線鎖存器e、構成單處理器系統(tǒng)3大部分dmac都擁有( bcd )等傳送方式。a、直接傳送方式 b、單字節(jié)傳送方式c、查詢傳送方式 d、成組傳送方式e、中斷傳送方式4要對可編程接口芯片進行讀操作時,必須滿足( ab )a、cs=l b、rd=l,wr=h c、wr=l,rd=hd、rd=l wr=l e、rd=h,wr=h5 將累加器清零的正確指令是abca.and ax, 00h b. xor ax, ax c. sbb ax,ax d. cmp ax,ax三、判斷題1在8086最小方式的總線讀時序圖中,在t2時鐘周期時,ad0-adl5,總線

11、上有一個高阻態(tài)。( )2對于可屏蔽中斷的嵌套處理原則是允許優(yōu)先級高的中斷打斷優(yōu)先級低的中斷,允許同級中斷相互打斷,而不允許優(yōu)先級低的中斷打斷優(yōu)先級高的中斷。( × )38086cpu在收到外部中斷請求信號以后,進人中斷響應周期,通過in指令讀取中斷類型號,從而就可獲得中斷服務程序入口地址。( × )4可編程定時器計數(shù)器,其定時與計數(shù)功能可由程序靈活地設定,但由于是由軟件控制,在計數(shù)過程中必然會占用cpu的時間。( × )5.指令一般包括兩部分:操作碼和操作數(shù)。( )6.一個總線周期有一個或若干個指令周期組成。( × )7. 8086有一個16位標志寄存器

12、,它包含了6個狀態(tài)標志位和3個控制標志位。( )8 .一片8259a中斷控制器最多能接收8個中斷源。( )9 8086cpu的邏輯段允許段的重疊和交叉。( )10 8086cpu的標志寄存器fr是16位的,每一位都有定義。(× )11 在8086的主存中,一個字節(jié)占用一個存儲單元,一個字占用兩個相鄰的單元,字的高8位放在高地址單元,低8位放在低地址單元。( )12 8086cpu的ad0ad15在執(zhí)行指令時,先傳數(shù)據(jù),后傳地址。(× )四、填空題1 (640)10=( 10 1000 0000 )2=( 280 )162 .每片8253包含有 3 個獨立的16位計數(shù)通道,每

13、個通道具有 6 種工作方式。3 .取指令時,8086會自動選擇 cs 值作為段基值,再加上由 ip 提供的偏移量形成物理地址。4 .808 6/8088微處理器被設計為兩個獨立的功能部件: eu _和 biu _。5 .tel 8086的當前cs=2000h,ip=5678h,則將執(zhí)行20位物理地址 25678h 處的程序。6 .8086存儲器組織中,邏輯地址由十六進制4位構成的,物理地址又由十六進制 5 位構成。7 . 一片8259a可管理_ 8 _級中斷,若級聯(lián)三片從片則可以管理 29 級中斷。8、若ds=1200h,則當前數(shù)據(jù)段的起始地址是 12000h ,末地址是 21fffh 。9.

14、系統(tǒng)中數(shù)據(jù)傳送的控制方式中程序控制的數(shù)據(jù)傳送又分為 條件查詢 和 無條件查詢 。10.“串行通信”是指數(shù)據(jù) 一位一位依次傳送 。在串行通信中有兩種基本的通信方式:即 同步 和 異步 。11.主機和i/o設備間的數(shù)據(jù)傳送有 程控 、 中斷 和 dma, iop 三四種方式,其中 dma 和iop 傳送過程中cpu無需參與,而是由 dmac 和 iop 控制完成。12 38.8086系統(tǒng)中,要求各個邏輯段必須從節(jié)的整數(shù)倍邊界開始,即段首地址的低4位總是 0 。將段首地址的高16位地址碼稱作 段基址 ,存放在相應的 段寄存器 中。13 .由邏輯地址獲得物理地址的計算公式為 段基址*16+偏移地址 。

15、14 .80x86系統(tǒng)中,堆棧是遵循 后進先出 原則。15.在8086最小模式的典型配置中,需 2 片雙向總線收發(fā)器8286,因為 8286數(shù)據(jù)線為8位,而 8086數(shù)據(jù)總線為16位 。16.8086/8088系統(tǒng)中i/o端口地址是二進制數(shù) 16 位的,可尋址 64k 個端口。每個端口中含 8 位的數(shù)據(jù)。17.8086/8088的i/o指令中若采用直接尋址,要求端口地址必須在 0-255 范圍之內;若采用間接尋址,則端口地址在 0-65535 范圍之內。18 位二進制補碼所能表示的十進制數(shù)的范圍為127128,前者的補碼為( 01111111 ),后者的補碼為( 10000000 ) 。19

16、已知段基址和偏移地址分別為2015h和0028h,此存儲單元的物理地址是(20178h)。20 若8086的引腳mn/mx接+5v,則當執(zhí)行out指令時,其引腳信號m/io= 0 , rd= 1 , wr= 0 (填寫高、低電平)。21 8086工作于最小模式下,cpu完成存儲器讀操作時,信號m/io= 1 ,rd= 0 , wr= 1 和dt/r= 0 。若進行字節(jié)操作,單元地址為奇地址,則 bhe= 0 ,和a0= 1 。若進行字操作且該字地址為偶地址,則bhe= 0 ,和a0= 0 。22 寫出一條指令完成下述功能:1) 將ah的最高3位清零,其他位不變: and ah,1fh ; 2)

17、 將ah的低4位置1,其他位不變: or ah,0fh ;3) 將ah的最低位取反,其他為不變: xor ah,01h 23 宏匯編語言程序被匯編時, 指令 語句產(chǎn)生代碼指令, 偽指令 語句不產(chǎn)生代碼指令,宏指令 語句可能產(chǎn)生也可能不產(chǎn)生代碼指令。24 調用程序、子程序傳送參數(shù)的方法通常有 堆棧 、 寄存器 和 內存空間 三種方法。25 偽指令equ、db、dw、macro的標號名字域必須有名字或標號的偽指令為 equ,macro 。26 乘法指令mul的指令格式只有一個源操作數(shù),若源操作數(shù)的類型屬性為字節(jié),則目的操作數(shù)在 ax 中,若源操作數(shù)的類型屬性為字,則目的操作數(shù)在 dx,ax 中。2

18、7 請給出標志寄存器中標志位of、if、sf、zf、pf、cf的說明: of 溢出 、if 中斷 、sf 符號 、zf 零 、pf 奇偶 、cf 進位 。28、指令xlat通常用于查表操作,在使用該指令前,應把表首的偏移首地址送入 bx ,待轉換的代碼在表中的序號送 al 。29 若要求不產(chǎn)生匯編錯誤,則字符串'abc'只能出現(xiàn)在偽指令 db 中。30 為下述情況各舉一例。寄存器與存儲單元內容相加送寄存器 add ax,1000h 。寄存器互送 mov ax,bx 。將標志寄存器進棧 pushf 。立即數(shù)與寄存器內容相加送寄存器 add ah,01h 。將48h、5ah存入字節(jié)

19、數(shù)據(jù)區(qū)arrayb arrayb db 48h,5ah 。五、簡答題1在io接口電路中,按主機與外設間傳送的信息類型,端口可分為哪幾類?cpu對這些端口實行讀操作還是寫操作?答:i/o端口分為:數(shù)據(jù)口,狀態(tài)口,控制口。cpu可對數(shù)據(jù)口進行讀或寫操作,對狀態(tài)口進行讀操作、對控制口進行寫操作2與并行通信相比較,串行通信有什么特點?(1)串行通信適宜于遠程數(shù)據(jù)傳送;(2)串行通信通常傳送速度較慢;(3)串行通信的費用較低,傳輸線少,可借用電話網(wǎng)絡來實現(xiàn)遠程通信3.8086/8088cpu響應任何一種中斷時,都會自動的將if 和tf 標志清零,其目的是什么?答:將if 標志清零的目的是在本次執(zhí)行中斷服

20、務程序的過程期間,不要再響應其他的可屏蔽中斷;將tf 標志清零的目的是不要單步執(zhí)行中斷服務程序。4.cpu 響應多種中斷時,都要自動地保護斷點,為什么?答:“保護斷點”是指主程序中當前被中斷的指令的下一條指令所存放的存儲單元的邏輯地址,(稱為斷口地址,或斷點地址,簡稱斷點)包括段值和段內偏移量兩部分(既cs 和ip 中的內容)作為返回地址被自動地壓人堆棧中保護起來。這樣做的目的是使中斷服務程序運行結束時,使程序能返回到主程序的斷點處去繼續(xù)執(zhí)行。5 .當某一中斷發(fā)生時,cpu 如何能找到相應的中斷向量?答:當某一中斷發(fā)生時,cpu 只有在中斷向量表中找準找到相應的中斷向量,即相應的中斷服務程序的

21、人口地址,才能去執(zhí)行相應的中斷服務程序。若能找準存放該中斷向量的4 個存儲單元的地址,就意味著找到了該中斷向量。若把存放每個中斷向量的4 個單元的第一個單元的地址叫做向量地址,由于中斷向量是按中斷類型碼n從0 255的順序存放的,故向量地址與中斷類型碼有如下關系:向量地址=0000:n×4 。 如:0 號中斷的向量地址為0000:0000,表示0 號中斷的中斷向量存于地址為0000:0000開始的4 個單元中,1 號中斷的向量地址為0000:0004h ,表示1 號中斷的中斷向量存于地址為以0000:0004h 開始的4 個單元之中,等等。因此,任何一個中斷的到來,cpu 只要能得到

22、它的中斷類型號,就能找到它的中斷向量。把它的偏移量傳送入ip ,段值送入cs ,即能執(zhí)行相應的中斷服務程序。6.分別指出下列指令中源操作數(shù)的尋址方式:(5分) a.mov si,100 立即尋址 b.mov cx,datasi 寄存器相對尋址 c.mov si,ax 寄存器尋址 d.add ax,bxdi 基址加變址尋址 e.pophf 寄存器尋址7.什么是中斷?什么是中斷向量?什么是中斷向量表?int24在中斷向量表的什么位置?一個完整的中斷過程有哪幾個步驟?答:中斷是指cpu在正常運行時,由于內部、外部事件或由程序的預先安排引起的cpu中斷正在運行的程序,轉而到內部、外部事件預先安排的 服

23、務程序(中斷子程序)中去執(zhí)行。 中斷向量是中斷處理子程序的入口地址,每個中斷類型對應一個中斷向量。中斷向量表是中斷類型碼和與此類型碼相應的中斷服務程序之間的一個連接鏈。每一個中斷服務程序入口地址的ip和cs成為一個中斷指示字或中斷向量。 24*4=96=60h int24在中斷向量表的0000:0060h0000:0063h處。一個完整的中斷過程包括中斷請求、中斷排隊、中斷響應、中斷處理和中斷返回五個步驟。8.簡述8086cpu由哪些寄存器組成。答: 4個16位的通用寄存器: ax累加器、bx基址寄存器、cx計數(shù)器、dx數(shù)據(jù)寄存器; 4個16位的專用寄存器: sp堆棧指針寄存器、bp 基址指針

24、寄存器、si源變址寄存器、di目的變址寄存器;一個標志寄存器fr;4個16位的段地址寄存器:cs代碼段寄存器、ds數(shù)據(jù)段寄存器、ss堆棧段寄存器、es擴展段寄存器;一個16位的指令指針寄存器 ip9.簡述8086/8088系統(tǒng)中為什么要使用地址鎖存器?答:為獲取并保持地址信息,系統(tǒng)中要使用地址鎖存器。因為8086/8088系統(tǒng)中低16位地址線與數(shù)據(jù)線分時復用,高4位地址線與狀態(tài)線分時復用,在每個總線周期的t1狀態(tài)期間,cpu通過20位地址線向外發(fā)送地址,然后在t2、t3、t4狀態(tài)時傳送數(shù)據(jù)或狀態(tài)信息,而在一個完整的總線周期(t1t4)內,被訪問的存儲器或i/o端口始終需要完整的地址信息,這就要

25、求在t1狀態(tài)時地址有效期間由地址鎖存器將地址信號鎖存并保持,以供被訪問的存儲器或i/o端口在整個總線周期內使用。10.已知sdram6264的片容量是8k×8位,問它的外部引腳中含多少根地址線和數(shù)據(jù)線?答:從該芯片的容量可知,其內部含有8192個(8*1024)存儲單元,每個單元能存放一個字節(jié)數(shù)據(jù),因為13根地址線才能對8192個存儲單元尋址(213=8192),所以它有13根地址線,8位數(shù)據(jù)線。因為在讀寫每一個存儲單元的8位二進制數(shù)時需要8位數(shù)據(jù)線。六、簡單分析、設計題1、閱讀如下程序段,回答提出的問題。mov ax,3456xchg ax,bxmov ax,3456sub ax,

26、bxje done kk:add ax,bx. done:該程序段執(zhí)行完je done語句后,ax= 0 ,zf= 1 ,ip= done 。2 請在程序段的每一空框內填入一語句(不得修改其它語句),以實現(xiàn)下述功能:將字變量varm1中的非零數(shù)據(jù)左移到最高位為“1”止,左移次數(shù)存入字節(jié)變量varb中,左移后的結果存入字變量varw中。 mov bl,0 mov ax,varw1 add ax,0 js done goon:inc bl add ax,ax jns goon done: mov varw,ax mov varr,bl 3 為什么說8088cpu為準16為微處理器,而8086cpu

27、為16為微處理器?答:8088cpu的內部寄存器均為16位,可一次完成16位二進制的算術及邏輯運算,但外部數(shù)據(jù)總線為8位。而8086則內部寄存器及外部數(shù)據(jù)總線均為16位,可一次完成16位二進制的算術及邏輯運算。4 已知,(ds) = 0120h , ( ss ) = 2000h , ( es) = 0ff2h , ( bx ) = 1000h , ( bp ) = 2000h ,( si = 3110h , ( sp ) = 1004h ,試寫出下面每條指令中存儲器操作數(shù)的物理地址。(1) mov al,bx+si+9000h ds*16+bx+si+9000h 1e310h(2) mov b

28、x, bp-18ss*16+bp-18 21feeh(3) add ss:bx+si-3,alss*16+bx+si-3 2410dh(4) sub si+bp, cxss*16+si+bp 25110h(5) pushfss*16+sp-2 21002h堆棧指針寄存器sp的初值位1000h,ax2000h,bx3000h,試問:(1) 執(zhí)行指令push ax 后,sp0ffeh (2) 再執(zhí)行指令 push bx和pop ax后,sp 0ffeh ,ax3000h ,bx 3000h 。5 程序段執(zhí)行完后,ax,bx,cx,dx寄存器的內容分別是什么?start: mov ax, 01h m

29、ov bx, 02h mov cx, 03hmov dx,04hnext: inc axadd bx,axshr dx,1loop nextax= 4 bx= 08h cx= 0 dx= 0 .6 判斷下面8086匯編程序執(zhí)行結果:mov ax,0fffdhmov bx,8000hadd ax,bxhlt執(zhí)行結果ax= 7ff0h bx= 8000h 對應標志位zf= 0 sf= 0 of= 1 cf= 1 pf= 0 af= 0 7.下面程序段執(zhí)行完以后,bx的內容是什么? mov bx,00ffh and bx,0fffh or bx,0f0fh xor bx,00ffh 答: bx=0f

30、00h8 下列程序段完成什么工作? dat1 db 30 dup(?) dat2 db 10 dup(?) mov cx,10 mov bx,20 mov si,0 mov di,0 next:mov al,dat1bxsi mov dat2di,al inc si inc di loop next 答:把dat1+20存儲單元開始的10個字節(jié)搬到dat2開始的連續(xù)10個存儲單元中。9 . 設8086系統(tǒng)中,中斷請求信號采用邊沿觸發(fā)方式,單片8259a,中斷類型碼高5位為01010,中斷源接在ir2上,普通全嵌套方式,非自動結束方式,緩沖方式。(設:icw1口地址為80,icw2、icw3、i

31、cw4口地址為81)編寫初始化程序。mov al,13hout 80h,al icw1mov al,52hout 81h,al icw2mov al,09hout 81h,al icw410 .已知(ax ) = 0120h , ( bx ) = 2000h , ( cx ) = 0ff2h , ( ds ) = 1000h , ( es ) = 2000h ,存儲器中的數(shù)據(jù)如圖所示。請寫出下列指令單獨執(zhí)行時,對寄存器和存儲器內容將產(chǎn)生什么影響?( 1 ) mov ax ,bx ( 5 ) lds di , l000h ( 2 ) mov ax , es : bx ( 6 ) les si ,

32、 0ffeh ( 3 ) mov bx ,cx ( 7 ) xchg ax , bx ( 4 ) lea cx , bx ( 8 ) xlat 答:該題實際上要求回答8 條指令分別執(zhí)行時的結果。( l ) mov ax , bx 源操作數(shù)的物理地址為: 10000h 十2000h = 12000h 執(zhí)行結果 ( ax ) = 12000h 9745h ( 2 ) mov ax , es :bx es : bx 為段超越情況,源操作數(shù)物理地址為: 20000h +2000h = 22000h 執(zhí)行結果: ( ax ) = 22000h = 4433h ( 3 ) mov bx , cx 目的操作

33、數(shù)的物理地址為:10000h +2000h = 12000h 故12001h0fh , 12000h 0f2h 原來的內容不再是97h 及45h 了。( 4 ) lea cx , bx 源操作數(shù)的有效地址為bx 故 ( cx ) = ( bx ) = 2000h ( 5 ) lds di , 1000h源操作數(shù)的物理地址是l0000h + l000h = 11000h ,故( ds )= 1 l002hl000h ( di)=11000h25l0h ( 6 ) les si ,0ffeh 源操作數(shù)的物理地址為l0000h + 0ffeh = l0ffeh ,故( es )11000h=2510

34、h ( si )l0ffeh=0f45h( 7 ) xchg ax , bx . 執(zhí)行前(ax ) = 0l20h , ( bx ) = 2000h 執(zhí)行后(ax ) = 2000h , ( bx ) = 0120h ( 8 ) xlat ; ( al ) =bx + al 2000h + 0020h=2020h 有效地址ea=2020h 時,物理地址為12020h ,故執(zhí)行xlat 指令后,( al )=56h 。11. 寫出四條指令,分別能將ax寄存器清零。答: mov ax,0 and ax,0 sub ax,ax xor ax,ax12 下列指令是否有錯?有則指出錯誤所在:(1)mov

35、 ds,117ch 錯,立即數(shù)不能直接送段寄存器(2)mov bx,28a0h 錯,雙操作數(shù)指令的兩個操作數(shù)不能同時在內存中(3)mov cs,ax 錯,不能用指令直接往cs寄存器中傳送數(shù)據(jù)(4)mov ds,es 錯,兩個段寄存器之間不能傳送數(shù)據(jù)(5)mov al,dx 錯,類型不匹配,寄存器長度不同(6)mov ax,1000bx 對(7)mov bx,ax 錯,ax寄存器不能用于間接尋址(8)mov al,c8h 錯,以字母開頭的十六進制數(shù)前面要加前導0(9)mov ax,00f1 錯,十六進制數(shù)應加上后綴0(10)mov ax,si-10 對七、綜合分析、設計題1 址為datab開始的

36、80個單元中,存放某班80個學生的某課程成績,要求: 統(tǒng)計>=90分、8089分、7079分、6069分、60分以下的人數(shù),結果存放在btrx開始的5個單元中求平均成績,結果存放在level中。解:寄存器使用分配:90分以上在dh,80分以上在dl,70分以上在bh,60分以上在bl,60分以下在ah,總分、均分都在di。dat segmentcontdb 10 data db 30,65,99,80,75, 89,100,45,60,70 buffer db ?,?,?,?,? leveldb ? ,?dat endsxorah,ahxordx,dx;統(tǒng)計結果清零xorbx,bx ;統(tǒng)

37、計結果清零leasi,dataleadi,levelmovcl,cont; 總人數(shù)送循環(huán)計數(shù)器 cxgoon:moval,si ;讀原始數(shù)據(jù)adcdi, al;累加總分 adc di+1,0;計算進位 cmpal,90 jl pp8 ; 不高于90分者轉pp8 inc dh ; 90-100分的人數(shù)加一 jmpstorpp8:cmpal,80jl pp7;不高于80分轉pp7inc dl;80-89分的人數(shù)加一jmpstorpp7:cmp al,70jlpp6;不高于70分者轉pp6inc bh;70-79分的人數(shù)加一jmpstorpp6:cmpal,60jlpp5;不高于60分者轉pp5in

38、c bl;60-69分的人數(shù)加一jmpstorpp5:inc ah;低于60分的人數(shù)加一stor: inc si;讀下一個分數(shù)loopgoon;cx=cx-1,cx不為零轉goon,繼續(xù)統(tǒng)計leasi,buffer;回存統(tǒng)計結果movsi,dhinc simovsi,dlinc simovsi,bhinc simovsi,blinc simovsi,ahmovax,word ptr di;計算平均成績movcl,contdiv clmovlevel,al;回存平均成績hlt2 在bvff單元中有一個bcd數(shù)a,試根據(jù)下列關系編寫程序,計算結果存在des中。a<20, y=a+20;a&l

39、t;60, y=a-20;a>=60, y=a.dat segmentbvffdb 8des db ?dat endsmoval,bvffcmpal,20jlex1cmpal,60jlex2moval,80 (cmp al, 80)jmpstopex1:movbl,3mulbl (add al, 20)jmpstopex2:sub al,20stop:movdes, alhlt3 在data之下存放100個無符號的8位數(shù),找出其最大者并將其存放在kvff單元。dat segmentbuffer db ;自行定義100個數(shù)據(jù)kvff db ?dat endsxordl,dlleadi,kv

40、ff;next0:leasi,buffer;movcl,99;比較次數(shù)為n-1次next1:moval,si;incsi;cmpdl,al; jnc next2;movdl,al;dl中始終存目前最大值next2:deccl;jnz next1; movdi,dl; 最大值存儲hlt4 編寫10個字(16位二進制數(shù))之和的程序解:add1為被加數(shù),add2為加數(shù),sum為和,cont為循環(huán)次數(shù)leasi, add1;leadi, add2;leabx, sum;movcl, cont;movch,0; 循環(huán)初始化clc;進位清零madd1:movax,si;讀加數(shù)1adcax,diaddsi,

41、2;移動源區(qū)地址指針adddi,2;移動目的區(qū)地址指針movbx,ax;回存計算結果addbx,2;移動“和”存儲區(qū)地址指針loopmadd1;循環(huán)控制hlt;暫停5在某一系統(tǒng)中,有8 個開關k7k0,要求不斷檢測它們的通斷狀態(tài),并通過發(fā)光二極管led7led0 顯示出來。開關斷開,相應的led 點亮;開關合上,led 熄滅。選用8086 cpu , 8255a 和74ls138 譯碼器等芯片,構成應用電路。如下圖所示,8255a 的pa 口作輸人口,8個開關k7k0分別接pa7pa0。pb口為輸出口,pb7pb0分別連接顯示器led7led0。試進行編程設置。答:程序段如下: mov al

42、,90h ;方式選擇控制字 out 0f3h ,al ;寫人控制字set : in al , 0f0h ;從pa 口讀開關狀態(tài) out 0f1h, al ; pb 口控制比led,指示開關狀態(tài) jmp set ;循環(huán)檢測6. (1)某系統(tǒng)中,8253 的端口地址為0b4h0b7h ,令計數(shù)器通道1 工作在方式0,僅用8 位二進制數(shù)計數(shù),計數(shù)初值為100 ,試進行初始化編程。答:初始化程序段如下: mov al , 50h out 0b7h , al ;置控制字 mov al ,64h out 0b5h ,al ;置計數(shù)初值。 (2)某片8253 的計數(shù)器通道2 工作在方式1 ,按bcd 碼計數(shù)

43、,計數(shù)值為5000h,該端口地址為0b4h0b7h,請初始化編程。答:初始化程序段如下:mov al , 0b3h out ob7h , al ;置控制字mov al , 00h out ob6h , al ;置計數(shù)初值低8位。mov al , 50h out ob6h , al ;置計數(shù)初值高8位。7 .對8255a進行初始化,要求a口為輸出工作方式0;b口輸入工作方式1;c口高四位輸入,低四位輸出。(地址04a0h0a406h)mov al,8eh ;工作方式控制字out 04 a3 h,al ;控制字送控制口8 .求兩個多字節(jié)數(shù)之和。這兩個數(shù)在21000h地址開始的內存單元中,連續(xù)存放,

44、低位在小地址一端,結果放在這兩個數(shù)之后。設這兩個多字節(jié)數(shù)均為八個字節(jié)長。試畫出程序流程圖并編寫相應程序。name dzj-jafadata segmentd1 db 16 dup (?)s1 db 8dup(?)data endsstac segmentsta db 50 dup(?)stac endscode segment assume cs:code,ds:date,stac:staorg 1000hstart: mov ax,2000h mov ds,ax ;數(shù)據(jù)段段基地址送ds mov si,1000h ;第一個數(shù)指針送si mov di,1008h ;第二個數(shù)指針送di mov b

45、x,1010h ;結果指針送bx mov cx,4 ;循環(huán)次數(shù)送cx clc ;cf=0 清零 aa: mov ax,si ;取一個字到ax adc ax,di ;ax+di 送 ax mov bx,ax ;結果存入bx pushf ;保護進位位 add si,2 add di,2 add bx,2 popf loop aacode ends end start9 .用可編程并行接口芯片8255a作為打印機接口。其中端口a工作于方式一,用于向打印機輸出打印數(shù)據(jù),端口c用作狀態(tài)口和控制口。編寫程序,打印存儲區(qū)為1200h1400h內所有字符的程序。設8255a的口地址分別為端口a:0fff0h,

46、端口b:0ffflh 端口c:offf2h,控制口:0fff3h。org 5000h ;把程序定位在5000h mov dx,offf3h ;8255a控制端口地址 mov al,0a8h ;端口a方式1,輸出,pc4輸入 out dx,al ;控制字送控制端口 mov cx,200h ;要打印字符的個數(shù) mov di,1200h ;存儲區(qū)起始地址cc: mov al,di ;數(shù)據(jù)段偏移地址送al mov dx,0fff0h out dx,al ;字符輸出 mov dx,0fff2h ;讀打印機當前狀態(tài)aa:in al,dx ;讀打印機狀態(tài) and al,10h ;測試busy信號(pc4) jnz aa ;忙等待 inc di ;指向下一個字符 loop cc hlt10 .某8086系統(tǒng)中使用8237a完成從存儲器到存儲器的數(shù)據(jù)傳送,已知源數(shù)據(jù)塊首地址的偏移地址值為1000h,目標數(shù)據(jù)塊首地址的偏移地址為1050h,數(shù)據(jù)塊長度為100字節(jié),請編寫初始化程序??煞譃?步來作:a) 寫工作方式控制字mov dx,工作方式寄存器端口mov al,41h ;工作方式控制字out dx,alb) 寫操作方式控制字mov dx,命令寄存器端口

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論