微機(jī)原理與接口技術(shù)課程設(shè)計(jì)--四則運(yùn)算_第1頁(yè)
已閱讀1頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  題 目: 四則運(yùn)算</p><p>  班 級(jí): </p><p>  姓 名: </p><p>  學(xué) 號(hào): </p><p><b>  指導(dǎo)老師: </b></p><p>  日 期: 年 月

2、 日 </p><p><b>  目錄</b></p><p>  設(shè)計(jì)目的…………………………………………………… 1</p><p>  概要設(shè)計(jì).........................................2</p><p>  2.1 系統(tǒng)總體分析……………………………………………2&

3、lt;/p><p>  2.2 主模塊框圖及說(shuō)明……………………………………… 3</p><p>  3、詳細(xì)設(shè)計(jì)……………………………………………………… 4</p><p>  3.1 主模塊及子模塊概述…………………………………… 4</p><p>  3.2 各模塊詳細(xì)設(shè)計(jì)………………………………………… 4</p>

4、<p>  4、程序調(diào)試……………………………………………………… 9</p><p>  4.1 運(yùn)行界面分析………………………………………………9</p><p>  4.2 調(diào)試過(guò)程與分析……………………………………………11</p><p>  5、心得體會(huì)……………………………………………………… 12</p><p> 

5、 5.1 設(shè)計(jì)體會(huì)……………………………………………………12</p><p>  5.2 系統(tǒng)改進(jìn)……………………………………………………12</p><p>  附錄…………………………………………………………………14</p><p>  參考文獻(xiàn)……………………………………………………………40</p><p><b>  

6、設(shè)計(jì)目的</b></p><p>  進(jìn)行程序設(shè)計(jì)方法和技能的基本訓(xùn)練,鞏固在課堂上學(xué)到的有關(guān)程序設(shè)計(jì)的基本知識(shí)和基本方法,通過(guò)實(shí)際動(dòng)手能力的培養(yǎng),進(jìn)一步熟悉匯編語(yǔ)言的結(jié)構(gòu)和使用方法,達(dá)到能獨(dú)立閱讀、編制和調(diào)試一定規(guī)模的匯編語(yǔ)言程序的水平,對(duì)自身的學(xué)習(xí)從理論到實(shí)踐的應(yīng)用,加深對(duì)匯編語(yǔ)言的認(rèn)識(shí)。</p><p><b>  概要設(shè)計(jì)</b></p>

7、;<p>  2.1 系統(tǒng)總體分析</p><p>  1. 可以任意輸入十進(jìn)制數(shù)進(jìn)行運(yùn)算。</p><p>  2. 進(jìn)行的運(yùn)算是加、減、乘和除的獨(dú)立運(yùn)算。</p><p>  3.運(yùn)算時(shí),當(dāng)輸入十進(jìn)制數(shù)時(shí),首先默認(rèn)的是加法運(yùn)算,通過(guò)回車(chē)得到加法運(yùn)算結(jié)果。若要進(jìn)行同樣數(shù)的減法,乘法和除法的運(yùn)算可用鼠標(biāo)點(diǎn)擊sub,mul和div進(jìn)行運(yùn)算。若不想則通過(guò)

8、reload重新輸入。</p><p>  4. 程序可以重復(fù)進(jìn)行運(yùn)算,這就要求每次運(yùn)算后置零數(shù)據(jù)存儲(chǔ)區(qū),通過(guò)reload清零。</p><p>  5. 由于運(yùn)算的結(jié)果位數(shù)不確定,要設(shè)計(jì)一個(gè)能顯示結(jié)果的輸出程序,通過(guò)窗口實(shí)現(xiàn)。</p><p>  2.2 主模塊框圖及說(shuō)明</p><p><b>  詳細(xì)設(shè)計(jì)</b>&

9、lt;/p><p>  3.1 主模塊及子模塊概述</p><p>  主模塊主要是四則運(yùn)算部分,就是進(jìn)行運(yùn)算的模塊,包括加減乘除為實(shí)現(xiàn)運(yùn)算而進(jìn)行的模塊,程序的中心部分。其他子模塊包括用鼠標(biāo)選擇的何種運(yùn)算的模塊,通過(guò)鼠標(biāo)選擇加法運(yùn)算或者其他的運(yùn)算等等。以及窗口模塊,主要是進(jìn)行數(shù)據(jù)的顯示。還有就是菜單模塊,就是鼠標(biāo)選擇運(yùn)算的模塊,通過(guò)選擇加減或者乘除來(lái)實(shí)現(xiàn)運(yùn)算。以及鼠標(biāo)引入模塊,實(shí)現(xiàn)鼠標(biāo)的選擇操

