iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >汇编语言怎么实现简单数学运算
  • 615
分享到

汇编语言怎么实现简单数学运算

2023-06-21 21:06:06 615人浏览 薄情痞子
摘要

这篇文章主要介绍“汇编语言怎么实现简单数学运算”,在日常操作中,相信很多人在汇编语言怎么实现简单数学运算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”汇编语言怎么实现简单数学运算”的疑惑有所帮助!接下来,请跟

这篇文章主要介绍“汇编语言怎么实现简单数学运算”,在日常操作中,相信很多人在汇编语言怎么实现简单数学运算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”汇编语言怎么实现简单数学运算”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

5.计算S=1+2×3+3×4+4×5+···+N(N+1)

5.1设计要求:

设计程序,实现数学公式S=1+2×3+3×4+4×5+···+N(N+1)的算法。数值N由加键盘输入,计算结果在显示终端输出。设计要求:计算结果不超过十六位寄存器的存储能力,如有溢出提示错误。

5.2设计思路:

输入N值然后把N给BH作为循环次数,通过循环实现乘和累加计算,结果为十六进制,通过除以10得到十进制,存入堆栈再依次输出。

汇编语言怎么实现简单数学运算

5.3程序清单:

DATA SEGMENT     pkey   DB  0dh,0ah,"pleas input N end by ';' :$"     over   DB  0AH,0DH,"overflow!",0dh,0ah,'$'     result  DB  0dh,0ah,'result is:','$'     DAT1  DB  8 DUP(0)DATA ENDSSTACK SEGMENT    SSTACK DB 100 DUP(0)STACK ENDS CODE SEGMENT     ASSUME CS:CODE,DS:DATA,SS:STACK      STATE:      MOV AX,DATA    MOV DS,AX    LEA SI,DAT1     ;开辟缓冲区    LEA DX,pkey    MOV AH,9    INT 21H         ;DOS功能调用,输出字符串    LLP:MOV AH,1    INT 21H         ;DOS功能调用,输入N值    SUB AL,2FH          INC DX          ;DX计数    MOV [SI],AL     ;将输入的数据存在SI缓冲区    INC SI    CMP AL,0CH      ;输入为封号结束输入    JNZ LLP    SUB SI,2    CMP DX,02H      ;DX不为2表示输入为两位数    JNZ LLLP LLP1:MOV CX,1     MOV BL,2       ;赋初始值         JMP LPLLLP:     MOV DI,SI     SUB DI,1               SUB [DI],1     MOV AL,10     MUL [DI]     ADD [SI],AX     ;输入是两位数时十位乘10加个位     SUB AH,AH     JMP LLP1     LP: MOV BH,[SI]      ;把循环次数给BH    MOV AL,BL    INC BL    MUL BL           ;BL(加1)和AL(原值)相乘给AX    ADD CX,AX        ;AX和CX相加给CX,通过循环实现累加    JO  OOF         ;如果溢出重新输入    CMP BH,BL        ;判断是否达到N值    JNZ LP     MOV AX,CX    MOV CX,0AH    MOV BX,0                                   LOP:MOV DX,0    DIV CX         ;AX表示的32位数除以10,商放在AX,余数放在DX    INC BX    ADD DX,30H    PUSH DX           ;将余数依次压入栈    CMP AX,0    JNZ LOP           ;商不为0继续除10    LEA DX,result    MOV AH,9    INT 21H           ;DOS功能调用,输出字符串      OUTPUT:     POP DX     MOV AH,2     INT 21H          ;DX中数据依次出栈并显示     DEC BX     JNZ OUTPUT       ;出栈完成后停止     JMP STATE                 OOF:LEA DX,over    MOV AH,09H    INT 21H           ;DOS功能调用,溢出显示    JMP STATE           CODE ENDSEND STATE

5.4程序运行结果及分析:

乘法和累加计算根据流程图一步步赋值即可得到,在输入两位数和结果转十进制输出时遇到了麻烦,通过查找资料不断尝试,最终找到了简单的解决办法,即输入两位时移位累加,输出除以10存入堆栈并依次输出显示。

汇编语言怎么实现简单数学运算

