(微機原理及應(yīng)用)編程題試題集_第1頁
(微機原理及應(yīng)用)編程題試題集_第2頁
(微機原理及應(yīng)用)編程題試題集_第3頁
(微機原理及應(yīng)用)編程題試題集_第4頁
(微機原理及應(yīng)用)編程題試題集_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、重慶科技學(xué)院試卷庫系統(tǒng)試卷庫導(dǎo)出試卷微機原理及應(yīng)用-編程題(43題)題序:0017 題型:06 難度:01 分值:10.0章號:03 節(jié)號:02知識點:。8086/8088指令系統(tǒng)題干:變量datax和datay定義如下:    datax   dw   0148h            dw   2316h     datay  dw   0237h

2、60;           dw   4052h試編寫一個程序段,實現(xiàn)將datax和datay兩個字數(shù)據(jù)相乘(用mul)。答案: 解:   (1)   mov      ax, dataxmul       dataymov      datay,axmov  

3、;    datay+2,dx題序:0018 題型:06 難度:02 分值:10.0章號:03 節(jié)號:02知識點:。8086/8088指令系統(tǒng)題干:變量datax和datay定義如下:    datax   dw   0148h            dw   2316h     datay  dw   0237h &

4、#160;          dw   4052h試編寫一個程序段,實現(xiàn)將datax除以23(用div)。答案: 解:   (1)   mov      ax, datax       mov      bl, 23div     

5、0;  blmov      bl,ahmov      ah, 0mov      datay, ax            。存放商mov      al,blmov      datay+2, dx  &

6、#160;    。存放余數(shù)題序:0002 題型:06 難度:03 分值:10.0章號:03 節(jié)號:02知識點:。8086/8088指令系統(tǒng)題干:試編寫一個程序段,實現(xiàn)將bx中的數(shù)除以10,結(jié)果仍放在bx中。 答案: 解:       mov cl,0ah                 mov ax,bx 

7、                div  cl                 mov bx,ax題序:0016 題型:06 難度:03 分值:10.0章號:03 節(jié)號:02知識點:。8086/8088指令系統(tǒng)題干:變量datax和datay定義如下:  &#

8、160; datax   dw   0148h                    dw   2316h     datay  dw   0237h             &#

9、160;      dw   4052h試編寫一個程序段,實現(xiàn)將datax和datay中的兩個雙字數(shù)據(jù)相加, 和存放在datay和答案: 解:   (1)   mov      ax, dataxadd       ax, dataymov      bx, datax+2add    &

10、#160;  bx, datay+2mov      datay, axmov      datay+2, bx題序:0020 題型:06 難度:03 分值:10.0章號:03 節(jié)號:02知識點:。8086/8088指令系統(tǒng)題干:變量n1和n2均為2字節(jié)的非壓縮bcd數(shù)碼,請寫出計算n1與n2之差的指令序列。答案: 解:  mov      ax, 0mov    &

11、#160; al, n1+1sub al, n2+1aasmov      dl, almov      al, n1sbb al, n2aasmov      dh, al題序:0006 題型:06 難度:02 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫程序?qū)崿F(xiàn)對兩個存儲區(qū)中的字進行比較。如找到一對不同的字,則退出,此時 ,zf為0,di 指向此字;如兩個存儲區(qū)中所有的字都相同,則退出程序時,cx中值為0,zf為

12、1。答案: 解:  matt:   mov     si, offset source     。 源區(qū)首址        mov     di, offset target     。 目的區(qū)首址        mov  

13、60;  cx, number        jcxz    exit                  。 如cx為0,則結(jié)束        push    cx    

14、0;               。 保存有關(guān)寄存器        push    si         push    di         cld 

15、0;                         。 清方向標(biāo)志        repe    cmpsw        jz     

16、 match                 。 比較        pushf                        

17、。 zf為1,則轉(zhuǎn)移        sub     di, 2                 。 zf為0,則di指向次字        popf        jmp 

18、0;   exit                  。 推出match:  pop     di                    。 恢復(fù)寄存器 

19、60;      pop     si        pop     cxexit:   ret題序:0015 題型:06 難度:02 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:根據(jù)下列要求編寫一個匯編語言程序::(1)代碼段的段名為cod_sg(2)數(shù)據(jù)段的段名為dat_sg(3)堆棧段的段名為stk_sg(4)變量high_dat所包含的數(shù)據(jù)為9

20、5(5)將變量high_dat裝入寄存器ah,bh和dl(6)程序運行的入口地址為start答案: 解:  dat_sg        segemnt       high_dat     db   95dat_sg        ends。stk_sg       

21、segment        dw       64 dup(?)stk_sg        ends。cod_sg       segmentmain            proc     farassum

22、e cs: cod_sg, ds: dat_sg, ss: stk_sgstart:   mov      ax, dat-sg              mov      ds, ax              mov

23、      ah, high_dat              mov      bh, ahmov      dl, ahmov      ah, 4chint        21hmain