10、作。輸出模塊和清零數(shù)據(jù)重新運(yùn)算模塊。</p><p>  3.2 各模塊詳細(xì)設(shè)計(jì)</p><p>  3.2.1主要是數(shù)據(jù)的初始化</p><p>  data segment </p><p>  Notice db ‘(Notice: 0<=Number<=32767)’,’$’</p><p>  S

11、tring1 db ‘Number1:’,’$’</p><p>  String2 db ‘Number2:’,’$’</p><p>  String3 db ‘Finally:’,’$’</p><p>  Menu1 db ‘Add’,’$’</p><p>  Menu2 db ‘Sub’,’$’</p><p&

12、gt;  Menu3 db ‘Mul’,’$’</p><p>  Menu4 db ‘Div’,’$’</p><p>  Menu5 db ‘Reload’,’$’</p><p>  ErrorString db ‘Error’,0ah,0dh,’$’ </p><p>  Number1 dw 0

13、 </p><p>  Number2 dw 0 </p><p><b>  data ends</b></p><p>  stack segment</p><p>  dw 512 dup(0)</p><p>  stack ends</p><p> 

14、 code segment </p><p><b>  ;《主函數(shù)》</b></p><p>  3.2.2鼠標(biāo)的初始化部分</p><p>  Main proc far </p><p><b>  start:</b></p><p>  mov ax, dat

15、a</p><p>  mov ds, ax</p><p>  mov es, ax</p><p>  call ShowMainWindow </p><p>  call MouseInit</p><p>  cmp ax,0ffffh</p><p>  je succes

16、s</p><p>  mov dx,offset ErrorString</p><p><b>  mov ah,9</b></p><p><b>  int 21h</b></p><p>  jmp exitSystem</p><p>  success:;鼠標(biāo)初

17、始化成功后進(jìn)行數(shù)據(jù)的正常運(yùn)行。</p><p>  3.2.3窗口的初始化</p><p>  ShowMainWindow proc near</p><p><b>  push ax</b></p><p><b>  push bx</b></p><p><b

18、>  push cx</b></p><p><b>  push dx</b></p><p>  mov ax,01h;初始化窗口模式</p><p>  int 10h </p><p>  mov bh,8fh</p><p><b>  xor cx,cx

19、</b></p><p>  mov dx,1827h</p><p>  call DrawRect</p><p>  mov bh,0fh</p><p>  mov cx,202h</p><p>  mov dx,0a27h</p><p>  call DrawRect&

20、lt;/p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset String1</p><p><b>  int 21h</b></p><p><b>

21、;  mov ah,2</b></p><p>  mov dx,0602h</p><p><b>  int 10h</b></p><p>  mov bh,01h</p><p>  mov cx,0d03h</p><p>  mov dx,1009h</p>

22、<p>  r2:call DrawRect</p><p><b>  add cl,9</b></p><p><b>  add dl,9</b></p><p><b>  dec ax</b></p><p><b>  jnz r2</b&

23、gt;</p><p>  mov cx,1303h</p><p>  mov dx,1524h</p><p>  call DrawRect</p><p><b>  mov ax,4</b></p><p>  mov bh,0f1h</p><p>  mov

24、cx,0c02h</p><p>  mov dx,0f08h</p><p>  rr1:call DrawRect</p><p><b>  add cl,9</b></p><p><b>  add dl,9</b></p><p><b>  dec a

25、x</b></p><p><b>  jnz rr1</b></p><p>  mov cx,1202h</p><p>  mov dx,1423h</p><p>  call DrawRect</p><p><b>  mov ah,2</b><

26、/p><p><b>  mov bh,0</b></p><p><b>  int 21h</b></p><p><b>  pop dx</b></p><p><b>  pop cx</b></p><p><b>

27、;  pop bx</b></p><p><b>  pop ax</b></p><p><b>  ret</b></p><p>  ShowMainWindow endp</p><p><b>  3.2.4運(yùn)算模塊</b></p><

