网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

加减乘除四则运算

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
汇编语言四则运算源代码+流程图加减乘除四则运算1、设计内容   这个程序能实现加、减、乘、除的计算。2、功能分析   (1)开发环境:         硬件:IBM PC机及其系列机               ACSII键盘               单色显示器或者彩色显示器          软件:1M内存的硬盘或者1个软盘          MASM是汇编语言开发环境下的。汇编语言的特点: 1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计2.保持了机器语言的优点,具有直接和简捷的特点。 3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/         O端口等。 4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 5.经常与高级语言配合使用,应用十分广泛。      (2)总体设计功能            系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。            本设计的功能如下:             1、输入2个数,先判断是加减运算还是乘除运算,再进行计算             2、判断符号是否为运算符             3、回车为换行符             4、用十进制或十六进制输出运算结果      (3)详细设计功能            <1>主程序功能:对两个数的加减乘除四则运算设置            <2>子程序功能:分别判断是加减还是乘除的运算                           输出运算结果           各功能模块流程图如下:          4、调试和运行程序             (1)调试程序:            该汇编编译环境是MasmEdit,是一个集成开发环境,编译,链接,运行全部集成在一起。程序编好后,直接点汇编按钮,就会提示你有无错误,刚刚编好第一次汇编时,出现了好多错误,其中很大一部分是编写代码时不小心,打字出现的错,其中,分号的错误是致命的,它让汇编无法进行,不能用中文输入法打的注释分号,要用英文。参考网上的通讯录程序,在改了几天的代码后界面终于出现,但感觉界面不怎么友好,又改了一下界面和光标位置。             (2)运行程序              执行时,需在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:c:\masm>js 3+2
5c:\masm>js 6*7
2Ac:\masm>js 10-4
6c:\masm>js 12/34
       5、总结          第一次真正的感觉到自己是学计算机专业的,第一次真正自己完成一个大型的程序,刚开始拿到汇编程序设计题的时候确实有点儿兴奋,心想着一定要独立快速而又高质量的完成这个程序。开始的时候感觉一点头绪都没,一个劲的找例子,连平时上机时的邮箱都进不去了,郁闷了好阵子。后来就自己想了些以前用到的,可能有写不完全,但总算还是写下来了 基本算是完成了。        6、参考文献:          [1]  IBM-PC 汇编语言程序设计 沈美明等 清华大学出版社           [2]  《汇编语言程序设计学习指导》 宋彩莉  西安交通大学出版社          [3]  Intel汇编语言程序设计(第五版)  电子工业出版社  温玉杰 梅广宇等译著          [4]  《CASL汇编语言程序设计》清华大学出版社,王世业编著213
 
加减乘除四则运算 7、附录:源程序代码    B_P     EQU BYTE PTRW_P     EQU WORD PTRD_P     EQU DWORD PTRCODE    SEGMENTASSUME  CS:CODE,DS:CODE        ORG 100H;主程序开始NEWSTAR:        JMP STAR        EVENNUM1    DW 0,0NUM2    DW 0,0NUM3    DW 0,0JGV4    DW 0,0YSF     LABEL WORDYSF1    DB 0YSF2    DB 0JUV     DB 0UV      DB 0;使DS:SI指向第一有效字符OVERS   LABEL NEAR        CLD        PUSH AXOVERS1:        LODSB        CMP AL,' '        JZ OVERS1        CMP AL,9        JZ OVERS1        DEC SI        CMP AL,13        POP AX        RET;输出一个制表符TAB     LABEL NEAR        MOV AL,9        JMP SHORT DISP;输出一个回车换行符CRLF    LABEL NEAR        MOV AL,13        CALL DISP        MOV AL,10;显示一个字符DISP    LABEL NEAR        PUSH AX        PUSH DX        MOV AH,2        MOV DL,AL        INT 21H        POP DX        POP AX        RET;检查是否为运算符ISYSF   LABEL NEAR        CLD        LODSB        CALL ISJJ        JZ ISYSF1        CALL ISII        JZ ISYSF1        DEC SIISYSF1:        RET;检查是否是加减运算ISJJ    LABEL NEAR        CMP AL,'+'        JZ ISYSF1        CMP AL,'-'        RET;检查是否为乘除运算ISII    LABEL NEAR        CMP AL,'*'        JZ ISYSF1        CMP AL,'/'        JZ ISYSF1        CMP AL,'\'        RET;数据输出;CX=10 十进制;CX=16 十六进制DOUT    LABEL NEAR        PUSH AX        PUSH BX        PUSH DX        PUSH BP        XOR BP,BPDOUT1:        INC BP        PUSH AX        MOV AX,DX        XOR DX,DX        DIV CX        MOV BX,AX        POP AX        DIV CX        PUSH DX        MOV DX,BX        OR BX,AX        JNZ DOUT1lwfree.cn        ADD AL,'A'-'9'-1DOUT3:        CALL DISP        DEC BP        JNZ DOUT2        POP BP        POP DX        POP BX        POP AX        RET;输入数据在DX:AX中返回;CX=0 数据为10进制;CX#0 数据为16进制DATE    LABEL NEAR        PUSH BX        PUSH BP        PUSH DI        XOR AX,AX        XOR DX,DX
 
