微型計(jì)算機(jī)課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩18頁(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)介

1、<p>  微型計(jì)算機(jī)原理課程設(shè)計(jì)報(bào)告</p><p><b>  一、目的</b></p><p>  結(jié)合微型計(jì)算機(jī)原理課程的學(xué)習(xí),進(jìn)一步鞏固已學(xué)的知識(shí),同時(shí)針對(duì)微型計(jì)算機(jī)原理知識(shí)的具體應(yīng)用,學(xué)會(huì)對(duì)系統(tǒng)中DOS和BIOS的使用。學(xué)會(huì)使用全屏幕編輯程序——PE,弄懂匯編程序的上機(jī)過(guò)程以及如何運(yùn)用DEBUG軟件進(jìn)行匯編程序的調(diào)試。</p>&l

2、t;p><b>  二、任務(wù)</b></p><p>  任務(wù)一:字符串匹配設(shè)計(jì)</p><p>  為掌握提示信息的設(shè)置方法及讀取鍵入信息的方法。編寫(xiě)程序?qū)崿F(xiàn)兩個(gè)字符串的比較。如相同,則顯示“MATCH”,否則,顯示“NO MATCH”</p><p><b>  流程圖:</b></p><p

3、><b>  程序清單:</b></p><p>  data segment</p><p>  s1 db 'please input the first string:','$'</p><p>  st1 db 100</p><p><b>  db ?

4、</b></p><p>  db 100 dup(?)</p><p>  s2 db 0ah,'plaese input the second string:','$'</p><p>  st2 db 100</p><p><b>  db ?</b>&l

5、t;/p><p>  db 100 dup(?)</p><p>  s3 db 0ah,'matah','$'</p><p>  s4 db 0ah,'no mactch','$'</p><p><b>  data ends</b><

6、/p><p>  code segment</p><p>  assume cs:code,ds:data</p><p>  start: mov ax,data</p><p><b>  mov ds,ax</b></p><p>  mov dx,offset s1 ;顯示提

7、示信息1</p><p>  mov ah,9h ;字符串顯示</p><p><b>  int 21h</b></p><p>  mov dx,offset st1 ;接收鍵入的字符串1</p><p>  mov ah,0ah ;字符串鍵盤輸

8、入</p><p><b>  int 21h</b></p><p>  mov dx,offset s2 ; 顯示提示信息2</p><p>  mov ah,9h </p><p><b>  int 21h</b></p><

9、;p>  mov dx,offset st2 ;接收鍵入的字符串2</p><p>  mov ah,0ah</p><p><b>  int 21h</b></p><p>  mov si,offset st1 ; 字符串1的地址送給SI</p><p>  mov di,offs

10、et st2 ; 字符串2的地址送給DI</p><p><b>  mov ax,0</b></p><p>  lp1: mov bl,[si+1] ;字符串1的字符數(shù)送給bl</p><p>  cmp bl,[di+1] ;字符串2的字符數(shù)與字符串1相比較</p>

11、<p>  jnz lp4 ; 不等轉(zhuǎn)lp4</p><p>  mov al,[si+1] </p><p>  mov cx,ax ;給cx賦字符串1的字符數(shù)</p><p>  lp2: mov bl,[si+2] ; 字符串1的第一個(gè)字符在字符串2中

12、匹配</p><p>  cmp bl,[di+2]</p><p><b>  jnz lp4</b></p><p><b>  inc si</b></p><p><b>  inc di</b></p><p>  loop lp2

13、 ; 循環(huán)cx內(nèi)容減1,cx不等于0,繼續(xù)循環(huán),跳轉(zhuǎn)lp2 </p><p>  lp3: mov dx,offset s3 </p><p><b>  mov ah,9h</b></p><p><b>  int 21h</b></p><p><b> 

14、 jmp next</b></p><p>  lp4: mov dx,offset s4</p><p><b>  mov ah,9h</b></p><p><b>  int 21h</b></p><p>  next: mov ah,4ch