28、;p>  AddInterger proc near </p><p><b>  push si</b></p><p><b>  push bx</b></p><p>  lea si,Number1</p><p>  mov ax,[si]</p><p

29、>  lea si,Number2</p><p>  mov bx,[si]</p><p><b>  add ax,bx</b></p><p>  pop bx </p><p><b>  pop si</b></p><p><b>  r

30、et</b></p><p>  AddInterger endp</p><p>  ;《SubInterger》</p><p><b>  ;參數(shù):無(wú)</b></p><p>  ;返回:end->ax</p><p>  SubInterger proc near<

31、/p><p><b>  push si</b></p><p><b>  push bx</b></p><p>  lea si,Number1</p><p>  mov ax,[si]</p><p>  lea si,Number2</p><p&

32、gt;  mov bx,[si]</p><p><b>  sub ax,bx</b></p><p>  pop bx </p><p><b>  pop si</b></p><p><b>  ret</b></p><p>  Sub

33、Interger endp</p><p>  ;《MulInterger》</p><p><b>  ;參數(shù):無(wú)</b></p><p>  ;返回:end->ax</p><p>  MulInterger proc near</p><p><b>  push si<

34、;/b></p><p><b>  push bx</b></p><p>  lea si,Number1</p><p>  mov ax,[si]</p><p>  lea si,Number2</p><p>  mov bx,[si]</p><p>&

35、lt;b>  mul bx</b></p><p>  pop bx </p><p><b>  pop si</b></p><p><b>  ret</b></p><p>  MulInterger endp</p><p>  ;《Div

36、Interger》</p><p><b>  ;參數(shù):無(wú)</b></p><p>  ;返回:end->ax</p><p>  DivInterger proc near</p><p><b>  push dx</b></p><p><b>  pu

37、sh si</b></p><p><b>  push bx</b></p><p>  lea si,Number1</p><p>  mov ax,[si]</p><p>  lea si,Number2</p><p>  mov bx,[si]</p>&l

38、t;p><b>  xor dx,dx</b></p><p><b>  div bx</b></p><p>  pop bx </p><p><b>  pop si</b></p><p><b>  pop dx</b></

39、p><p><b>  ret</b></p><p>  DivInterger endp</p><p>  ;《GetInterger》</p><p><b>  ;參數(shù):[bx]</b></p><p>  ;返回:interger->[bx] </p>

40、;<p>  ;注意:0<=interger<=32767</p><p>  GetInterger proc near </p><p><b>  push cx </b></p><p><b>  push dx</b></p><p>  push bx

41、 </p><p><b>  xor ax,ax</b></p><p>  xor bx,bx </p><p>  xor cx,cx </p><p>  xor dx,dx </p><p>  reget:mov ah,8</p><p>

42、;  int 21h </p><p>  cmp al,’0’</p><p>  jb sign </p><p>  cmp al,’9’</p><p>  ja reget </p><p><b>  cmp cl,5</b></p><p>&

43、lt;b>  je reget</b></p><p>  jmp getInt</p><p>  sign:cmp al,0dh</p><p><b>  je enter</b></p><p><b>  cmp al,8h</b></p><p>

44、;  je backspace </p><p><b>  jmp reget</b></p><p>  getInt:mov dl,al</p><p><b>  mov ah,2</b></p><p><b>  int 21h </b></p>

45、<p>  and ax,0fh </p><p>  xchg ax,bx </p><p><b>  push bx</b></p><p><b>  mov bx,10</b></p><p><b>  mul bx</b></p>

46、<p><b>  pop bx </b></p><p>  xchg ax,bx</p><p>  add bx,ax </p><p><b>  inc cx</b></p><p><b>  jmp reget</b></p><

47、;p>  backspace:cmp cl,0</p><p><b>  je reget</b></p><p>  xchg ax,bx </p><p><b>  push bx</b></p><p><b>  mov bx,10</b></p&g

48、t;<p><b>  div bx</b></p><p><b>  pop bx</b></p><p>  xchg ax,bx </p><p><b>  dec cx</b></p><p>  mov ah,2 </p>&l

49、t;p>  mov dl,08h</p><p><b>  int 21h</b></p><p>  mov dl,20h</p><p>  int 21h </p><p>  mov dl,08h</p><p>  int 21h </p><p>