汇编语言程序设计DATE1:        MOV DI,AX        LODSB        CMP AL,'0'        JB DATE7        CMP AL,'9'        JA DATE6DATE2:        AND AX,0FH        SHL DI,1        RCL DX,1        MOV BX,DI        MOV BP,DX        SHL DI,1        RCL DX,1        SHL DI,1        RCL DX,1        JCXZ DATE3        SHL DI,1        RCL DX,1        Jmp short DATE4DATE3:        ADD DI,BX        ADC DX,BPDATE4:        ADD AX,DI        ADC DX,0        JMP DATE1DATE5:        ADD AL,9        JMP DATE2DATE6:        JCXZ DATE7        CMP AL,'A'        JB DATE7        CMP AL,'F'        JBE DATE5        CMP AL,'a'        JB DATE7        CMP AL,'f'        JBE DATE5DATE7:        MOV AX,DI        DEC SI        OR DI,DX        POP DI        POP BP        POP BX        RET;数据1与数据2根据YSF1进行加减运算JSJJ    LABEL NEAR        MOV AX,NUM2        MOV DX,NUM2+2        CMP YSF1,'+'        JZ JSJJ1        SUB NUM1,AX        SBB NUM1+2,DX        JMP SHORT JSJJ2JSJJ1:        ADD NUM1,AX        ADC NUM1+2,DXJSJJ2:        RET;数据1与数据2根据YSF1进行乘除运算JSII1   LABEL NEAR        MOV BX,OFFSET NUM1        JMP SHORT JSII2_1;数据2与数据3根据YSF2进行乘除运算JSII2   LABEL NEAR        MOV BX,OFFSET NUM2JSII2_1:        DB 66H        MOV AX,[BX]        DB 66H        MOV CX,[BX+4]        CMP YSF2,'*'        JNZ JSII2_2        DB 66H        IMUL CX        JMP SHORT JSII2_3JSII2_2:        DB 66H        CWD        DB 66H        IDIV CX        CMP YSF2,'/'        JZ JSII2_3        DB 66H        XCHG DX,AXJSII2_3:        DB 66H        MOV [BX],AX        RET;显示结果XUJG    LABEL NEAR        MOV AX,JGV4        MOV DX,JGV4+2        MOV CX,10        CMP UV,10        JZ XUJG0        MOV CX,16XUJG0:        TEST DX,8000H       lwfree.cn        CALL DOUTXUJG2:        NOT AX        NOT DX        ADD AX,1        ADC DX,0        PUSH AX        CMP UV,10        JZ XUJG3        MOV AL,' '        CALL DISP        MOV AL,'('        CALL DISPXUJG3:        MOV AL,'-'        CALL DISP        POP AX        CMP UV,10
 