24、0;    endpcod_sg ends                 end     start題序:0026 題型:06 難度:02 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:已知整數(shù)變量a和b,試編寫完成下述操作的程序:(1)若兩個數(shù)中有一個是奇數(shù),則將該奇數(shù)存入a中,偶數(shù)存入b中;(2)若兩個數(shù)均為奇數(shù),則兩數(shù)分別加1,并存回原

25、變量;(3)若兩個數(shù)均為偶數(shù),則兩變量不變。答案: 解:  dseg segment       a      dw   ?       b     dw   ?dseg endscseg        segmentmain  

26、     proc   farassume    cs:cseg,ds:dsegstart:       push       ds              sub         ax,

27、ax              push       ax              mov        ax,dseg       &#

28、160;      mov        ds,axbegin:      mov        ax,a              mov        bx

29、,b              xor         ax,bx              test         ax,0001    

30、;          jz            class              test         bx,0001     &

31、#160;        jz            exit              xchg       bx,a         &

32、#160;    mov        b,bx              jmp         exitclass:      test         b

33、x,0001              jz            exit              inc          b

34、0;             inc          aexit: retmain       endpcseg        ends          &

35、#160;   end         start題序:0001 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:在ds段中有一個從table開始的由160個字符組成的鏈表,設(shè)計一個程序,實現(xiàn)對此表進行搜索,找到第一個非0元素后,將此單元和下一單元清0。答案: 解:       mov   cx, seg table    

36、;      mov   ds, cx           。將段地址送ds          mov   si, offset table 。表偏移量送si          mov   cx, 160

37、60;         。字節(jié)數(shù)          xor  al, al   next:  cmp   al, si          jne   exit1       

38、60;  inc   si          loop  next   exit1: mov   si, al          inc   si          mov   si, al題序:0004 題型

39、:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:用循環(huán)控制指令設(shè)計程序段,從60h 個元素中尋找一個最大值,結(jié)果放在al中。答案: 解:          mov  si, offset data1 。 將數(shù)據(jù)起始地址送si         mov  cx, 5fh       

40、0;  。 有60h-1次循環(huán)         mov  al, si         。 將第一個元素放al中compare: inc  si         cmp  al, si         jl   xchm

41、ax         jmp  next xchmax:  mov  al, sinext:    loop compare題序:0007 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫程序?qū)崿F(xiàn)在table 為起始地址的100個字符長度的表中檢索“$"字符。答案: 解:  start:  mov     c

42、x, seg table        。 表段地址送es        mov     es, cx         mov     di, offset table     。 表偏移量送di     &#

43、160;  mov     al, '$'              。 檢索的關(guān)鍵字        mov     cx, 64h              。

44、檢索的字節(jié)數(shù)        push    di                       。 保存起始地址        cld       &#

45、160;                           清除方向標(biāo)志        repne   scasb            

46、    。 檢索        jnz     nfoun                。 如未找到,則轉(zhuǎn)移        sub     di, 1    

47、                  找到,則指向字符        jmp     exitnfoun:  pop     di            

48、0;      。 恢復(fù)起始地址exit:   ret            題序:0009 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫程序?qū)崿F(xiàn)兩個16位非組合bcd碼的數(shù)相加。答案: 解:  anbcd:  mov  ch, ah 。 進入程序段時,ax中為第二個操作數(shù)  

49、0;     add  al, bl 。 bx中為被加數(shù),實現(xiàn)低8位相乘        aaa         xchg al, ch        adc  al, bh 。 實現(xiàn)高8位相加        aaa   

50、      mov  ah, al 。 和保存在ax中        mov  al, ch        ret題序:0010 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫程序段設(shè)計一個實現(xiàn)16位非組合bcd碼減法的程序。答案: 解:  subcd:  mov  ch, ah

51、0; 。 ax-bx->ax,為非組合bcd碼                  sub  al, bl                  aas        &

52、#160;         xchg al,ch                  sbb  al,bh                  aas  

53、                mov  ah,al                  mov  al,ch            

54、0;     ret題序:0011 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫程序?qū)崿F(xiàn)兩個16位組合bcd碼相減,進入程序時,bx中為減數(shù),ax中為被減數(shù),程序執(zhí)行后,結(jié)果在ax中。答案: 解:  stasub: mov  ch, ah 。 保存高8位        sub  al, bl 。 低8位相減      

55、60; das         。 十進制調(diào)整        xchg al, ch        sbb  al, bh 。 高8位相減        das         mov  ah, al 。 結(jié)果

56、在ax中         mov  al, ch        ret題序:0012 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫程序?qū)崿F(xiàn)兩個16位組合bcd碼相加。進入程序時,bx中為加數(shù),ax中為被加數(shù),程序執(zhí)行后,結(jié)果在ax中。答案: 解:  staadd: mov  ch, ah  。 ax+bx->ax,為組合bcd碼

57、                add  al,bl                daa                xchg al,c

58、h                adc  al,bh                daa                mov 