15、;返回DOS</p><p><b>  int 21h</b></p><p><b>  code ends</b></p><p>  end start </p><p><b>  調(diào)試結(jié)果:</b></p><p>  任務(wù)二:從鍵盤輸入數(shù)據(jù)

16、并顯示的設(shè)計(jì)</p><p>  為掌握接收鍵盤數(shù)據(jù)的方法,并了解將鍵盤數(shù)據(jù)顯示時(shí)須轉(zhuǎn)換為ASCII碼的原理。編寫(xiě)程序,將鍵盤接收到的四位十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換為等值的二進(jìn)制數(shù),再顯示在終端上。</p><p><b>  流程圖:</b></p><p><b>  程序清單: </b></p><p>

17、;  CRLF MACRO</p><p>  MOV AH,02H</p><p>  MOV DL,0DH</p><p><b>  INT 21H</b></p><p>  MOV AH,02H</p><p>  MOV DL,0AH</p><p>

18、;<b>  INT 21H</b></p><p><b>  ENDM</b></p><p>  DATA SEGMENT</p><p>  MARK DB ?</p><p>  MESS DB 'please input the number(H),press inte

19、r,ture into number(B).press space end.',0DH,0AH,'$'</p><p>  ERROR DB 0DH,0AH, 'input error',0DH,0AH,'$'</p><p>  DATA ENDS</p><p>  STACK SEGMENT<

20、/p><p>  STA DW 32 DUP(?)</p><p>  TOP DW ?</p><p>  STACK ENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK</p><

21、p>  START: MOV AX,DATA</p><p>  MOV DS,AX</p><p>  MOV ES,AX</p><p>  MOV SP,TOP</p><p>  HEAD: CRLF</p><p>  MOV MARK,0</p><p>  M

22、OV AH,09H</p><p>  LEA DX,MESS</p><p>  INT 21H ;顯示提示輸入的信息</p><p>  CALL GETNUM ;接收鍵入數(shù)值送DX</p><p>  CMP MARK,01H</p><p><b>  J

23、E HEAD</b></p><p>  MOV CX,0010H ;16位</p><p>  MOV BX,DX</p><p>  TTT: ROL BX,1 ;循環(huán)左移1位</p><p>  MOV DL,BL</p><p>  AND DL

24、,01H ;屏蔽掉高7位</p><p>  ADD DL,30H</p><p>  MOV AH,02H</p><p>  INT 21H ;顯示二進(jìn)制位對(duì)應(yīng)的ASCII字符</p><p><b>  LOOP TTT</b></p><p>

25、  JMP HEAD</p><p>  FINI: MOV AX,4C00H</p><p>  INT 21H ;返回DOS</p><p>  GETNUM PROC NEAR ;子程序,接收鍵入數(shù)值送DX</p><p><b>  PUSH CX</b

26、></p><p>  XOR DX,DX</p><p>  GGG: MOV AH,01H</p><p><b>  INT 21H</b></p><p>  CMP AL,0DH ;輸入為回車,則進(jìn)行轉(zhuǎn)換</p><p><b>  JE

27、 PPP</b></p><p>  CMP AL,20H ;輸入為空格,則退回DOS</p><p><b>  JE FINI</b></p><p>  CMP AL,30H</p><p><b>  JB KKK</b></p>

28、<p>  SUB AL,30H</p><p>  CMP AL,0AH</p><p><b>  JB GETS</b></p><p>  CMP AL,11H</p><p><b>  JB KKK</b></p><p>  SUB AL

29、,07H</p><p>  CMP AL,0FH</p><p>  JBE GETS </p><p>  CMP AL,2AH</p><p><b>  JB KKK</b></p><p>  CMP AL,2FH</p><p>&

30、lt;b>  JA KKK</b></p><p>  SUB AL,20H</p><p>  GETS: MOV CL,04</p><p>  SHL DX,CL</p><p>  XOR AH,AH</p><p>  ADD DX,AX</p><p&

31、gt;<b>  JMP GGG</b></p><p>  KKK: MOV AH,09H</p><p>  MOV DX,OFFSET ERROR</p><p><b>  INT 21H</b></p><p>  MOV MARK,01H</p><p