50、;  xor dx,dx </p><p><b>  jmp reget</b></p><p>  enter:mov ax,bx</p><p><b>  pop bx</b></p><p>  mov [bx],ax</p><p><b>  po

51、p dx</b></p><p><b>  pop cx</b></p><p><b>  ret </b></p><p>  GetInterger endp </p><p>  ;《CleanFinally》</p><p><b>  

52、;參數(shù):無(wú)</b></p><p>  ;返回:光標(biāo)位置Finally輸出框</p><p>  CleanFinally proc near</p><p><b>  push ax</b></p><p><b>  push bx</b></p><p>

53、<b>  push cx</b></p><p><b>  push dx</b></p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p>  mov dx,080ah</p&g

54、t;<p><b>  int 10h</b></p><p><b>  mov cx,6</b></p><p>  mov dl,’ ‘</p><p>  clean:int 21h</p><p>  loop clean</p><p>  mov

55、dx,080ah</p><p><b>  int 10h</b></p><p><b>  pop dx</b></p><p><b>  pop cx</b></p><p><b>  pop bx</b></p><p&g

56、t;<b>  pop ax</b></p><p><b>  ret</b></p><p>  CleanFinally endp</p><p>  code ends </p><p><b>  end start</b><

57、/p><p><b>  程序調(diào)試</b></p><p>  4.1 運(yùn)行界面分析</p><p><b>  加法運(yùn)算:</b></p><p><b>  減法運(yùn)算:</b></p><p><b>  乘法運(yùn)算:</b><

58、/p><p><b>  除法運(yùn)算:</b></p><p>  4.2 調(diào)試過(guò)程與分析</p><p>  進(jìn)行運(yùn)算首先是進(jìn)行加法運(yùn)算,運(yùn)算玩呈現(xiàn)的是加法運(yùn)算的結(jié)果。可進(jìn)行相應(yīng)值的其他運(yùn)算,并得到相應(yīng)的結(jié)果。若計(jì)算其他值則需重新輸入,要先通過(guò)reload清零后再輸入??奢斎攵辔恢颠\(yùn)算。</p><p><b> 

59、 心得體會(huì)</b></p><p><b>  5.1 設(shè)計(jì)體會(huì)</b></p><p>  我們這學(xué)期初步地學(xué)習(xí)了匯編語(yǔ)言程序設(shè)計(jì),一開(kāi)始覺(jué)得該門(mén)課程相對(duì)于C語(yǔ)言比較難,匯編語(yǔ)言是利用一個(gè)又一個(gè)寄存器來(lái)實(shí)現(xiàn)。而寫(xiě)代碼的時(shí)候,經(jīng)常會(huì)因?yàn)橐恍┓?hào),或者字長(zhǎng)的失誤,完全是無(wú)心之失而導(dǎo)致程序無(wú)法執(zhí)行。</p><p>  本次課程設(shè)計(jì)對(duì)我

60、們的成長(zhǎng)有很大的幫助。是對(duì)我們對(duì)匯編語(yǔ)言的掌握與運(yùn)用能力的一次檢驗(yàn)。這次的課程設(shè)計(jì)老師給我們降低了難度,只要能進(jìn)行加減乘除四則運(yùn)算就行了。了解課題內(nèi)容后,我們進(jìn)行了分工合作,先查閱了相關(guān)資料,然后開(kāi)始源代碼的編寫(xiě),最后是調(diào)試結(jié)果,直到符合課題要求。</p><p>  這次課程設(shè)計(jì)中遇到了不少麻煩,這也是由于之前理論課上學(xué)得不夠扎實(shí)所導(dǎo)致的,所以我們進(jìn)行了更深入的討論,并積極地向老師和同學(xué)請(qǐng)教,最終順利地完成了任

61、務(wù)。</p><p><b>  5.2 系統(tǒng)改進(jìn)</b></p><p>  存在的改進(jìn)地方是不能同時(shí)進(jìn)行多種運(yùn)算,就是進(jìn)行加減乘除同時(shí)運(yùn)行的運(yùn)算。不能進(jìn)行小數(shù)運(yùn)算,加減乘除都不能進(jìn)行小數(shù)的運(yùn)算。同樣也是不能進(jìn)行負(fù)數(shù)的運(yùn)算,無(wú)法輸入負(fù)數(shù)。界面上還不夠完整,在不同的系統(tǒng)中可能需要進(jìn)行改進(jìn)。另外各種數(shù)的計(jì)算的范圍太小,不能做到面面俱到。</p><p