汇编语言课程设计    JZ XUJG1        CALL DOUT        MOV AL,')'        CALL DISP        RETXUJG1:        CALL DOUT        RET;计算结果放入DX:AX中JSJG    LABEL NEAR        CALL JSJJ        MOV AX,NUM1        MOV DX,NUM1+2        RET;从DS:SI处取一个数据LOADATE LABEL NEAR        LODSB        CMP AL,'('        JZ LOADATE1        DEC SI        PUSH CX        XOR CX,CX        CMP UV,10        JZ LOADATE0        INC CX          ;取16进制数LOADATE0:        CALL DATE       ;取数据放入DX:AX中        POP CX        RETLOADATE1:        PUSH NUM1       ;保存数据1数据2及运算符        PUSH NUM1+2        PUSH NUM2        PUSH NUM2+2        PUSH YSF        INC JUV        MOV JGV4,0      ;结果值清零        MOV JGV4+2,0;进行四则运算SZYS    LABEL NEAR        CALL ISYSF      ;首字符是运算符?        JZ SZYS2        CALL LOADATE    ;不是,取数并保存        MOV NUM1,AX        MOV NUM1+2,DXSZYS1:        XOR AX,AX       ;数据2清零        MOV NUM2,AX        MOV NUM2+2,AX        CALL ISYSF      ;下个是运算符?        JZ SZYS3        JNZ SZYS6SZYS2:        PUSH AX        MOV AX,JGV4     ;将结果作为数据1        MOV NUM1,AX        MOV AX,JGV4+2        MOV NUM1+2,AX        POP AXSZYS3:        MOV YSF1,AL        MOV YSF2,AL        CALL ISJJ       ;是加减运算转        JZ SZYS4        CALL LOADATE    ;取数据2        MOV NUM2,AX        MOV NUM2+2,DX        CALL JSII1      ;数据1与数据2根据YSF1进行乘除运算        JMP SZYS1       ;    结果保存在数据1中SZYS4:        CALL LOADATE    ;取数据2并保存        MOV NUM2,AX        MOV NUM2+2,DXSZYS4_1:        CALL ISYSF        JNZ SZYS6        CALL ISJJ       ;运算符2是加减运算?        JNZ SZYS5       ;不是转        PUSH AX        CALL JSJJ       ;数据1与数据2根据YSF1进行加减运算        POP AX          ;    结果保存在数据1中        MOV YSF1,AL     ;保存新的运算符        JMP SZYS4SZYS5:        MOV YSF2,AL     ;保存运算符2        CALL LOADATE    ;取数据3        MOV NUM3,AX        MOV NUM3+2,DX        CALL JSII2      ;数据2与数据3根据YSF2进行乘除运算        JMP SZYS4_1     ;    结果保存在数据2中SZYS6:        MOV CL,AL        CMP AL,13        JNZ SZYS9SZYS7:        CALL JSJG        CMP JUV,0        JZ SZYS8        DEC JUV        POP YSF        POP NUM2+2        POP NUM2        POP NUM1+2        POP NUM1        RETSZYS8:lwfree.cn        JNZ SZYS11        INC SI        JMP SZYS7SZYS10:        MOV NUM1,AX        MOV NUM1+2,DX        JMP SZYS1SZYS11:        STC        RETSZYS12:
 
汇编语言四则运算源代码+流程图  CLC        RET;数制处理UVIL    LABEL NEAR        PUSH SIUVIL1:        LODSB        CMP AL,' '        JZ UVIL2        CMP AL,9        JZ UVIL2        CMP AL,13        JZ UVIL4        JNZ UVIL1UVIL2:        MOV BX,SI        CALL OVERS        JZ UVIL3        LODSW        CALL OVERS        POP SI        JNZ SZYS11        CMP AX,'01'        JNZ SZYS11        PUSH SI        MOV UV,10UVIL3:        MOV AL,13        MOV [BX-1],ALUVIL4:        POP SI        CLC        RET;预置结果YVJG    LABEL NEAR        MOV AH,52H        INT 21H        MOV AX,ES:[BX-2]        MOV DS,AX        MOV AX,DS:[0CH]        MOV CS:JGV4,AX        MOV AX,DS:[0EH]        MOV CS:JGV4+2,AX        PUSH CS        POP DS        PUSH CS        POP ES        RET;保存结果BCJG    LABEL NEAR        MOV AH,52H        INT 21H        MOV AX,ES:[BX-2]        MOV DS,AX        MOV AX,CS:JGV4        MOV DS:[0CH],AX        MOV AX,CS:JGV4+2        MOV DS:[0EH],AX        PUSH CS        POP DS        PUSH CS        POP ES        RETSTAR:        MOV SI,81H        CLD        CALL OVERS        JNZ STAR1STAR0:        MOV DX,OFFSET MESS1        JMP STAR4STAR1:        CALL YVJG        CALL UVIL        JB STAR0        MOV SAVESP,SP        CALL SZYS        MOV SP,SAVESP        MOV DX,OFFSET MESS2        JB STAR4        CALL CRLF        CALL XUJG        CALL BCJG        MOV DX,OFFSET MESS3STAR4:        MOV AH,9        INT 21H        INT 20HSAVESP  DW 0MESS1   DB 13,10,'  Syntax:',13,10        DB '     JS    [10]',13,10,'
  • 上一篇资讯: 贝叶斯算法(bayesian)介绍
  • 下一篇资讯: PSK(DPSK)调制与解调
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师
    MESS2   DB 'Error in expression !
  • 上一篇资讯: 贝叶斯算法(bayesian)介绍
  • 下一篇资讯: PSK(DPSK)调制与解调
  • 相关资讯

    网学推荐

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师
    MESS3   DB 13,10,'
  • 上一篇资讯: 贝叶斯算法(bayesian)介绍
  • 下一篇资讯: PSK(DPSK)调制与解调
  • 相关资讯

    网学推荐

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师
    CODE    ENDS END NEWSTAR
  • 上一篇资讯: 贝叶斯算法(bayesian)介绍
  • 下一篇资讯: PSK(DPSK)调制与解调
  • 相关资讯

    网学推荐

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师