32、>  PPP: PUSH DX</p><p><b>  CRLF</b></p><p><b>  POP DX</b></p><p><b>  POP CX</b></p><p><b>  RET</b></p>

33、;<p>  GETNUM ENDP</p><p>  CODE ENDS</p><p><b>  END START</b></p><p><b>  調(diào)試結(jié)果:</b></p><p>  任務(wù)三:將鍵盤輸入的小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母的設(shè)計(jì)</p><

34、;p>  為了解小寫(xiě)字母和大寫(xiě)字母在計(jì)算機(jī)內(nèi)的表示方法,并學(xué)習(xí)如何進(jìn)行轉(zhuǎn)換。編寫(xiě)程序,接收鍵盤字符,并將其中的小寫(xiě)字母轉(zhuǎn)變?yōu)榇髮?xiě)字母,然后顯示在屏幕上。</p><p><b>  流程圖:</b></p><p><b>  程序清單:</b></p><p>  DATA SEGMENT

35、 </p><p>  BUF DB 82 DUP(?) </p><p>  DISPP1 DB 'please input letters, end with enter, exit with ctrl-c',0DH,0AH,'$'</p><p>  DISPP2 DB '

36、;the inverted litter is:', 0DH, 0AH,'$' </p><p>  DISPP3 DB 0DH,0AH,'$'</p><p>  DATA ENDS </p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:

37、DATA,ES:DATA</p><p>  START: MOV AX,DATA</p><p><b>  MOV DS,AX</b></p><p>  MOV ES,AX ;段寄存器初始化</p><p>  MOV BX,OFFSET BUF ;BX

38、指向字符行緩沖區(qū)首址</p><p>  LEA DX,DISPP1</p><p><b>  MOV AH,9</b></p><p><b>  INT 21H</b></p><p>  KKK: MOV SI,00H ;指針SI清0</p&g

39、t;<p>  GGG: MOV AH,01H ;接收鍵入字符</p><p>  INT 21H </p><p>  CMP AL,03H</p><p>  JZ PPP ;是CTRL-C鍵則轉(zhuǎn)結(jié)束 </p

40、><p>  CMP AL,0DH</p><p>  JZ BBB ;是回車鍵則轉(zhuǎn)BBB</p><p>  CMP AL,61H</p><p><b>  JB TTT</b></p><p>  CMP AL,7AH</p><

41、;p>  JA TTT ;不是小寫(xiě)字母轉(zhuǎn)TTT</p><p>  SUB AL,20H ;小寫(xiě)字母轉(zhuǎn)化為大寫(xiě)字母</p><p>  TTT: MOV [BX+SI],AL ;存入字符行緩沖區(qū)中</p><p>  INC SI

42、 ;指針加1</p><p><b>  JMP GGG</b></p><p>  BBB: LEA DX,DISPP3</p><p><b>  MOV AH,9</b></p><p><b>  INT 21H</b></p>

43、;<p>  LEA DX,DISPP2</p><p><b>  MOV AH,9</b></p><p><b>  INT 21H</b></p><p>  MOV [BX+SI],AL </p><p>  MOV AL,0AH</p>

44、<p>  MOV [BX+SI+1],AL ;加入換行符</p><p>  MOV AL,'$' </p><p>  MOV [BX+SI+2],AL ;再加一個(gè)'$'標(biāo)志字符</p><p>  MOV AH,09H</p><p>&

45、lt;b>  MOV DX,BX</b></p><p>  INT 21H ;顯示轉(zhuǎn)換后的字符串 </p><p><b>  JMP KKK</b></p><p>  PPP: MOV AH,4CH</p><p&g

46、t;<b>  INT 21H</b></p><p>  CODE ENDS</p><p>  END START</p><p>  CODE ENDS</p><p>  END START</p><p><b>  調(diào)試結(jié)果:</b></

