- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(汇编语言课程设计
《 汇编语言》课程设计
任
务
书
一、题目
1.简单的计算器
2.字典
3.“Pc”钢琴
二、目的:
本次课程设计的目的是提高学生分析问题、解决问题的能力以及实际动手能力,进一步加深学生对汇编语言程序设计基本理论的理解,使学生熟练掌握汇编语言程序上机调试的方法技巧、结构化程序设计技术及高级汇编语言技术,能编写较复杂的应用程序,为学习后继课程打下扎实的基础。
三、已知技术参数和设计要求:
1.编写一个有符号多位十进制数的四则运算计算器程序,所输入的算式如下例所示:
-278+32=
-132――12=
11*-32=
-1234/-18=
要求程序能接收键入的算式,在接收到‘=’号时,计算并以有符号十进制数的形式显示结果,然后允许用户继续键入算式。如果键入算式后再键入‘.’,则显示结果并结束整个程序。(‘/’为整除)
2.已知一个由英语单词组成的字符串已按字典序排好,每个单词以空格符为结束,该串的首二字节为16位无符号二进制数,用以说明串的长度。试编程能从键盘上输入单词(以空格字符为结束),若字符串中没有该单词,则将该单词插入该串适当的位置,使其仍保持字典序,并修改串长度,显示单词在串中位置及串长度;若字符串中有该单词,则显示字符串中所有包含该单词的单词,及其在字符串中的位置。
3.编写程序,程序运行时使PC机成为一架可弹奏的“钢琴”。当按下数字键0~9时,发出6,7,1,2,3,4,5,6,7,i,十个音调,按‘.’则退出“钢琴”状态。
总体要求
1)程序结构清晰,相对独立的功能应尽量用子程序实现
2)有较多提示信息,以方便用户使用
3)能检测用户输入的错误,并作相应处理
4)每个程序应作较多测试,以证明程序的正确性
实验一:
源代码:
DATA SEGMENT
SIG DB 00H ;用来记录要进行的运算
NUM1 DW 0 ;用来记录输入的第一个数
NUM2 DW 0 ;用来记录输入的第二个数
X DB 10 ;当输入的下一个数字时,大小为前一个数需要乘10
DATA ENDS ;再加上当前的数
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
START:
MAINT1: MOV AH,1 ;输入要运算的算式
INT 21H
MAINT3: CMP AL,30H ;和0作比较
JL L1 ;小于0时转去L1
CMP AL,3DH
JZ MAINT2 ;当输入”=”时转去MAINT2进行计算结果
CALL BIN ;调用子程序BIN,计算数值真实大小
CMP DX,1
JNZ L5
NEG BX ;当DX为1使需对BX进行取反
MOV DX,0 ;恢复DX
L5: CMP CX,1
JZ L3
MOV NUM2,BX ; CX不等于1时记录当前输入的第二个数
JMP MAINT3
L3: MOV NUM1,BX ;记录当前输入的第一个数
JMP MAINT3
L1: CMP AL,2EH
JZ quit ;当输入的字符为”.”时转去quit,即程序运行结束
CMP CX,1
JNZ L2
MOV SIG,AL ;当CX不等于1时,即为当前要进行的运算
MOV CX,2
JMP MAINT1 ;返回MINT1继续输入算式
L2: CMP AL,2DH
JNZ MAINT1
MOV DX,1
JMP MAINT1
quit: MOV AH,4CH ;程序运行结束
INT 21H
MAINT2:
CMP SIG,+ ;SIG为”+”时进行加法操作
JNZ S1
MOV AX,NUM1
MOV BX,NUM2
ADD AX,BX
JMP MAINT4
S1: CMP SIG,- ;SIG为”-”时进行减法操作
JNZ S2
MOV AX,NUM1
SUB AX,NUM2
JMP MAINT4
S2: CMP SIG,* ;SIG为”*”时进行乘法操作
JNZ S3
MOV AX,NUM1
MOV DX,0
IMUL NUM2
JMP MAINT4
S3: MOV AX,NUM1 ;否则进行除法运算
MOV BX,NUM2
IDIV BL
CBW
MAINT4:
MOV BP,SP ;当数为负数时进行取反操作
TEST AX,8000H
JZ OUT2
MOV BX,AX
MOV DL,-
MOV AH,2
INT 21H
MOV AX,BX
NE
文档评论(0)