彙編語言加減乘除四則運算課程設計

彙編語言加減乘除四則運算課程設計

《彙編語言加減乘除四則運算課程設計》是用彙編語言進行編輯加減乘除四則運算的程式設計

格式,案例,

格式

課程設計指導書
姓 名
學號
班級
課程名稱
彙編語言
課程性質
課程設計
設計時間
2011年12月15日—— 2011 年12月22日
設計名稱
加減乘除四則運算
設計目的
實現16進制數的加減乘除運算
設計要求
完成加減乘除運算
設計思路與設計過程
本次設計要求系統實現的功能如下:從鍵盤接受十六進制數。能實現加、減、乘、除四則運算。執行時,能在檔案名稱後顯示計算表達式。按Q鍵退出程式
計畫與進度
12月15日~12月16日:收集資料,方案選擇12月17日~1月18日:整體流程,程式細節12月19日~1月22日:調試程式,報告撰寫12月末:交設計報告
任課教師意 見
備 注
課程設計報告
課程: 彙編語言
學號:
姓名:
班級:
教師:
時間: 2011/12/22

案例

設計名稱:加減乘除四則運算
日期:2011 年12 月22 日
設計內容:
(1)建立一個DOS下的選單界面,界面要顯示各功能鍵的作用和提示信息。 (2)在十六進制的四則運算中,要輸入兩個數,故要用兩個暫存器來存儲, 第一個數由SI指向,第二個數存放在BX中,這樣可以使計算更加方便。 (3) 將十六進制存放到暫存器時,採用的是移位存放的方法。例如:將EF22H 存放到BX中,首先要輸入的是E,存放在AL中後,用CBW擴展,然後 將BX左移四位,再加上AX,即BX為000EH,然後輸入第二個數F,同 上讓BX移四位,再加上AX,得BX為00EFH,以此類推,可將EF22存 入BX中。 (4)在顯示BX暫存器的內容時,例如BX中存放的是EF22,那么首先讓其 循環左移四位,即BX變為F22E,然後讓BL賦給AL,在讓AL加上0FH, 即禁止了AL的高四位,使其為零,然後判斷是字母還是數字,做相應 的處理,輸出AL中的內容即可。後三位輸出的同上。 (5)螢幕上顯示計算式需利用多字元輸出功能,結果需轉換成十六進制。 (6)退出時按Q,選擇Y/N。
設計目的與要求:
本次設計要求系統實現的功能如下:從鍵盤接受十六進制數。能實現加、減、乘、除四則運算。執行時,能在檔案名稱後顯示計算表達式。按Q鍵退出程式。
設計環境或器材、原理與說明:
本次設計需要實現的模組圖圖如所示 四則運算器程式設計算法選擇設定數制轉換設定 界面設定
(1)界面設定 主要實現確定界面樣式的功能,以選單形式顯示。算法選擇設定 用於選擇加、減、乘、除來進行運算。(3)數制轉換設定 套用十進制的轉換算法來處理加、減、乘、除四則運算。
流程圖:
開 始 初始化 輸入算法選擇鍵X 十六進制加法Y X=1? X=2?X=3? X=4 ?X=Q/q?X=Y/y? 輸入第一個數 十六進制減法 十六進制乘法 十六進制除法提示出錯!Y Y Y N N N N N Y Y N輸入第二個數 結 束顯示計算式和計算結果
實驗器材:
計算機
設計過程(步驟)或程式代碼(可以加頁)
IN16 MACRO
LEA DX,PR
CALL OUTPUT
LEA DX,INPUT1
CALL OUTPUT
CALL INPUT
LEA SI,RESULT
MOV [SI],BX
LEA DX,PR
CALL OUTPUT
LEA DX,INPUT2
CALL OUTPUT
CALL INPUT
ENDM
DATA SEGMENT
BUF DB '*------- WELCOME TO CALCULATOR SYSTEM ---------*',0DH,0AHDB '*---1:ADD--2:SUB--3:MUL--4:DIV--Q:QUIT---------*',0DH,0AHDB '*------- IT*2011-1*WEIGUANG-------------------*',0DH,0AHDB 0DH,0AH,'Please input the select number:','$'INPUT1 DB 'Please input the first number xiao yu 4 wei:','$'INPUT2 DB 'Please input the second number xiao yu 4 wei:','$'RESULT DW ?,?WRO DB 'The number you input is wrong,please input again:',0DH,0AH,'$'PR DB 0DH,0AH,'$'PR1 DB 'A + B=$'PR2 DB 'A - B=$'PR3 DB 'A * B=$'PR4 DB 'A / B=$'PR5 DB '......$'PR6 DB 'Are you sure to exit?(Y/N)$'
DATA ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE ,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,BUF
CALL OUTPUT
SUB AX,AX
CALL CHOOSE
JMP START
RET
MAIN ENDP
INPUT PROC NEAR
MOV BX,0
NEWCHAR:MOV AH,1
INT 21H
CMP AL,0DH
JE EXIT
CMP AL,'A'
JAE H0
CMP AL,'0'
JAE H1
H0: SUB AL,37H
JMP ADDTO
H1: SUB AL,30H
JMP ADDTO
ADDTO:MOV CL,4
SHL BX,CL
MOV AH,0
ADD BX,AX
JMP NEWCHAR
EXIT: RET
INPUT ENDP
OUTPUT PROC NEAR
MOV AH,09H
INT 21H
RET
OUTPUT ENDP
CHOOSE PROC NEAR
MOV AH,1INT 21H
CMP AL,'1'
JE YES1
CMP AL,'2'
JE YES2
CMP AL,'3'
JE YES3
CMP AL,'4'
JE YES4
CMP AL,'q'
JE EXIT1
CMP AL,'Q'
JE EXIT1
CALL WRONG
EXIT1: LEA DX,PR
CALL OUTPUT
LEA DX,PR6
CALL OUTPUT
MOV AH,1INT 21H
CMP AL,'Y'
JE EXIT0
CMP AL,'y'
JNE START
EXIT0: MOV AH,4CH
INT 21H
YES1: CALL JIAJ
MP START
YES2: CALL JIAN
JMP START
YES3: CALL CHENGJMP START
YES4: CALL CHU
RET
CHOOSEENDP
WRONG PROC NEAR
LEA DX,PR
CALL OUTPUT
LEA DX,WRO
CALL OUTPUT
JMP START
RET
WRONG ENDP
JIA PROC NEARIN16
ADD BX,[SI]
LEA DX,PR
CALL OUTPUT
LEA DX,PR1
CALL OUTPUT
CALL OUTBX
RET
JIA ENDP
JIAN PROC NEARIN16
SUB BX,[SI]
NEG BX
LEA DX,PR
CALL OUTPUT
LEA DX,PR2
CALL OUTPUT
CALL OUTBX
RETJ
IAN ENDP
CHENG PROC NEARIN16
MOV DX,0
MOVAX,BX
MUL WORD PTR[SI]
MOV BX,AX
PUSH BX
PUSH DX
LEA DX,PR
CALL OUTPUT
LEA DX,PR3
CALL OUTPUT
POP DX
MOV BX,DX
CALL OUTBX
POP BX
CALL OUTBX
RET
CHENG ENDP
CHUPROC NEARIN16
MOV AX,[SI]
MOV DX,0
DIV BX
PUSH DX
PUSH AX
LEA DX,PR
CALL OUTPUT
LEA DX,PR4
CALL OUTPUT
POP AX
MOV BX,AX
CALL OUTBX
LEA DX,PR5
CALL OUTPUT
POP DX
MOV BX,DX
CALL OUTBX
RETCHU
ENDP
OUTBX PROC NEAR
MOV CH,4
ROTATE:MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,3AH
JL PRINTIT
ADD AL,7H
PRINTIT:MOV DL,AL
MOV AH,2
INT 21H
DEC CHJ
NZ ROTATE
RETOUTBX
ENDP
CODE ENDS
END MAIN代碼用5號字單倍行距
設計結果與分析(可以加頁)操作說明: (1)按提示輸入1,2,3,4。(2)1:加法ADD。(3)2:減法SUB。(4)3:乘法MUL。(5)4:除法DIV。輸入一個小於4位的十六進制數,回車。再輸入一個小於4位的十六進制數,回車。顯示計算式和結果。退出按Q,選擇Y/N。 程式運行如下:加法:算法選擇1,按提示輸入兩個十六進制數,回車後顯示計算式 和結果。程式運行截圖如圖3所示。 圖3 加法程式截圖 (2)減法:算法選擇2,按提示輸入兩個十六進制數,回車後顯示計算式和 結果,若結果為負數,則螢幕上結果顯示為補碼。程式運行截圖如圖4 所示。 圖4 減法程式截圖 (3)乘法:算法選擇3,按提示輸入兩個十六進制數,回車後顯示計算式和 結果。程式運行截圖如圖5所示。 圖5 乘法程式截圖 (4)除法和退出:算法選擇3,按提示出入兩個十六進制數,回車後顯示計 算式和結果,結果包括商和餘數。按Q鍵,選擇Y,即可退出程式。程 序運行截圖如圖6所示。 圖6 除法及退出運行截圖 程式運行後可以看出,程式完成了十六進制加減乘除四則運算,按Q鍵,可以算則Y/N,選擇Y,則退出程式,選擇N,就繼續運行,也符合設計要求。同時,螢幕上可以顯示計算式和結果,也完成了設計要求。
設計體會與建議:彙編語言是一項實用性很強的技術,只有進行實際操作,將理論套用於實際中,才能確實掌握書中的知識點。通過做這次課程設計,我受益匪淺,讓我對彙編的知識有了更深的了解。在這幾天的時間裡,我遇到了很多的問題,可以說是一個接一個的來,這個解決了,可是又來了一個。有時候我覺得自己是沒法再寫下去了,但是,有時候我就是不會放棄的,有了不明白的地方,就和同學討論,這讓我更深切的體會到人與人之間的那種相互協調合作的機制。本次的彙編語言課程設計是通過大量的查閱資料和搜尋信息資料來完成的,在設計的過程使我掌握了許多的電腦基本技能及理解查閱資料的基本方法,同時經過我的不斷查閱,理解資料,加深了對彙編語言的理解與認識。在設計的整個過程中,我體會到了設計的快樂,和小小的成就感。我的課設利用了很多DOS的調用,有01H號的單字元輸入,09H號的多字元輸出,4CH的過程終止等,還有其他安逸些相關指令,在平時的學習中葉學到過,但是經過此次課設,我對彙編語言的了解會更加深刻。當然,在短時間裡不可能掌握彙編語言的全部,還需要在以後的學習中不斷地實踐和積累。
設計成績: 教師簽名:

相關詞條

熱門詞條

聯絡我們