47、p><p>  任務(wù)四:計(jì)算N!的設(shè)計(jì)</p><p>  為了解高級(jí)語(yǔ)言中的數(shù)學(xué)函數(shù)是怎樣在匯編語(yǔ)言一級(jí)上實(shí)現(xiàn)的。編寫(xiě)計(jì)算N!的程序。數(shù)值N由鍵盤輸入,結(jié)果在屏幕上輸出。N的范圍為0—65535.即剛好能被一個(gè)16為位寄存器容納。</p><p><b>  流程圖:</b></p><p><b>  程序清單

48、:</b></p><p>  CRLF MACRO;回車,換行</p><p>  MOV AH, 02H</p><p>  MOV DL, 0DH</p><p><b>  INT 21H</b></p><p>  MOV AH, 02H</p>

49、<p>  MOV DL, 0AH</p><p><b>  INT 21H</b></p><p><b>  ENDM</b></p><p>  DATA SEGMENT</p><p>  MESS1 DB 'INPUT THE NUMBER ACCORDING

50、TO HEXNUM!',0DH,0AH,'$'</p><p>  MESS2 DB 'THE RESULT IS: $'</p><p>  ERROR DB 'INPUT ERROR! INPUT ONCE MORE!',0DH ,0AH,'$'</p><p>  LEN D

51、W 1</p><p>  CY DW ?</p><p>  BUF DW 256 DUP(0)</p><p>  DATA ENDS</p><p>  STACK SEGMENT STACK 'STACK'</p><p>  DW 32 DUP(?)</p>

52、<p>  STACKENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS: CODE, DS:DATA, ES:DATA, SS:STACK</p><p>  START:MOV AX, DATA</p><p><b>  MOV DS,AX</b>&l

53、t;/p><p>  MOV ES, AX</p><p>  MOV AH, 09H</p><p>  MOV DX,OFFSET MESS1</p><p>  INT 21H ;顯示輸入提示信息</p><p>  CALL GETNUM ;讀取鍵入的N

54、值</p><p>  MOV BP, DX ;N值送BP</p><p><b>  CMP BP, 0</b></p><p><b>  JZ EEE</b></p><p><b>  CMP BP, 1</b></p>

55、<p>  JZ EEE ;N=0或N=1則轉(zhuǎn)EEE</p><p>  MOV SI, OFFSET BUF ;緩沖區(qū)首址</p><p>  MOV [SI],DX ;緩沖區(qū)初始化為值N</p><p>  XXX: DEC BP

56、 ;N值減1</p><p>  CMP BP,0001H</p><p>  JZ LLL ;若為1則轉(zhuǎn)LLL</p><p>  XOR BX,BX ;偏移指針清0</p><p>  MOV WORD PTR CY,0 ;進(jìn)位單元清0</p>

57、;<p>  MOV CX,LEN ;當(dāng)前結(jié)果長(zhǎng)度送CX</p><p>  TTT: MOV AX, [SI+BX]</p><p>  MUL BP ;相乘</p><p>  ADD AX,CY ;加低位進(jìn)位</p><p>  JNC

58、 JJJ ;結(jié)果無(wú)進(jìn)位轉(zhuǎn)JJJ</p><p>  INC DX ;有進(jìn)位將高位單元加1</p><p>  JJJ: MOV [SI+BX],AX ;結(jié)果送緩沖區(qū)中</p><p>  MOV CY,DX ;高位單元送進(jìn)位單元</p>

59、<p><b>  INC BX</b></p><p>  INC BX ;一個(gè)字長(zhǎng)度</p><p>  LOOP TTT ;循環(huán)</p><p>  CMP DX, 0000H</p><p>  JZ BBB

60、;最后1次的進(jìn)位為0則轉(zhuǎn)BBB</p><p>  INC WORD PTR LEN ;長(zhǎng)度加1</p><p>  MOV [SI+BX],DX ;進(jìn)位送緩沖區(qū)中</p><p>  BBB: JMP XXX</p><p>  EEE: MOV SI,OFFSET BUF</p><p&

61、gt;  MOV WORD PTR [SI],1 ;結(jié)果為1</p><p>  LLL: MOV AH, 09H</p><p>  MOV DX,OFFSET MESS2</p><p>  INT 21H ;顯示表頭</p><p>  MOV CX,LEN</p><p>