62、><b>  附錄</b></p><p>  data segment </p><p>  Notice db '(Notice: 0<=Number<=32767)','$'</p><p>  String1 db 'Number1:','$'</p

63、><p>  String2 db 'Number2:','$'</p><p>  String3 db 'Finally:','$'</p><p>  Menu1 db 'Add','$'</p><p>  Menu2 db 'Sub&

64、#39;,'$'</p><p>  Menu3 db 'Mul','$'</p><p>  Menu4 db 'Div','$'</p><p>  Menu5 db 'Reload','$'</p><p>  ErrorSt

65、ring db 'Error',0ah,0dh,'$' </p><p>  Number1 dw 0 </p><p>  Number2 dw 0 </p><p><b>  data ends</b></p><p>  stack seg

66、ment</p><p>  dw 512 dup(0)</p><p>  stack ends</p><p>  code segment </p><p><b>  ;《主函數(shù)》</b></p><p>  Main proc far </p><p>

67、;<b>  start:</b></p><p>  mov ax, data</p><p>  mov ds, ax</p><p>  mov es, ax</p><p>  call ShowMainWindow </p><p>  call MouseInit</p

68、><p>  cmp ax,0ffffh</p><p>  je success</p><p>  mov dx,offset ErrorString</p><p><b>  mov ah,9</b></p><p><b>  int 21h</b></p>

69、<p>  jmp exitSystem</p><p>  success:;鼠標(biāo)初始化成功,程序正常執(zhí)行</p><p>  mov ah,2;獲取Number1和Number2的數(shù)值</p><p><b>  mov bh,0</b></p><p>  mov dx,040ah</p>

70、<p><b>  int 10h</b></p><p>  mov bx,offset Number1</p><p>  call GetInterger</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b&g

71、t;</p><p>  mov dx,060ah</p><p><b>  int 10h</b></p><p>  mov bx,offset Number2</p><p>  call GetInterger</p><p>  call AddInterger</p>

72、<p><b>  push ax</b></p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p>  mov dx,080ah</p><p><b>  int 10h</b>

73、;</p><p><b>  pop ax</b></p><p>  call OutInterger</p><p>  call MenuChoose</p><p>  exitSystem:</p><p>  mov ax, 4c00h </p><p>&l

74、t;b>  int 21h </b></p><p>  Main endp </p><p>  ;《ShowMainWindow》</p><p><b>  ;參數(shù):無(wú)</b></p><p><b>  ;返回:無(wú)</b></p><p>  

75、ShowMainWindow proc near</p><p><b>  push ax</b></p><p><b>  push bx</b></p><p><b>  push cx</b></p><p><b>  push dx</b>

76、</p><p>  mov ax,01h;初始化窗口模式</p><p>  int 10h </p><p>  mov bh,8fh</p><p><b>  xor cx,cx</b></p><p>  mov dx,1827h</p><p>  call

77、 DrawRect</p><p>  mov bh,0fh</p><p>  mov cx,202h</p><p>  mov dx,0a27h</p><p>  call DrawRect</p><p>  mov bh,0f0h</p><p>  mov cx,101h</

78、p><p>  mov dx,0926h</p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p>  mov dx,0202h</p><p&g

79、t;<b>  int 10h</b></p><p>  mov dx,offset Notice</p><p><b>  mov ah,9</b></p><p><b>  int 21h</b></p><p><b>  mov ah,2</b&g

80、t;</p><p><b>  mov bh,0</b></p><p>  mov dx,0402h</p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offs

81、et String1</p><p><b>  int 21h</b></p><p><b>  mov ah,2</b></p><p>  mov dx,0602h</p><p><b>  int 10h</b></p><p><b&

82、gt;  mov ah,9</b></p><p>  mov dx,offset String2</p><p><b>  int 21h</b></p><p><b>  mov ah,2</b></p><p>  mov dx,0802h</p><p&g

83、t;<b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset String3</p><p><b>  int 21h</b></p><p><b>  mov ax,3</b&