图5 计算S=1+2×3+3×4+4×5+···+N(N+1)设计结果

6.计算N!

6.1设计要求:

掌握汇编语言实现高级语言中数学函数的方法。设计程序,实现数学公式N!=N(N-1)(N-2)······2*1的算法。数值N由键盘输入,计算结果在显示终端输出。设计要求:N的范围为0-65535,即不超出16位寄存器的存储容量。

6.2设计思路:

输入N值,通过循环实现阶乘并将计算结果存入AX,然后十六进制转十进制输出。

汇编语言怎么实现简单数学运算

6.3程序清单:

DATA SEGMENT     pkey   DB  0AH,0DH,"Please Input N(1-8):",'$'      result DB  0AH,0DH,"the results is:",'$'     over   DB  0AH,0DH,"overflow!",0AH,0DH,'$'DATA ENDS           STACK SEGMENT    SSTACK DB 100 DUP(0)STACK ENDS          CODE SEGMENT    ASSUME CS:CODE,DS:DATA,SS:STACK    STATE:        MOV AX,DATA       MOV DS,AX   ;数据段初始化       LEA DX,pkey       MOV AH,09H       INT 21H       ;DOS功能调用,显示字符串                MOV AH,1             INT 21H       ;DOS功能调用,输入N        SUB AL,30H       CMP AL,08H       JA  OOF       ;输入大于8溢出               XOR AH,AH          MOV BP,AX     ;赋循环计数值N给BP         LP:    MOV BX,BP       DEC BX       JZ  LLP       ;阶乘次数为BX,BX为0必须马上跳转       MUL BX        ;AX中存放阶乘结果(十六进制转十进制用)       DEC BP       JNZ LP LLP:   MOV CX,0       MOV BX,10       LLLP:  MOV DX,0            DIV BX        ;AX表示的32位数除以10,商放在AX,余数放在DX        ADD DX,30H           PUSH DX       ;将余数转换为ASCII码值并压入栈       INC CX       CMP AX,0      ;商不为0就继续除10       JNZ LLLP        MOV AH,09H       LEA DX,result        INT 21H       ;DOS功能调用,输出字符串       LOP:   POP DX                  MOV AH,2                                            INT 21H       ;DX各位出栈并显示       LOOP LOP            JMP STATE   OOF:   LEA DX,over       MOV AH,09H       INT 21H      ;DOS功能调用,溢出显示       JMP STATE    CODE ENDS     END STATE

6.4程序运行结果及分析:

阶乘部分是利用MUL指令AX中存放计算结果并实现阶乘,除阶乘计算部分外,其它部分和第五题类似,同样结果转十进制输出时遇到了麻烦,利用除以10存入堆栈再依次取出并显示来实现。

汇编语言怎么实现简单数学运算

图6 计算N!设计结果

到此,关于“汇编语言怎么实现简单数学运算”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 汇编语言怎么实现简单数学运算