62、;  MOV BX,CX ;長(zhǎng)度</p><p><b>  DEC BX</b></p><p>  SHL BX,1 ;1個(gè)字為兩個(gè)字節(jié)</p><p>  CCC: MOV AX, [SI+BX]</p><p><b>  CALL DISP&l

63、t;/b></p><p><b>  DEC BX</b></p><p>  DEC BX ;顯示結(jié)果</p><p><b>  LOOP CCC</b></p><p>  MOV AX,4C00H ;結(jié)束</p>&

64、lt;p><b>  INT 21H</b></p><p>  DISP1 PROC NEAR ;顯示字符(AL)</p><p>  MOV BL, AL</p><p>  MOV DL, BL</p><p>  MOV CL, 04</p><p>

65、  ROL DL, CL</p><p>  AND DL, 0FH</p><p>  CALL DISPL ;顯示高位</p><p>  MOV DL, BL </p><p>  AND DL, 0FH</p><p>  CALL DISPL ;顯示低位<

66、/p><p><b>  RET</b></p><p>  DISP1 ENDP</p><p>  DISPL PROC NEAR ;顯示一位(DL=0XH)</p><p>  ADD DL, 30H</p><p>  CMP DL, 3AH</p>

67、<p><b>  JB DDD</b></p><p>  ADD DL, 27H</p><p>  DDD: MOV AH, 02H</p><p><b>  INT 21H</b></p><p><b>  RET</b></p><

68、;p>  DISPL ENDP</p><p>  DISP PROC NEAR ;顯示4位數(shù)(HEX)</p><p><b>  PUSH BX</b></p><p><b>  PUSH CX</b></p><p><b>  PUSH DX

69、</b></p><p><b>  PUSH AX</b></p><p>  MOV AL, AH</p><p>  CALL DISP1</p><p><b>  POP AX</b></p><p>  CALL DISP1</p>&l

70、t;p><b>  POP DX</b></p><p><b>  POP CX</b></p><p><b>  POP BX</b></p><p><b>  RET</b></p><p>  DISP ENDP</p>

71、<p>  GETNUMPROC NEAR ;字符匹配程序</p><p><b>  PUSH CX</b></p><p>  REGET:XOR DX, DX</p><p>  GGG: MOV AH, 01H</p><p><b>  INT 2

72、1H</b></p><p>  CMP AL, 0DH</p><p><b>  JZ PPP</b></p><p>  CMP AL, 20H</p><p><b>  JZ PPP</b></p><p>  SUB AL, 30H</p>

73、<p><b>  JB KKK</b></p><p>  CMP AL, 0AH</p><p><b>  JB GETS</b></p><p>  CMP AL,11H</p><p><b>  JB KKK</b></p><p&

74、gt;  SUB AL, 07H</p><p>  CMP AL, 0FH</p><p><b>  JBE GETS</b></p><p>  CMP AL, 2AH</p><p><b>  JB KKK</b></p><p>  CMP AL, 2FH<

75、/p><p><b>  JA KKK</b></p><p>  SUB AL, 20H</p><p>  GETS: MOV CL, 04H</p><p><b>  SHL DX,CL</b></p><p>  XOR AH, AH</p><p

76、>  ADD DX ,AX</p><p><b>  JMP GGG</b></p><p>  KKK: CRLF</p><p>  MOV AH, 09H</p><p>  MOV DX,OFFSET ERROR</p><p><b>  INT 21H</b

77、></p><p><b>  JMP REGET</b></p><p>  PPP: PUSH DX</p><p><b>  CRLF</b></p><p><b>  POP DX</b></p><p><b>  POP

78、 CX</b></p><p><b>  RET</b></p><p>  GETNUMENDP </p><p>  CODE ENDS</p><p><b>  END START</b></p><p><