84、gt;</p><p>  mov bh,01fh</p><p>  mov cx,040ah</p><p>  mov dx,0425h</p><p>  r1:call DrawRect</p><p><b>  add ch,2</b></p><p><

85、;b>  add dh,2</b></p><p><b>  dec ax</b></p><p><b>  jnz r1</b></p><p><b>  mov ax,4</b></p><p>  mov bh,01h</p><

86、;p>  mov cx,0d03h</p><p>  mov dx,1009h</p><p>  r2:call DrawRect</p><p><b>  add cl,9</b></p><p><b>  add dl,9</b></p><p><b

87、>  dec ax</b></p><p><b>  jnz r2</b></p><p>  mov cx,1303h</p><p>  mov dx,1524h</p><p>  call DrawRect</p><p><b>  mov ax,4<

88、/b></p><p>  mov bh,0f1h</p><p>  mov cx,0c02h</p><p>  mov dx,0f08h</p><p>  rr1:call DrawRect</p><p><b>  add cl,9</b></p><p>

89、;<b>  add dl,9</b></p><p><b>  dec ax</b></p><p><b>  jnz rr1</b></p><p>  mov cx,1202h</p><p>  mov dx,1423h</p><p>  

90、call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p>  mov dx,0e04h</p><p><b>  int 10h</b></p><p>&l

91、t;b>  mov ah,9</b></p><p>  mov dx,offset Menu1</p><p><b>  int 21h</b></p><p><b>  mov ah,2</b></p><p>  mov dx,0e0dh</p><p

92、><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu2</p><p><b>  int 21h</b></p><p><b>  mov ah,2</b&

93、gt;</p><p>  mov dx,0e16h</p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu3</p><p><b>  int 21h&l

94、t;/b></p><p><b>  mov ah,2</b></p><p>  mov dx,0e1fh</p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov d

95、x,offset Menu4</p><p><b>  int 21h</b></p><p><b>  mov ah,2</b></p><p>  mov dx,1310h</p><p><b>  int 10h</b></p><p>&l

96、t;b>  mov ah,9</b></p><p>  mov dx,offset Menu5</p><p><b>  int 21h</b></p><p><b>  pop dx</b></p><p><b>  pop cx</b></p

97、><p><b>  pop bx</b></p><p><b>  pop ax</b></p><p><b>  ret</b></p><p>  ShowMainWindow endp</p><p>  ;《DrawRect》</p>

98、;<p>  ;參數(shù):bh=color,cx,dx</p><p><b>  ;返回:無(wú)</b></p><p>  DrawRect proc near</p><p><b>  push ax</b></p><p>  mov ah,0bh</p><p&

99、gt;<b>  mov bl,0</b></p><p><b>  int 10h</b></p><p>  mov ax,0700h</p><p><b>  int 10h</b></p><p><b>  pop ax</b></p&

100、gt;<p><b>  ret</b></p><p>  DrawRect endp</p><p>  ;《MenuChoose》</p><p><b>  ;參數(shù):si</b></p><p><b>  ;返回:si</b></p>&l

101、t;p>  MenuChoose proc near</p><p>  regetMouseState1:call GetMouse</p><p>  cmp bx,01h</p><p>  jne regetMouseState1</p><p><b>  cmp dx,12</b></p>

102、<p><b>  jae n1</b></p><p>  mov bx,0;點(diǎn)中按鈕外圍,設(shè)置bx=0</p><p><b>  push bx</b></p><p>  jmp regetMouseState2</p><p>  n1:cmp dx,15</p>

103、<p><b>  jbe n2</b></p><p><b>  cmp dx,18</b></p><p><b>  jae m1</b></p><p>  mov bx,0;點(diǎn)中按鈕外圍,設(shè)置bx=0</p><p><b>  push bx

104、</b></p><p>  jmp regetMouseState2</p><p>  m1:cmp dx,20</p><p><b>  jbe m2</b></p><p>  mov bx,0;點(diǎn)中按鈕外圍,設(shè)置bx=0</p><p><b>  push bx

105、</b></p><p>  jmp regetMouseState2</p><p>  m2:mov ax,cx</p><p><b>  cmp cx,2h</b></p><p><b>  jae m3</b></p><p>  mov bx,0;點(diǎn)

106、中按鈕外圍,設(shè)置bx=0</p><p><b>  push bx</b></p><p>  jmp regetMouseState2</p><p>  m3:cmp cx,23h</p><p><b>  jbe m4</b></p><p>  mov bx,0;