59、; ah,al                mov  al,ch                ret題序:0013 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫程序?qū)⒁粋€8位二進轉(zhuǎn)換為2位bcd數(shù)字,進入程序時,al中為二進制數(shù),退

60、出程序時,如cf為0,則al中為bcd數(shù)字,如cf為1,則表示由于輸入值超出范圍故結(jié)果無效。答案: 解:  start:  cmp  al, 99 。 是否超出范圍?            jbe  strat            stc      

61、0;  。 是,則轉(zhuǎn)exit,并給cf置1            jc   exitstrat:  mov  cl, 10 。 10作為除數(shù)        xor  ah, ah        cbw       

62、60; 。 將al中數(shù)擴展到ah        div  cl     。 除法結(jié)果al中為高位,ah中為低位        mov  cl, 4        shl  al, cl 。 左移4位        or   al,

63、 ah 。 合成bcd碼在al中exit:   ret  題序:0014 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫程序用xlat指令將小于16的二進制數(shù)轉(zhuǎn)換成ascii表示的16進制數(shù)。答案: 解:  start:  jmp  binascascii   db   '0123456789abcdef'binasc: push bx     &#

64、160;  and  al, 0fh  。 清除al中高4位        lea  bx,ascii 。 bx指向ascii表        xlat          。 轉(zhuǎn)換為ascii碼        pop  bx  &

65、#160;     ret題序:0030 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫完整的8086匯編程序:將字符緩沖區(qū)a的字符'1234567890'倒序存放到緩沖區(qū)b中。答案: 解:  dseg    segmenta      db    '1234567890'dseg    endseseg

66、    segment                      b      db    10   dup(?)eseg    endscseg    segment  

67、0;                  assume  cs:cseg,ds:dseg,es:esegstart:   mov   ax,dseg        mov   ds,ax        mov&#

68、160;  ax,eseg        mov   es,ax        lea   si,a        lea   di,b       add   di,9      

69、;  mov  cx,10                move:    cld        lodsb        std        stosb  

70、      loop   move mov     ah,4ch                                  

71、0; int    21hcseg     endsend     start  題序:0031 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫完整的8086匯編程序:查表求x(0-9)的立方并將結(jié)果存放到變量xxx中去。答案: 解:  data   segmenttab    dw  0,1,8,27,64,125,216,343,5

72、12,729x      db  8xxx    dw  ?data   ends                          code   segmentassume cs:code,ds:data&#

73、160;              start: mov  ax,data               mov  ds,ax              。為ds送初值  

74、          mov al,x       add  al ,al        mov  bl,al              。求立方表的偏移       mov

75、0; bh,0       mov  ax,tab bx        。查表          mov  xxx,ax             。保存       mov  ah

76、,4ch             。返回dos       int  21hcode   endsend start題序:0033 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫程序,計算下面函數(shù)的值。答案: 解:  data  segment    

77、60; x  dw  34      s  dw   ?data  endscode  segment      assume  cs:code,ds:datastart:mov  ax,data       mov  ds,ax       mov  ax,x

78、0;                               ;將x送到ax中       cmp  ax,0         

79、0;                      ;(ax)0嗎?        jl   doub                 

80、0;               ;是,轉(zhuǎn)向doub       cmp  ax,10                         &#

81、160;     ;否,(ax)10嗎?       jle  trib                                  ;是,轉(zhuǎn)向trib&

82、#160;      sal  ax,1                                 ;否,乘以4       sal  ax,1

83、       jmp  exitdoub: sal  ax,1                                ;乘以2       j

84、mp  exittrib: sal  ax,1                                  ;乘以3       add  ax,xexit: mov

85、0; s,ax                                 ;保存結(jié)果       mov  ah,4ch       

86、                      ;結(jié)束       int  21hcode  ends       end  start題序:0035 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題

87、干:已知在內(nèi)存中從block單元起存放有20個帶符號字節(jié)數(shù)據(jù)(-7,1,12,-90,-70,34,-1,56,45,-12),統(tǒng)計其中負數(shù)的個數(shù)并放入count單元。答案: 解:  data  segment    block  db  -7,1,12,-90,-70,34,-1,56,45,-12     cn  equ  $-block    count  db  ?data  e

88、ndscode  segment      assume  ds:data,cs:codestart:mov  ax,data      mov  ds,ax      mov  dl,0      lea  si,block      mov  cx,cnlp: &#

89、160; mov  al,si      test al,80h      jz   next      inc  dlnext: inc  si      loop  lp      mov  count,dl      mov

90、  ah,4ch      int  21hcode  ends      end  start題序:0036 題型:06 難度:03 分值:10.0章號:04 節(jié)號:02知識點:。匯編語言及程序設(shè)計題干:編寫程序先判斷數(shù)據(jù)段中buffer1單元中的字母是否是大寫字母,若是,將其轉(zhuǎn)換為對應(yīng)的小寫字母。答案: 解:  data  segmentbuffer db ?     data 

溫馨提示

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

評論

0/150

提交評論