79、b>  調(diào)試結(jié)果:</b></p><p>  任務(wù)五:讀文件的設(shè)計(jì)</p><p>  為掌握讀文件的DOS功能調(diào)用方法。編寫(xiě)程序,使它相當(dāng)于TYPE命令的功能。先由屏幕顯示提示信息,再讀取文件名(含路徑),然后在屏幕上顯示文件內(nèi)容。</p><p><b>  流程圖:</b></p><p>&l

80、t;b>  程序清單:</b></p><p>  DATA SEGMENT</p><p>  FILEN DB 21 ;文件名允許長(zhǎng)度為20</p><p>  DB ? ;實(shí)際文件名長(zhǎng)度</p><

81、;p>  DB 20 DUP(?) ;存新文件名</p><p>  ERROP DB 'Open file error!',0AH,0DH,'$'</p><p>  ERRRD DB 'Read file error!',0AH,0DH,'

82、$'</p><p>  INMSG1 DB 'Please input filename:',0AH,0DH,'$'</p><p>  BUFIN DB 0F000H DUP(?)</p><p>  EOF EQU 1AH ;文件結(jié)束

83、符CTRL+Z</p><p>  DATA ENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA</p><p>  START: MOV AX,DATA</p><p>  MOV DS,AX</p>

84、;<p>  LEA DX,INMSG1 ;顯示要求輸入打開(kāi)的文件名信息</p><p>  MOV AH,09H</p><p>  INT 21H</p><p>  LEA DX,FILEN ;輸入文件名</p>&l

85、t;p>  MOV AH,0AH</p><p>  INT 21H</p><p>  MOV BL,FILEN+1 ;取文件長(zhǎng)度</p><p>  MOV BH,0</p><p>  MOV FILEN[BX+2],BYTE PTR

86、0 ;文件名末尾添加0</p><p>  LEA DX,FILEN+2 ;指向文件名</p><p>  MOV AL,0 ;以只讀方式打開(kāi)</p><p>  MOV AH,3DH ;打開(kāi)文件&l

87、t;/p><p>  INT 21H</p><p>  JC OPERR ;打開(kāi)出錯(cuò) ,轉(zhuǎn)OPERR</p><p>  MOV BX,AX ;轉(zhuǎn)存文件號(hào)</p><p>  RDFILE: LEA

88、DX,BUFIN ;DX指向緩沖區(qū)</p><p>  MOV CX,50H ;每次讀80個(gè)字節(jié)</p><p>  MOV AH,3FH ;讀文件</p><p>  INT 21H</p><p>  

89、JC RDERR ;讀出錯(cuò),轉(zhuǎn)RDERR</p><p>  OR AX,AX ;讀入的字節(jié)數(shù)是否為0</p><p>  JZ CLFILE ;若為0,轉(zhuǎn)CLFILE</p><p>  MOV

90、 DL,0DH ;輸出回車</p><p>  MOV AH,2</p><p>  INT 21H</p><p>  MOV DL,0AH ;輸出換行,準(zhǔn)備顯示文件內(nèi)容</p><p>  MOV

91、 AH,2</p><p>  INT 21H</p><p>  MOV SI,0</p><p>  DISP0: MOV AL,BUFIN[SI] ;從緩沖區(qū)送一個(gè)字節(jié)到AL</p><p>  CMP AL,EOF ;是否為文件

92、結(jié)束符</p><p>  JZ CLFILE ;若是,轉(zhuǎn)CLFILE</p><p>  MOV DL,AL ;顯示一個(gè)字符</p><p>  MOV AH,2</p><p>  INT 21H<

93、/p><p>  INC SI ;指向下一個(gè)字節(jié)</p><p>  LOOP DISP0</p><p>  JMP RDFILE ;再去讀50H個(gè)字節(jié)</p><p>  RDERR: LEA DX,ER

94、RRD ;顯示讀文件出錯(cuò)的信息</p><p>  JMP DISP1 </p><p>  OPERR: LEA DX,ERROP ;顯示打開(kāi)文件出錯(cuò)的信息</p><p>  DISP1: MOV AH,09H</p><p>  INT 21H