107、點(diǎn)中按鈕外圍,設(shè)置bx=0</p><p><b>  push bx</b></p><p>  jmp regetMouseState2</p><p>  m4:mov bx,5;點(diǎn)中按鈕1,設(shè)置bx=5</p><p><b>  push bx</b></p><p&g

108、t;  mov bh,8fh</p><p>  mov cx,1202h</p><p>  mov dx,1423h</p><p>  call DrawRect</p><p>  mov bh,0f0h</p><p>  mov cx,1303h</p><p>  mov dx,1

109、524h</p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p>  mov dx,1411h</p><p><b>  int 10h</b

110、></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu5</p><p><b>  int 21h</b></p><p>  jmp regetMouseState2</p><p>  mov bx,0;

111、點(diǎn)中按鈕外圍,設(shè)置bx=0</p><p><b>  push bx</b></p><p>  jmp regetMouseState2</p><p>  n2:mov ax,cx</p><p><b>  mov cl,9</b></p><p><b>

112、  div cl</b></p><p><b>  cmp ah,2</b></p><p><b>  jae n3</b></p><p>  mov bx,0;點(diǎn)中按鈕外圍,設(shè)置bx=0</p><p><b>  push bx</b></p>

113、<p>  jmp regetMouseState2</p><p>  n3:cmp ah,8</p><p><b>  jbe n4</b></p><p>  mov bx,0;點(diǎn)中按鈕外圍,設(shè)置bx=0</p><p><b>  push bx</b></p>

114、<p>  jmp regetMouseState2</p><p>  n4:cmp al,0;功能1</p><p>  je button1</p><p><b>  cmp al,1</b></p><p>  je button2</p><p><b>  cm

115、p al,2</b></p><p>  je button3</p><p><b>  cmp al,3</b></p><p>  je button4</p><p>  mov bx,0;點(diǎn)中按鈕外圍,設(shè)置bx=0</p><p><b>  push bx<

116、/b></p><p>  jmp regetMouseState2</p><p>  button1:mov bx,1;點(diǎn)中按鈕1,設(shè)置bx=1</p><p><b>  push bx</b></p><p>  mov bh,8fh</p><p>  mov cx,0c02h&l

117、t;/p><p>  mov dx,0f08h</p><p>  call DrawRect</p><p>  mov bh,0f1h</p><p><b>  inc ch</b></p><p><b>  inc cl</b></p><p>

118、<b>  inc dh</b></p><p><b>  inc dl</b></p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p>

119、;<p>  mov dx,0f05h</p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu1</p><p><b>  int 21h</b><

120、/p><p>  jmp regetMouseState2</p><p>  button2:mov bx,2;點(diǎn)中按鈕2,設(shè)置bx=2</p><p><b>  push bx</b></p><p>  mov bh,8fh</p><p>  mov cx,0c0bh</p>

121、<p>  mov dx,0f11h</p><p>  call DrawRect</p><p>  mov bh,0f1h</p><p><b>  inc ch</b></p><p><b>  inc cl</b></p><p><b> 

122、 inc dh</b></p><p><b>  inc dl</b></p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p&g

123、t;  mov dx,0f0eh</p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu2</p><p><b>  int 21h</b></p>&l

124、t;p>  jmp regetMouseState2</p><p>  button3:mov bx,3;點(diǎn)中按鈕3,設(shè)置bx=3</p><p><b>  push bx</b></p><p>  mov bh,8fh</p><p>  mov cx,0c14h</p><p> 

125、 mov dx,0f1ah</p><p>  call DrawRect</p><p>  mov bh,0f1h</p><p><b>  inc ch</b></p><p><b>  inc cl</b></p><p><b>  inc dh<

126、;/b></p><p><b>  inc dl</b></p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p>  mov dx

127、,0f17h</p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu3</p><p><b>  int 21h</b></p><p>  j

128、mp regetMouseState2</p><p>  button4:mov bx,4;點(diǎn)中按鈕4,設(shè)置bx=4</p><p><b>  push bx</b></p><p>  mov bh,8fh</p><p>  mov cx,0c1dh</p><p>  mov dx,0f