本文链接: https://www.lsjlt.com/news/300694.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 汇编语言怎么实现简单数学运算
    这篇文章主要介绍“汇编语言怎么实现简单数学运算”,在日常操作中,相信很多人在汇编语言怎么实现简单数学运算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”汇编语言怎么实现简单数学运算”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-21
  • 汇编语言系列之汇编实现简单数学运算
    目录1.计算S=1+2×3+3×4+4×5+···+N(N+1)1.1设计要求:1.2设计思路:1.3程序清单:1.4程序运行结果及分析:2.计算N!2.1设计要求:2.2设计思路:...
    99+
    2024-04-02
  • 用Go语言编写的四则运算库:简单高效的数学计算工具
    用Go语言编写的四则运算库:简单高效的数学计算工具随着计算机技术的不断进步,数学计算在我们日常生活和工作中扮演着越来越重要的角色。无论是进行复杂的数据分析,还是进行简单的数据处理,数学计算都是不可或缺的一环。为了提高计算效率和准确度,我们需...
    99+
    2023-12-23
    Go语言 数学计算 四则运算
  • C语言实现数学表达式运算
    本文实例为大家分享了C语言实现数学表达式运算的具体代码,供大家参考,具体内容如下 1、开发思路: (假设有表达式 2 * 3 * ( 1 + 2) ) 数字要一个一个取出放在内存中,...
    99+
    2024-04-02
  • C语言实现简单计算器
    本文实例为大家分享了C语言实现简单计算器的具体代码,供大家参考,具体内容如下 实现效果如图: 实现代码如下: #include<stdio.h> #include...
    99+
    2024-04-02
  • R语言中向量和矩阵简单运算的实现
    一、向量运算 向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量。   1.R语言向量的产生方法 &...
    99+
    2024-04-02
  • c语言怎么实现switch反汇编
    这篇文章主要介绍“c语言怎么实现switch反汇编”,在日常操作中,相信很多人在c语言怎么实现switch反汇编问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c语言怎么实现switch反汇编”的疑惑有所帮助!...
    99+
    2023-06-08
  • C语言如何实现数学表达式运算
    C语言如何实现数学表达式运算,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。大家分享了C语言实现数学表达式运算的具体代码,具体内容如下开发思路: (假设有表达式 2 * 3 ...
    99+
    2023-06-21
  • python字符串怎么实现简单运算
    这篇文章将为大家详细讲解有关python字符串怎么实现简单运算,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long...
    99+
    2023-06-14
  • Go 语言简单实现Vigenere加密算法
    目录Vigenere 加密算法Go 代码Vigenere 加密算法 该密码由意大利密码学家 Giovan Battista Bellaso 于 1553 年发明,但几个世纪以来一直归...
    99+
    2024-04-02
  • 怎么用C语言实现简单的计算器功能
    这篇文章主要讲解了“怎么用C语言实现简单的计算器功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C语言实现简单的计算器功能”吧!简单计算器,实现简单的加减乘除功能,选择对应的运算符输...
    99+
    2023-06-29
  • python的简单四则运算语法树可视化怎么实现
    本文小编为大家详细介绍“python的简单四则运算语法树可视化怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“python的简单四则运算语法树可视化怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。简...
    99+
    2023-07-05
  • C语言实现简单的文本编辑器
    本文实例为大家分享了C语言实现简单的文本编辑器的具体代码,供大家参考,具体内容如下 预期实现三个功能,第一,可以对指定的行输入字符串;第二,删除指定行的字符串;第三,显示编辑器的行数...
    99+
    2024-04-02
  • C语言实现简单的学生学籍管理系统
    本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 一 .课题设计内容与主要功能 1.1问题描述: 通过该系统实现对学生学籍信息进行录入、显示、修改、...
    99+
    2024-04-02
  • 使用Shell怎么实现数学运算
    今天就跟大家聊聊有关使用Shell怎么实现数学运算,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Linux Shell中进行数学运算,通常可以使用的运算符有:简单运算: let[]...
    99+
    2023-06-08
  • c语言重载运算符怎么实现
    C语言不支持重载运算符,只能通过函数来实现类似的功能。例如,可以通过定义一个函数来代替重载的加法运算符: #include ty...
    99+
    2023-10-25
    c语言
  • 用C语言实现简单的计算器功能
    本文实例为大家分享了C语言实现简单的计算器功能的具体代码,供大家参考,具体内容如下 简单计算器,实现简单的加减乘除功能,选择对应的运算符输出运算符对应的编号,然后输入我们要计算的两个...
    99+
    2024-04-02
  • C语言实现简单猜数字游戏
    前言 对于c语言初学者来说用c语言实现猜数字游戏是基本的问题,本篇文章会细致的讲解如何用代码来实现猜数字游戏。希望读者在阅读本篇博客前学习玩分支与循环和最基本的c语言语法知识。 提示...
    99+
    2024-04-02
  • Python中怎么实现数学集合运算
    这篇文章将为大家详细讲解有关Python中怎么实现数学集合运算,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。&lsquo;union()&rsquo;返回一个新集合...
    99+
    2023-06-16
  • 汇编语言怎么实现各种码制的转换
    本篇内容主要讲解“汇编语言怎么实现各种码制的转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“汇编语言怎么实现各种码制的转换”吧!1.十六进制转换为二进制数设计1.1设计要求:设计转换程序,将键...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作