95、</p><p>  JMP ENDO</p><p>  CLFILE: MOV AH,3EH ;關(guān)閉文件</p><p>  INT 21H</p><p>  ENDO: MOV AH,4CH ;退出</p><p&

96、gt;  INT 21H</p><p>  CODE ENDS</p><p>  END START</p><p><b>  調(diào)試結(jié)果:</b></p><p><b>  任務(wù)六:響鈴設(shè)計(jì)</b></p><p>  為掌握響鈴的使用方法。

97、編寫(xiě)程序,從鍵盤接收輸入字符,如是數(shù)字N,則響鈴N次;如不是數(shù)字,則不響。</p><p><b>  流程圖:</b></p><p><b>  程序清單:</b></p><p>  CRLF MACRO </p><p>  MOV DL,0DH</p>

98、<p>  MOV AH,02H</p><p>  INT 21H </p><p>  MOV AH,02H</p><p>  MOV DL,0AH</p><p>  INT 21H</p><p><b>  ENDM</b></p>

99、;<p>  DATA SEGMENT</p><p>  MES DB 'Please Input A Number,Press C To Exit:','$'</p><p>  MES1 DB 'The Input Is Not A Number,Please Input Again:','$

100、9;</p><p>  DATA ENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA</p><p>  START: MOV AX,DATA</p><p><b>  MOV DS,AX</b></

101、p><p>  MOV DX, OFFSET MES </p><p>  MOV AH,09H</p><p><b>  INT 21H</b></p><p><b>  CRLF</b></p><p>  L3: MOV AH,01H

102、 </p><p><b>  INT 21H</b></p><p>  CMP AL,'C'</p><p><b>  JE EXIT </b></p><p>  CMP AL,30H </p><p><b>  JB L2

103、</b></p><p>  CMP AL,39H</p><p><b>  JA L2</b></p><p>  AND AL,0FH </p><p><b>  CMP AL,0</b></p><p><b>  JE EXIT

104、</b></p><p><b>  MOV BL,AL</b></p><p>  L1: MOV DL,07H </p><p>  MOV AH,02H</p><p><b>  INT 21H</b></p><p>  CALL

105、 DELAY</p><p><b>  DEC BL</b></p><p>  JNZ L1 </p><p><b>  JMP L3</b></p><p><b>  CRLF</b></p><p>

106、;  EXIT: MOV AH,4CH</p><p><b>  INT 21H</b></p><p>  L2: CRLF</p><p>  MOV DX, OFFSET MES1 </p><p>  MOV AH,09H</p><p><b

107、>  INT 21H</b></p><p><b>  JMP L3</b></p><p>  DELAY PROC NEAR</p><p>  MOV DX ,02FFFH</p><p>  K2: MOV AX,0FFFFH</p><p&g

108、t;  K1: DEC AX</p><p><b>  NOP</b></p><p>  JNZ K1 </p><p><b>  DEC DX</b></p><p><b>  JNZ K2 </b></p

109、><p>  RET </p><p>  DELAY ENDP</p><p>  CODE ENDS</p><p>  END START</p><p><b>  調(diào)試結(jié)果:</b></p><p>&l

110、t;b>  三、小結(jié)</b></p><p>  通過(guò)這短短五天的課程設(shè)計(jì),我收獲很多。首先,匯編語(yǔ)言是上個(gè)學(xué)期學(xué)習(xí)的,過(guò)了半年多了,很多東西都忘記了,現(xiàn)在著手來(lái)編寫(xiě)一段程序,真的是很困難,連最起碼的指令都記不全。但是,經(jīng)過(guò)這幾天的不斷復(fù)習(xí),回顧以前學(xué)過(guò)的東西,慢慢的,對(duì)其熟悉程度也提升了,能從什么都不會(huì),慢慢的開(kāi)始的編寫(xiě)簡(jiǎn)單的程序了,會(huì)用軟件對(duì)程序進(jìn)行調(diào)試,能解決常見(jiàn)的錯(cuò)誤。其次,我最大的感觸

溫馨提示

  • 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ù)僅提供信息存儲(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)論