129、23h</p><p>  call DrawRect</p><p>  mov bh,0f1h</p><p><b>  inc ch</b></p><p><b>  inc cl</b></p><p><b>  inc dh</b><

130、;/p><p><b>  inc dl</b></p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p>  mov dx,0f20h<

131、/p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu4</p><p><b>  int 21h</b></p><p>  jmp regetMo

132、useState2</p><p>  regetMouseState2:call GetMouse</p><p><b>  cmp bx,0</b></p><p>  jne regetMouseState2</p><p><b>  pop bx</b></p><p

133、><b>  cmp bx,1</b></p><p><b>  je btn1</b></p><p><b>  cmp bx,2</b></p><p><b>  je btn2</b></p><p><b>  cmp bx,

134、3</b></p><p><b>  je btn3</b></p><p><b>  cmp bx,4</b></p><p><b>  je btn4</b></p><p><b>  cmp bx,5</b></p>

135、<p><b>  je btn5</b></p><p>  jmp regetMouseState1</p><p>  btn1:mov bh,01h;點(diǎn)中按鈕1并放開(kāi)左鍵</p><p>  mov cx,0d03h</p><p>  mov dx,1009h</p><p>

136、;  call DrawRect</p><p>  mov bh,0f1h</p><p><b>  dec ch</b></p><p><b>  dec cl</b></p><p><b>  dec dh</b></p><p><b

137、>  dec dl</b></p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p>  mov dx,0e04h</p><p><b&

138、gt;  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu1</p><p><b>  int 21h</b></p><p>  call AddInterger</p><p&

139、gt;  call CleanFinally</p><p>  call OutInterger</p><p>  jmp regetMouseState1</p><p>  btn2:mov bh,01h;點(diǎn)中按鈕2并放開(kāi)左鍵</p><p>  mov cx,0d0ch</p><p>  mov dx,10

140、12h</p><p>  call DrawRect</p><p>  mov bh,0f1h</p><p><b>  dec ch</b></p><p><b>  dec cl</b></p><p><b>  dec dh</b><

141、;/p><p><b>  dec dl</b></p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p>  mov dx,0e0dh<

142、/p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu2</p><p><b>  int 21h</b></p><p>  call SubInt

143、erger</p><p>  call CleanFinally</p><p>  call OutInterger</p><p>  jmp regetMouseState1</p><p>  btn3:mov bh,01h;點(diǎn)中按鈕3并放開(kāi)左鍵</p><p>  mov cx,0d15h</p>

144、;<p>  mov dx,101bh</p><p>  call DrawRect</p><p>  mov bh,0f1h</p><p><b>  dec ch</b></p><p><b>  dec cl</b></p><p><b&g

145、t;  dec dh</b></p><p><b>  dec dl</b></p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><

146、p>  mov dx,0e16h</p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu3</p><p><b>  int 21h</b></p>

147、<p>  call MulInterger</p><p>  call CleanFinally</p><p>  call OutInterger</p><p>  jmp regetMouseState1</p><p>  btn4:mov bh,01h;點(diǎn)中按鈕4并放開(kāi)左鍵</p><p>

148、  mov cx,0d1eh</p><p>  mov dx,1024h</p><p>  call DrawRect</p><p>  mov bh,0f1h</p><p><b>  dec ch</b></p><p><b>  dec cl</b></

149、p><p><b>  dec dh</b></p><p><b>  dec dl</b></p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0<

150、;/b></p><p>  mov dx,0e1fh</p><p><b>  int 10h</b></p><p><b>  mov ah,9</b></p><p>  mov dx,offset Menu4</p><p><b>  int 2

151、1h</b></p><p>  call DivInterger</p><p>  call CleanFinally</p><p>  call OutInterger</p><p>  jmp regetMouseState1</p><p>  btn5:;點(diǎn)中按鈕5并放開(kāi)左鍵</p&g

152、t;<p>  mov bh,01h</p><p>  mov cx,1303h</p><p>  mov dx,1524h</p><p>  call DrawRect</p><p>  mov bh,0f1h</p><p>  mov cx,1202h</p><p>

153、;  mov dx,1423h</p><p>  call DrawRect</p><p><b>  mov ah,2</b></p><p><b>  mov bh,0</b></p><p>  mov dx,1310h</p><p><b>  in

溫馨提示

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

評(píng)論

0/150

提交評(píng)論