汇编语言四则运算

合集下载

四则运算c语言编程

四则运算c语言编程

四则运算c语言编程四则运算是数学中常见的基本运算,也是编程语言中必须掌握的基本知识。

在C语言中,四则运算包括加、减、乘、除四个基本运算。

本文将介绍C语言中四则运算的使用方法和注意事项。

加法运算加法运算是最基本的运算之一,C语言中使用“+”符号进行加法运算。

例如,计算两个整数a和b的和,可以使用以下代码:int a = 5;int b = 3;int sum = a + b;printf("sum = %d\n", sum);在这个例子中,首先定义了两个整数a和b,并将它们相加得到sum变量的值。

最后使用printf函数将sum的值输出到屏幕上。

减法运算减法运算也是常见的运算之一,C语言中使用“-”符号进行减法运算。

例如,计算两个整数a和b的差,可以使用以下代码:int a = 5;int b = 3;int diff = a - b;printf("diff = %d\n", diff);在这个例子中,首先定义了两个整数a和b,并将它们相减得到diff变量的值。

最后使用printf函数将diff的值输出到屏幕上。

乘法运算乘法运算也是常见的运算之一,C语言中使用“*”符号进行乘法运算。

例如,计算两个整数a和b的积,可以使用以下代码:int a = 5;int b = 3;int product = a * b;printf("product = %d\n", product);在这个例子中,首先定义了两个整数a和b,并将它们相乘得到product变量的值。

最后使用printf函数将product的值输出到屏幕上。

除法运算除法运算也是常见的运算之一,C语言中使用“/”符号进行除法运算。

例如,计算两个整数a和b的商,可以使用以下代码:int a = 5;int b = 3;int quotient = a / b;printf("quotient = %d\n", quotient);在这个例子中,首先定义了两个整数a和b,并将它们相除得到quotient变量的值。

四则运算器代码

四则运算器代码

四则运算器代码简单的四则运算器可以执行加、减、乘、除四种基本运算。

使用python和C++编写实例:(一)使用python编写:# 定义函数实现加法def add(x, y):return x + y# 定义函数实现减法def subtract(x, y):return x - y# 定义函数实现乘法def multiply(x, y):return x * y# 定义函数实现除法def divide(x, y):if y == 0:raise ValueError('除数不能为0')return x / y# 主程序,输入两个数和运算符,输出运算结果或错误信息while True:try:num1 = float(input('请输入第一个数:'))num2 = float(input('请输入第二个数:'))op = input('请输入运算符(+、-、*、/):')if op == '+':result = add(num1, num2)elif op == '-':result = subtract(num1, num2)elif op == '*':result = multiply(num1, num2)elif op == '/':result = divide(num1, num2)else:print('无效的运算符')continueprint('运算结果:', result)except ValueError as e:print('输入错误:', e)except Exception as e:print('程序错误:', e)在上面的代码中,我们定义了四个函数分别实现加、减、乘、除四种基本运算。

四则运算的实现

四则运算的实现

四则运算的实现在数学运算中,四则运算是最基本也是最常见的运算之一。

它包括加法、减法、乘法和除法四种运算方式。

在计算机科学领域,实现四则运算是编程语言中一个非常基础和核心的功能。

本文将介绍四则运算的实现原理及其在计算机编程中的应用。

一、加法运算的实现加法运算是最简单的运算之一,通常用符号“+”表示。

在编程中,实现两个数的加法运算可以通过以下步骤:1. 输入两个待加数。

2. 将两个数相加得到和。

3. 输出和作为运算结果。

以下是一个示例代码,演示了如何实现加法运算:```pythona = int(input("请输入第一个数:"))b = int(input("请输入第二个数:"))sum = a + bprint("两数之和为:", sum)```二、减法运算的实现减法运算是在两个数之间进行相减的操作,通常用符号“-”表示。

在编程中,实现两个数的减法运算可以通过以下步骤:1. 输入被减数和减数。

2. 将被减数减去减数得到差。

3. 输出差作为运算结果。

以下是一个示例代码,演示了如何实现减法运算:```pythona = int(input("请输入被减数:"))b = int(input("请输入减数:"))difference = a - bprint("两数之差为:", difference)```三、乘法运算的实现乘法运算是将两个数相乘的操作,通常用符号“×”表示。

在编程中,实现两个数的乘法运算可以通过以下步骤:1. 输入两个待乘数。

2. 将两个数相乘得到积。

3. 输出积作为运算结果。

以下是一个示例代码,演示了如何实现乘法运算:```pythona = int(input("请输入第一个数:"))b = int(input("请输入第二个数:"))product = a * bprint("两数之积为:", product)```四、除法运算的实现除法运算是将被除数除以除数的操作,通常用符号“÷”表示。

汇编语言课程设计四则运算计算器

汇编语言课程设计四则运算计算器

*******************实践教学*******************兰州理工大学技术工程学院2013年春季学期汇编语言实训课程设计题目:四则运算计算器专业班级:计算机科学与技术姓名:___郭利强_____学号: 11730108指导教师:刘树群成绩:计算机科学与技术专业(11级)汇编语言实训课程设计任务书题目:四则运算计算器班级: 11计算机科学与技术1班学生姓名:郭利强学号: 11730108 题目类型:软件工程(R)指导教师:刘树群一.题目简介四则运算计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。

通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对汇编语言基本语言要素和流程结构的理解,针对汇编语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。

得到软件工程的综合训练,提高解决实际问题的能力。

二.设计任务1、查阅文献资料,一般在5篇以上;2、要求可以进行四则运算;3、完成软件结构设计和算法设计;4、完成系统的软件开发和测试工作;5、撰写设计说明书;6、做好答辩工作。

三.主要内容、功能及技术指标1、实现功能及指标:①使用Win32的窗口程序模式,实现四则运算程序的设计与开发;②界面友好。

2、问题分析及解决方案框架确定:充分地分析和理解问题本身,弄清要求做什么。

在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。

最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系,并画出函数之间的调用关系图。

3、详细设计和编码:定义相应的存储结构,确定各个函数的算法,并画出流程图,在此基础上进行代码设计,每个明确的功能模块程序一般不超过200行,否则要进一步划分。

4、上机前程序静态检查:上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。

静态检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。

js的四则运算

js的四则运算

js的四则运算JS是一种广泛应用于网页开发的脚本语言,它具备强大的四则运算能力。

在本文中,我们将探讨JS中的四则运算,并介绍一些常见的运算符和操作。

四则运算是数学中最基本的运算方式,包括加法、减法、乘法和除法。

在JS中,我们可以使用加号(+)进行加法运算,减号(-)进行减法运算,星号(*)进行乘法运算,斜杠(/)进行除法运算。

让我们来看看加法运算。

在JS中,加法运算可以用于两个数值的相加,也可以用于字符串的连接。

例如,我们可以使用加法运算符将两个数字相加,如下所示:```javascriptlet num1 = 10;let num2 = 20;let sum = num1 + num2;console.log(sum); // 输出30```加法运算符也可以用于字符串的连接。

例如:```javascriptlet str1 = "Hello";let str2 = "World";let result = str1 + " " + str2;console.log(result); // 输出 "Hello World"```接下来,让我们来看看减法运算。

在JS中,减法运算可以用于两个数值的相减。

例如:```javascriptlet num1 = 10;let num2 = 5;let difference = num1 - num2;console.log(difference); // 输出5```然后,让我们来看看乘法运算。

在JS中,乘法运算可以用于两个数值的相乘。

例如:```javascriptlet num1 = 10;let num2 = 3;let product = num1 * num2;console.log(product); // 输出30```让我们来看看除法运算。

在JS中,除法运算可以用于两个数值的相除。

四则运算

四则运算

实验一、四则运算一、实验目的1.熟悉汇编语言上机操作的过程。

2.熟悉DEBUG程序对程序进行调试。

3.熟悉汇编语言源程序的框架结构。

二、实验内容无符号数的加,减,乘,除四则运算练习,采用寄存器寻址。

编程,顺序执行32位加法,32位减法,16位乘以16位乘法,32位除以16位除法。

注意程序的标准结构语句。

三、实验源程序DA TA SEGMENTA DW 1234H,5678H ;被加数B DW 0FEDCH,0123AH ;加数C DW 2 DUP(?) ;和数(预留)AD DW 0FEDCH,0BA98H ;被减数BD DW 1234H,789AH ;减数CD DW 2 DUP(?) ;差A1 DW 0D687H ;被乘数B1 DW 0012H ;乘数C1 DW 2 DUP(?) ;积A2 DW 5678H,0234H ;被除数B2 DW 0F234H ;除数C2 DW 2 DUP(?) ;商DA TA ENDSSTACK SEGMENT PARA STACK ‘STACK’DB 100DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA, SS:STACKSTART PROC FARPUSH DSMOV AX,0PUSH AXMOV AX,DA TA ;标准序MOV AX,AADD AX,BMOV C,AXMOV AX,A+2ADC AX,B+2MOV C+2,AX;32位加法MOV AX,ADSUB AX,BDMOV CD,AXMOV AD,AX+2SBB AX,BD+2MOV CD+2,AX;32位减法MOV AX,A1MUL B1MOV C1,AXMOV C1+2,DX;16位乘以16位MOV AX,A2MOV DX,A2+2DIV B2MOV C2,AXMOV C2+2,DX;32位除以16位RETSTART ENDPCODE ENDSEND START四、实验要求1.调用一个编辑软件键入源程序。

复数的四则运算编程

复数的四则运算编程

复数的四则运算编程复数的四则运算包括加法、减法、乘法和除法。

在编程中,可以使用类或结构体来表示复数,并实现相应的运算方法。

以下是一个简单的 TypeScript 示例:class ComplexNumber {constructor(public real: number, public imaginary: number) {}// 加法add(other: ComplexNumber): ComplexNumber {return new ComplexNumber(this.real + other.real, this.imaginary + other.imaginary);}// 减法subtract(other: ComplexNumber): ComplexNumber {return new ComplexNumber(this.real - other.real, this.imaginary - other.imaginary);}// 乘法multiply(other: ComplexNumber): ComplexNumber {const realPart = this.real * other.real - this.imaginary * other.imaginary;const imaginaryPart = this.real * other.imaginary + this.imaginary * other.real;return new ComplexNumber(realPart, imaginaryPart);}// 除法divide(other: ComplexNumber): ComplexNumber {const denominator = other.real ** 2 + other.imaginary ** 2;const realPart = (this.real * other.real + this.imaginary * other.imaginary) / denominator;const imaginaryPart = (this.imaginary * other.real - this.real * other.imaginary) / denominator;return new ComplexNumber(realPart, imaginaryPart);}// 字符串表示toString(): string {return `${this.real} + ${this.imaginary}i`;}}// 使用示例const complex1 = new ComplexNumber(3, 4);const complex2 = new ComplexNumber(1, 2);console.log(`Addition: ${complex1.add(complex2)}`);console.log(`Subtraction:${complex1.subtract(complex2)}`);console.log(`Multiplication:${complex1.multiply(complex2)}`);console.log(`Division: ${complex1.divide(complex2)}`);在这个示例中,我们定义了一个 ComplexNumber 类,表示复数。

汇编语言设计算术运算指令

汇编语言设计算术运算指令

汇编语言设计算术运算指令汇编语言是一种低级语言,它与计算机硬件直接相关,用于编写底层程序。

在汇编语言中,设计算术运算指令是非常重要的,因为这些指令能够执行基本的数学运算,并且是编写其他复杂指令的基础。

本文将介绍汇编语言中的算术运算指令的设计方法和实现原理。

一、加法指令加法是最基本的数学运算之一,也是计算机中最常用的运算之一。

在汇编语言中,加法指令用于将两个操作数相加,并将结果存储到指定的目的地。

下面是一个示例程序,演示了如何使用加法指令:```MOV AX, 5 ; 将操作数5移动到寄存器AXADD AX, 3 ; 将寄存器AX中的值与操作数3相加```在这个示例中,我们首先将操作数5移动到寄存器AX中,然后使用ADD指令将寄存器AX中的值与操作数3相加。

最后的结果将存储在寄存器AX中。

二、减法指令减法是另一种常见的数学运算,它用于计算两个数之间的差值。

在汇编语言中,减法指令类似于加法指令,可以通过指定操作数和目的地来实现减法运算。

下面是一个示例程序,演示了如何使用减法指令:```MOV AX, 7 ; 将操作数7移动到寄存器AXSUB AX, 2 ; 将寄存器AX中的值减去操作数2```在这个示例中,我们首先将操作数7移动到寄存器AX中,然后使用SUB指令将寄存器AX中的值减去操作数2。

最后的结果将存储在寄存器AX中。

三、乘法指令乘法是将两个数相乘得到积的运算。

在汇编语言中,乘法指令用于实现乘法运算,并将结果存储到指定的目的地。

下面是一个示例程序,演示了如何使用乘法指令:```MOV AX, 4 ; 将操作数4移动到寄存器AXMOV BX, 2 ; 将操作数2移动到寄存器BXMUL BX ; 将寄存器AX中的值与寄存器BX中的值相乘```在这个示例中,我们首先将操作数4移动到寄存器AX中,然后将操作数2移动到寄存器BX中。

接着使用MUL指令将寄存器AX中的值与寄存器BX中的值相乘。

最后的结果将存储在寄存器AX中。

四则运算解析及计算

四则运算解析及计算

四则运算解析及计算四则运算是中缀表达式,需要将其转化为后缀表达式。

原因是计算中缀表达式很困难。

明确运算符的优先级:优先级(数字越⼤,优先级越⾼)运算符2+-1*/0()格式化四则表达式输⼊的表达式可能出现⽆⽤的字符,需要去除否则影响下⾯的判断逻辑。

处理⽅法为,遍历整个字符串,删除换⾏、空格和制表符。

后缀表达式转化中缀表达式转化为后缀表达式的基本步骤如下:1.初始化⼀个运算符栈。

2.从输⼊的表达式的字符串中依次从左向右每次读取⼀个字符。

3.如果当前读取的字符是操作数,则直接填写到后缀表达式中 (如果后缀表达式末尾已经有操作数,需要使⽤逗号分隔开)。

4.如果当前字符是“(”左括号,将其压⼊运算符栈。

5.如果当前字符为运算符,则分三种情况:(1)当前运算符栈为空,将其压⼊运算符栈。

(2)当前运算符的优先级⼤于栈顶元素,则将此运算符压⼊运算符栈;否则,弹出栈顶的运算符到后缀表达式,反复弹出,直到该运算符优先级⼤于栈顶元素或者栈为空时,然后将当前运算符压栈。

回到步骤2继续读取。

(3)如果上⼀次读到的也是运算符,则中缀表达式错误直接返回6.如果当前字符是“)”右括号,反复将栈顶元素弹出到后缀表达式,直到栈顶元素是左括号“(”为⽌,并将左括号从栈中弹出丢弃。

如果找不到“(”则中缀表达式错误直接返回7.如果读取还未完成,回到步骤2.8.如果读取完成,则将栈中剩余的运算符依次弹出到后缀表达式。

※如果表达式中出现负数或者⼩数,需对负数和⼩数点采取特殊处理:(1)如果是负数,需要把“-”⼀起存放到后缀表达式中同时还要添加⼀个特殊字符“!”⽤于标记负数。

两种情况下出现“-”可判定为负数。

A.“-”为⾸字符且下⼀个字符为数字;B.“-”为⾮⾸字符且位于“(”之后且后⼀个字符为数字;(2)如果有⼩数,需要记录⼩数点的位数举例:输⼊的四则表达式是 -15. *((-5+.6)*87-(-4.592+3.33)*8)处理后的后缀表达式为:!-15.,!-5,.6,+87,*!-4.592,3.33,+8,*-*后缀表达式求值:从左到右读取1、设置⼀个栈,开始时,栈为空;2、然后从左到右读取后缀表达式,若遇操作数,则进栈;3、若遇运算符,则从栈中退出两个元素,先退出的放到运算符的右边,后退出的放到运算符左边,运算后的结果再进栈,直到后缀表达式扫描完毕;4、最后,栈中仅有⼀个元素,即为运算的结果。

vba 四则混合运算

vba 四则混合运算

vba 四则混合运算VBA(Visual Basic for Applications)是一种用于Microsoft Office套件中的宏编程语言。

它可以用于自动化和定制化Office 应用程序,包括Excel、Word和PowerPoint等。

在本文中,我们将探讨如何使用VBA进行四则混合运算。

四则混合运算是指同时使用加减乘除四种基本运算符进行计算的运算。

在VBA中,我们可以使用这些运算符来进行数值计算,从而实现各种复杂的计算任务。

我们需要了解VBA中的运算符。

在VBA中,加法运算使用"+"符号表示,减法运算使用"-"符号表示,乘法运算使用"*"符号表示,除法运算使用"/"符号表示。

通过使用这些运算符,我们可以在VBA程序中进行各种数值计算。

让我们以一个简单的例子开始。

假设我们有两个变量A和B,它们分别存储了两个数字。

现在,我们想要将这两个数字相加并将结果存储在一个新的变量C中。

我们可以使用VBA的加法运算符来实现这个任务,代码如下:```Dim A As IntegerDim B As IntegerDim C As IntegerA = 10B = 5C = A + BMsgBox "两个数字的和为:" & C```在这个例子中,我们首先声明了三个整型变量A、B和C。

然后,我们给变量A和B赋值,分别为10和5。

接下来,我们使用加法运算符将A和B相加,并将结果存储在变量C中。

最后,我们使用MsgBox函数输出结果。

除了加法运算,VBA还支持减法、乘法和除法运算。

我们可以使用类似的方法来进行这些运算。

下面是一个进行四则混合运算的示例代码:```Dim A As DoubleDim B As DoubleDim C As DoubleA = 10.5B = 2.5C = (A + B) * (A - B) / (A * B)MsgBox "四则混合运算的结果为:" & C```在这个例子中,我们首先声明了三个双精度浮点型变量A、B和C。

四则运算的实现

四则运算的实现

四则运算的实现四则运算的实现可以通过编写一个简单的计算器程序来实现。

下面是一个基本的四则运算实现的示例代码:```pythondef addition(num1, num2):return num1 + num2def subtraction(num1, num2):return num1 - num2def multiplication(num1, num2):return num1 * num2def division(num1, num2):if num2 != 0:return num1 / num2else:return "除数不能为零"while True:print("请选择要进行的运算:")print("1. 加法")print("2. 减法")print("3. 乘法")print("4. 除法")print("0. 退出")choice = input("请输入选项:")if choice == '0':breaknum1 = float(input("请输入第一个数字:"))num2 = float(input("请输入第二个数字:"))if choice == '1':result = addition(num1, num2)elif choice == '2':result = subtraction(num1, num2)elif choice == '3':result = multiplication(num1, num2)elif choice == '4':result = division(num1, num2)else:print("无效的选项")continueprint("结果为:", result)```这个示例代码中,使用了四个函数来实现加法、减法、乘法和除法。

c语言循环实现计算机的四则运算

c语言循环实现计算机的四则运算

一、概述计算机是现代社会不可或缺的工具,而计算机的运算能力是其重要的功能之一。

C语言作为一种通用的高级语言,具有广泛应用的特点,在计算机编程中也扮演着重要的角色。

本文将介绍如何利用C语言的循环结构,实现计算机的四则运算功能,以及对应的代码实现。

二、C语言循环结构C语言提供了多种循环结构,包括for循环、while循环和do...while循环。

这些循环结构可以帮助程序实现重复执行某段代码的功能,非常适合用于实现四则运算中的重复计算过程。

1. for循环for循环是C语言中最常用的一种循环结构,其语法形式为:```cfor (初始化表达式; 判断表达式; 更新表达式){循环体;}```其中初始化表达式用于初始化循环变量,判断表达式用于判断循环是否继续执行,更新表达式用于更新循环变量的值。

利用for循环结构,可以方便地实现对变量进行增减的操作,从而实现四则运算中的加减乘除功能。

2. while循环while循环是C语言中另一种常见的循环结构,其语法形式为:```cwhile (判断表达式){循环体;}```while循环会在每次执行循环体之前判断条件表达式的真假,只有在条件为真时才会执行循环体,因此适用于实现需要满足特定条件才能进行计算的四则运算。

3. do...while循环do...while循环是C语言中的另一种循环结构,其语法形式为:```cdo{循环体;} while (判断表达式);```do...while循环先执行一次循环体,然后再判断是否继续执行循环体,因此适用于需要至少执行一次计算过程的四则运算。

三、C语言实现四则运算利用上述介绍的C语言循环结构,可以方便地实现计算机的四则运算。

下面将分别介绍如何利用循环结构实现加法、减法、乘法和除法运算,并给出相应的代码实现。

1. 加法运算加法运算是最基本的四则运算之一,其实现可以利用C语言的循环结构来实现。

下面是利用for循环实现加法运算的示例代码:```c#include <stdio.h>int m本人n(){int a = 3;int b = 5;int sum = 0;for (int i = 0; i < b; i++){sum++;}printf("d + d = d\n", a, b, sum);return 0;}```在这段代码中,利用for循环结构对变量sum进行了累加操作,从而实现了加法运算。

汇编语言加减乘除四则运算实现源代码.

汇编语言加减乘除四则运算实现源代码.

汇编语言加减乘除四则运算实现源代码汇编语言加减乘除四则运算实现源代码 MOVBX,AX POP AX DIV CX PUSH DX MOV DX,BX OR BX,AX JNZ DOUT1DOUT2: POP AX ADDAL,'0' CMP AL,'9' JBEDOUT3 ADD AL,'A'-'9'-1DOUT3: CALLDISP DEC BP JNZ DOUT2 POP BP POP DX POP BX POPAX RET;输入数据在DX:AX中返回;CX=0 数据为10进制;CX#0 数据为16进制DATE LABEL NEAR PUSHBX PUSH BP PUSH DI XOR AX,AX XOR DX,DXDATE1: MOVDI,AX LODSB CMP AL,'0' JB DATE7 CMP AL,'9' JA SHL DI,1 RCL DX,1 SHL DI,1 RCL DX,1 JCXZ DATE3 SHLDI,1 RCL DX,1 Jmp shortDATE4DATE3: ADD DI,BX ADCDX,BPDATE4: ADD AX,DI ADCDX,0 JMP DATE1DATE5: ADDAL,9 JMP DATE2DATE6: JCXZDATE7 CMP AL,'A' JBDATE7 CMP AL,'F' JBEDATE5 CMP AL,'a' JBDATE7 CMP AL,'f' JBEDATE5DATE7: MOV AX,DI DECSI OR DI,DX POP DI POPBP POP BX RET;数据1与数据2根据YSF1进行加减运算JSJJ LABEL NEAR MOVAX,NUM2 MOV DX,NUM2+2 CMPYSF1,'+' JZ JSJJ1 SUBNUM1,AX SBB NUM1+2,DX JMP SHORTJSJJ2JSJJ1: ADD NUM1,AX ADC NUM1+2,DX上一页[1] [2] [3] 下一页。

四则运算汇编语言程序设计

四则运算汇编语言程序设计

安徽工程大学《汇编语言程序设计》大作业报告班级: XXXXX 学号: XXXXXXXX 完成人: XXXXXXX任课老师: XXXXXXX 时间: XXXXXXXXXX《汇编语言程序设计》大作业任务书大作业题目:四则运算程序程序功能要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。

计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。

1.设计目标运用汇编语言,制作一个计算的程序,实现简单计算器的一般功能,能够在DOS界面下进行简单的加、减、乘、除的简单计算。

程序应有操作提示、输入和输出。

自动闪烁光标,并提示输入信息。

输入正确的数值等符号后可以进行正确的运算,程序计算其结果值并输出。

程序无需查错功能,所输入的都是正确的四则运算表达式,并且表达式中运算分量均为无正负号整数,运算符为+、-、*、/,最后结果以十进制数表示。

且程序主界面需为一个由‘*’组成边框的矩形窗口。

2.软件设计2.1程序设计的基本思想主模块:首先提供一个主界面,提示用户按要求输入具体的数据和所要进行的操作,输入完毕后给出结果。

如果输入过程中发现非法输入,则立即给与提示,程序自动刷新界面,提示继续输入。

计算显示完毕后,按提示选择是否要继续计算,不选择继续则结束。

对屏幕上输入字符串的接受,为INPUT语句段,见源代码,主要是将数字和运算符分开存放。

MATCH子程序,子程序内有三次跳转,将运算符选择正确的语句进行计算。

由于操作符只有+、-、*、/,没有涉及到括号,不用考虑括号的匹配问题。

流程图如下:图1 主模块流程图子模块:完成对数据的进一步加工处理,转换格式并得出结果。

首先根据输入调用对应的“+”、“-”、“*”、“/”四个函数模块,这是本程序的核心模块,其他部分的一些小模块都是为这几个模块服务的,大致的流程图如下图2:图2 子模块流程图3.系统调试3.1测试目标(1)在屏幕上显示一个由‘*’组成边框的矩形窗口;(2)自动闪烁光标,并提示输入信息;(3)能够完成单项表达式的输入、显示和运算;(4)编制并调试出程序。

计算器说明书

计算器说明书

汇编语言实训任务书题目:计算器学生学号:杜政毅12730102,惠攀龙12730108,郭益婷13730104班级:13软件工程1班题目类型:软件工程(R)指导教师:树群一、设计目的用汇编语言编程设计一个简单的计算器,实现四则运算数的交互式输入,并显示运算结果。

通过设计,掌握键盘和鼠标控制、显示输出和基本算术运算指令的应用,进一步提高综合运用知识的能力。

二、设计容(包括原始数据、技术参数、条件、设计要求等):使用按键式操作,对任意给定的正确四则运算序列,能按照意图分部计算出其计算的有效结果数值并输出。

三、设计要求题目的选择是根据汇编语言的特点主要针对系统部的一些中断调用、系统功能调用、系统数据处理、文件数据处理、以及相关的API而设计的,是对所学课程知识较为系统的应用。

由于汇编语言编程相对其他语言编程比较复杂,因此,在设计上应把重点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计。

不要局限于题目所规定的要求,可以灵活裁减,设计出功能更完善程序。

另外,也可以自己设计题目,同时,提出详细的功能描述,经指导老师审查同意后也可作为课程设计的题目。

四、提交的成果1. 设计说明书一份,容包括:包含任务书一份1) 中文摘要100字,关键词3-5个。

2) 实训题目、容、要求。

3)总体设计(包含几大功能模块)。

4)详细设计(各功能模块的具体实现算法——流程图)5)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。

6)调试分析(包含各模块的测试用例,及测试结果。

)7)总结(实训完成了哪些功能,还有哪些地方需要改进,及通过实训有何收获,调试程序的体会等)8) 参考文献、致等。

五、主要参考资料[1]敬兆等编.《汇编语言程序设计》.:中国科学技术大学,2008.9[2]敬兆等编.《汇编语言程序设计实验教程及习题解答》.:中国科学技术大学,2008.9[3]王爽等编.《汇编语言》.:清华大学,2003.5[4]加恒等编.《新一代汇编语言课程设计》.:高等教育,2003.6[5]路明等编.《汇编语言程序设计》.:中南大学,2005.8[6]詹仕华等编.《汇编语言程序设计》.:中国电力,2008.2[7]詹仕华等编.《汇编语言程序设计习题解答及课程设计、设计辅导》.:中国电力,2008.2[8]宋彩莉等编.《汇编语言程序设计学习指导》.:交通大学,2008.2六、各阶段时间安排(共1周)摘要本次课程设计的题目是用汇编语言实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。

大一c语言编程四则运算

大一c语言编程四则运算

大一c语言编程四则运算四则运算是我们日常生活中最常见的数学运算,它包括加法、减法、乘法和除法。

在计算机编程中,四则运算是非常基础的知识,也是必不可少的。

本文将介绍如何使用c语言实现四则运算。

加法加法是最基本的运算之一,在c语言中可以使用加号(+)来实现。

例如,我们要计算2+3的结果,可以写成:int result = 2 + 3;这样就可以将计算结果赋值给变量result。

在c语言中,加法还可以用于字符串拼接,例如:char str1[] = "hello";char str2[] = "world";char str3[12];strcpy(str3, str1);strcat(str3, str2);printf("%s", str3);这段代码会输出"helloworld",其中strcpy函数用于将str1复制到str3中,而strcat函数则用于将str2拼接到str3中。

减法减法是另一种基本的运算,可以使用减号(-)来实现。

例如,我们要计算5-3的结果,可以写成:int result = 5 - 3;这样就可以将计算结果赋值给变量result。

乘法乘法也是一种基本的运算,可以使用乘号(*)来实现。

例如,我们要计算2×3的结果,可以写成:int result = 2 * 3;这样就可以将计算结果赋值给变量result。

除法除法也是一种基本的运算,可以使用除号(/)来实现。

需要注意的是,在c语言中,整数除以整数的结果仍为整数,因此如果要得到小数结果,需要将其中一个操作数转换为浮点数。

例如,我们要计算5÷2的结果,可以写成:float result = 5.0 / 2;这样就可以将计算结果赋值给变量result,并且得到一个小数结果。

综合运算除了以上四种基本运算,c语言还可以进行更加复杂的运算,例如混合运算。

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告( 2011 -- 2012 年度第 2 学期)实现加减乘除四则运算的计算器专业 计算机科学与技术 学生姓名班级学号指导教师完成日期目录目录错误!未定义书签。

1 概述错误!未定义书签。

设计目的错误!未定义书签。

设计内容错误!未定义书签。

2 系统需求分析错误!未定义书签。

系统目标错误!未定义书签。

主体功能错误!未定义书签。

开发环境错误!未定义书签。

3 系统概要设计错误!未定义书签。

系统的功能模块划分错误!未定义书签。

系统流程图错误!未定义书签。

4系统详细设计错误!未定义书签。

5 测试错误!未定义书签。

测试方案错误!未定义书签。

测试结果错误!未定义书签。

6 小结错误!未定义书签。

参考文献错误!未定义书签。

附录错误!未定义书签。

附录源程序清单错误!未定义书签。

实现加减乘除四则运算的计算器1 概述设计目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。

设计内容能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:c:\tasm>js 3+252 系统需求分析系统目标本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。

比如,十进制数的加减乘除四则运算。

我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。

此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。

汇编语言实现四则混合运算

汇编语言实现四则混合运算

;本程序实现加减混合运算输入格式必须为1+2-3=;程序思路:遇到一个操作符执行前一次运算,等号执行最后一次运算,然后保存本次操作符;---------提示信息------DISPL MACRO DIMOV AH,9MOV DX,DIINT 21HENDM;-----------DISP MACRO V ARMOV AH,2MOV DL,V ARINT 21HENDM;--------输入函数-------INPUT MACROPUSH AXPUSH BXPUSH CXPUSH DXMOV BX,0 ;BX存放十进制数CLCMOV DX,0NEXT0:MOV AH,1INT 21HCMP AL,2BH ;判断输入是否为'+'JE NEXT2CMP AL,2DH ;判断输入是否为'-'JE NEXT2CMP AL,3DH ;判断‘=’JE NEXT2SUB AL,30HJL NEXT1CMP AL,9JG NEXT1MOV AH,0 ;将输入的数转换成10进制数XCHG AX,BXMOV CX,10MUL CXADD AX,BXJC NEXT1XCHG AX,BXJMP NEXT0NEXT1:MOV DX,0MOV BX,0MOV DI,OFFSET STR ;提示出错DISPL DIMOV DI,OFFSET STR2DISPL DIJMP NEXT0NEXT2:CMP DX,0JNZ NEXT1CMP COUNT,1 ;第一次输入存到buf0以后输入全部存放到buf1 JE L0MOV BUF0,BXJMP L1L0: MOV BUF1,BXJMP NEXT3L1: MOV OPER,AL ;将操作符保存至operMOV COUNT,1MOV BX,0JMP NEXT0NEXT3:CMP OPER,'+';判读那是何种操作JE N0CMP OPER,'-'JE N1N0:MOV BX,BUF0 ;加法相应操作ADD BX,BUF1MOV BUF0,BXCMP AL,'='JE NEXT4JMP L1N1:MOV DX,BUF0 ;加法操作CMP FLAG,1 ;如果原来buf0里的数是负数用buf1-buf0的绝对值JNE N2XCHG DX,BUF1MOV FLAG,0N2: CLCSBB DX,BUF1JNC N3MOV FLAG,1NEG DX ;如果相减为负数则存放绝对值N3:MOV BUF0,DXCMP AL,'='JE NEXT4JMP L1NEXT4:CMP FLAG,1JNE NEXT5DISP '-';若果结果为负数输出负号NEXT5:CALL PRINTPOP DXPOP CXPOP BXPOP AXENDMDATAS SEGMENTSTR DB0AH,0DH,'$'STR0 DB'please input arithmetic expressions:',0AH,0DH,'$' STR2 DB'the num is unexpected,input again:',0AH,0DH,'$' BUF0 DW?BUF1 DW?FLAG DB 0OPER DB?COUNT D B 0DATAS ENDSSTACKS SEGMENTDW256 DUP(?) ;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV DI,OFFSET STR0DISPL DIINPUTMOV AH,4CHINT 21H;-----------显示函数--------PRINT PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXMOV CX,0 ;记录有效数字位数MOV BX,10 ;除10取余MOV AX,BUF0LAST:MOV DX,0DIV BXPUSH DXINC CXCMP AX,0JNZ LASTAGE:POP DX ;出栈输出OR DX,30HMOV AH,2INT 21HLOOP AGEPOP DXPOP CXPOP BXPOP AXRETPRINT ENDPCODES ENDSEND STARTDISP MACRO V ARMOV AH,2MOV DL,V ARINT 21HENDMDATAS SEGMENTDATA0 DB'PLEASE INPUT A NUMBER(0-999):','$'DATA1 DB' over flow input again:','$'DATA2 DB'PLEASE INPUT ANOTHER NUMBER(EXP:123)','$' DATA3 DB'PLEASE INPUT AN OPREATOR:','$'DATA4 DB'THE OPERATOR IS WRONG,INPUT AGAIN:','$' OPER DB?FLAG DB 0FLAG1 DB 0DATA DW 3 DUP(?)DATAS ENDSSTACKS SEGMENTDW 256 DUP(?)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV DI,OFFSET DATA0 ;提示信息CALL DISPLMOV SI,0 ;SI作为数组下标CALL INPUTCALL NEWLINEMOV DI,OFFSET DATA3 ;提示信息CALL DISPLAGAIN:MOV AH,1 ;1号功能输入四则运算符INT 21HCMP AL,'+';判断输入的是不是+,-,*,/ JE NEXT0CMP AL,'-'JE NEXT0CMP AL,'*'JE NEXT0CMP AL,'/'JE NEXT0CALL NEWLINE ;输入的运算符不合法,重新输入MOV DI, OFFSET DATA4CALL DISPLJMP AGAINNEXT0:MOV OPER,AL ;保存运算符CALL NEWLINEMOV DI,OFFSET DATA2 ;输入第二个操作数MOV SI,2CALL INPUTMOV AX,DATA[0]MOV BX,DATA[2]CMP OPER,'+';判断是那种操作,进行运算JE NEXT1CMP OPER,'-'JE NEXT2CMP OPER,'*'JE NEXT3CMP OPER,'/'JE NEXT4NEXT1: ;加法运算CLCADC AX,BXJNC N1MOV FLAG,1 ;判断是否进位N1: MOV DATA[4],AX ;运算结果放入内存JMP OUTPUTNEXT2: ;减法运算CLCSBB AX,BXJNC N2MOV FLAG,1 ;判断是否借位NEG AXN2: MOV DATA[4],AX ;运算结果放入内存JMP OUTPUTNEXT3: ;乘法运算CLCMOV DX,0MUL BXMOV DATA[4],AX ;运算结果放入内存JMP OUTPUTNEXT4: ;除法运算CLCMOV DX,0CMP BX,0JNZ N4 ;判断除数是否为0CALL NEWLINECALL ERRORCALL NEWLINEMOV DI,OFFSET DATA2MOV SI,2CALL INPUTJMP NEXT4N4: DIV BXMOV DATA[4],AX ;运算结果放入内存OUTPUT:CALL NEWLINEMOV DI,0 ;输出第一个操作数CALL PRINTDISP OPER ;输出运算符MOV DI,2CALL PRINT ;输出第二个操作数DISP '='CMP FLAG,1JNZ N EXT5DISP '-'NEXT5:MOV DI,4CALL PRINT ;输出结果MOV AH,4CHINT 21H;-----------输入函数------------INPUT PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXMOV BX,0 ;BX存放十进制数CLCMOV DX,0L0:;----------输入数字----------MOV AH,1 ;判断数字是否合法INT 21HCMP AL,0DHJE L2SUB AL,30HJL L1JG L1;---------转换成十进制数-------MOV AH,0 ;转换成10进制数放入内存XCHG AX,BXMOV CX,10MUL CXADD AX,BXJC L1XCHG AX,BXJMP L0L1:MOV DX,0MOV BX,0CALL NEWLINECALL ERRORJMP L0L2:CMP DX,0JNZ L1MOV DATA[SI],BXMOV DX,0POP DXPOP CXPOP BXPOP AXRETINPUT ENDP;--------------提示信息------------DISPL PROC NEARMOV AH,9MOV DX,DIINT 21HRETDISPL ENDP;-------回车换行--------NEWLINE PROC NEARPUSH AXPUSH DXMOV DL,0AHINT 21HMOV DL,0DHMOV AH,2INT 21HPOP DXPOP AXRETNEWLINE ENDP;----------错误提示---------------- ERROR PROC NEARPUSH AXPUSH DXMOV DX,OFFSET DATA1MOV AH,9INT 21HPOP DXPOP AXRETERROR ENDP;-----------显示函数--------PRINT PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXMOV CX,0MOV BX,10MOV AX,DATA[DI]LAST:MOV DX,0 ;除10压栈DIV BXPUSH DXINC CXCMP AX,0JNZ LASTAGE:POP DX ;出栈输出OR DX,30HMOV AH,2INT 21HLOOP AGEPOP DXPOP CXPOP BXPOP AXRETPRINT ENDP CODES ENDSEND START。

scratch四则运算

scratch四则运算

scratch四则运算
Scratch是一款非常流行的编程语言,它可以帮助孩子们学习编程的基础知识。

其中,四则运算是编程中最基本的运算之一,也是孩子们学习编程的重要内容之一。

四则运算包括加、减、乘、除四种运算,它们在编程中的应用非常广泛。

在Scratch中,我们可以使用各种不同的代码块来实现四则运算。

例如,我们可以使用“加”块来实现两个数的加法运算,使用“减”块来实现两个数的减法运算,使用“乘”块来实现两个数的乘法运算,使用“除”块来实现两个数的除法运算。

在Scratch中,我们可以使用变量来存储数值,然后使用四则运算来对这些数值进行计算。

例如,我们可以创建一个名为“num1”的变量,并将其设置为10,然后创建一个名为“num2”的变量,并将其设置为5。

接下来,我们可以使用“加”块来计算这两个数的和,使用“减”块来计算这两个数的差,使用“乘”块来计算这两个数的积,使用“除”块来计算这两个数的商。

除了基本的四则运算,Scratch还提供了其他一些有用的运算。

例如,我们可以使用“余数”块来计算两个数的余数,使用“平方根”块来计算一个数的平方根,使用“绝对值”块来计算一个数的绝对值等等。

四则运算是编程中最基本的运算之一,也是Scratch编程中的重要内容之一。

通过学习四则运算,孩子们可以掌握基本的计算方法,
为以后学习更高级的编程知识打下坚实的基础。

因此,我们应该鼓励孩子们学习Scratch编程,并帮助他们掌握四则运算的基本知识。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微机原理与接口技术》课程设计电气与自动化工程系 通信工程2010-12-28院 系: 专 业: 年级班级: 学 号: 姓 名: 指导教师: 设计日期:一、课程设计目的每个同学在1-2周时间内,用汇编语言独立完成一个程序题,以达到熟练运用汇编语言编程实现有比较完整功能的程序的目的。

二、课程设计要求从键盘上输入数字参与运算,并在屏幕上显示结果,至少实现加法减法运算。

三、课题分析该程序设计的关键是要根据四则运算中()、*、/、+、-、= 的优先级设置符号的权值,其中(、*、/、+、-、)、= 的权值分别设置为5、4、4、3、3、1、0 ,然后根据权值的大小进行运算。

程序使用数字标志SIGN1、括号标志SIGN2分别来判断数字是否输入完毕和括号是否配对,另外程序定义两个数据存储区域NUMB和MARK,其中NUMB用来保存输入的或运算的数值,MARK用来保存输入的符号及其对应的权值。

程序不断判断输入的符号是否是左括号‘(’,当遇到左括号是在存储区MARK保存其符号,紧跟着将‘(’的权值改为2并保存之,这是为了使程序运算括号内的表达式,当遇到右括号‘)’时括号内运算将结束。

需要注意的是程序执行完括号内表达式的运算及乘除运算后将在存储区MARK中覆盖符号(、)、*、/ 及紧跟着的权值,使得程序在运算整个四则运算表达式时当括号内表达式的运算及乘除运算结束后存储区MARK中只有‘ +、-’运算符及紧跟着的权值,然后按照+、- 运算符的左右顺序从左到右进行‘ +、- ’运算,当最后遇到等号‘ = ’时输出表达式的数值,然后再根据提示判断是否继续执行下一个四则运算表达式。

四、流程图五、程序源代码DATAS SEGMENT STR1 DB 0AH,0DH,'@******************************************@$' STR2 DB 0AH,0DH,'@* *@$' STR3 DB 0AH,0DH,'@* Welcome you ! *@$' STR4 DB 0AH,0DH,'@* This is programe of sizeyunsuan *@$' STR5 DB 0AH,0DH,'@* Rang(-32768 to 32767) *@$' STR6 DB 0AH,0DH,'@* JikeB082 Hanyou 200807014225 *@$' STR7 DB 0AH,0DH,'@* *@$' STR8 DB 0AH,0DH,'@******************************************@$' MESG DB 0AH,0DH,'Do you want to continue? (y/n) $' SIGN1 DW 0 ;判断数字是否输入完毕 SIGN2 DW 0 ;判断括号是否配对 NUMB DW 20 DUP (0) ;保存输入的数值 MARK DB 'M' ;保存输入的运算符 DB 10 DUP (0) ERROR DB 'YOUR INPUT IS WRONG$' DATAS ENDS DISP MACRO STR LEA DX,STR MOV AH,9 INT 21H ENDM CHOICE MACRO ASC,HAO,H ;宏定义,给运算符赋权值 CMP AL,ASC JNE OTH &HAO MOV CH,H JMP OTH7 ENDM CODES SEGMENT ASSUME CS:CODES,DS:DATAS START :CALL CLEAR MOV AX,DATAS MOV DS,AX LEA DI,NUMB LEA SI,MARK DISP STR1 DISP STR2 DISP STR3 DISP STR4 DISP STR5DISP STR6 DISP STR7 DISP STR8 CALL CR MOV AX,0 MOV BX,0 MOV CX,0 MOV DX,0 START1: CALL CR INPUT: MOV AH,1 INT 21H CMP AL,'=' JE PD ;是等号,进一步判断输入括号是否配对 CMP AL,28H JB INPUT CMP AL,39H JA INPUT CMP AL,2FH ;判断是数字还是符号 JBE JUD ;是符号转入响应操作 INC WORD PTR SIGN1 ;将数字标志位加1 SUB AL,30H ;将ASCII 码转16进制 MOV AH,0XCHG AX,[DI]MUL BXMOV BX,10XCHG AX,[DI]ADD [DI],AXJMP INPUTPD: CMP WORD PTR SIGN2,0 ;判断配对标志位JE JUDJMP BCJUD:CMP WORD PTR SIGN1,0 ;判断数值指针是否已经下移一位JE FUHADD DI,2MOV WORD PTR SIGN1,0 ;将数字标志位复0FUH:CALL ADVANCE ;设定优先级CMP CH,5 ;判断输入的符号是否是左括号JNE PY ;不是则判断输入的是否是右括号INC WORD PTR SIGN2 ;是左括号,括号标志位加1PY:CMP CH,1 ;判断输入的是否是右括号JNE AGAINDEC WORD PTR SIGN2 ;是右括号,括号标志位减1AGAIN:CMP BYTE PTR[SI],'M';判断运算符存储区是否为空如23*56-(8*19)/6+67-8=1322JE SAVECMP CH,[SI] ;[SI]的内容为前一个符号或其权值JA SAVECMP BYTE PTR[SI],'('JNE YIDODEC SIJMP INPUTYIDO:DEC SIMOV CL,[SI]CALL MATCH ;判断是什么运算符并进行相应的计算JMP AGAINSAVE:CMP CH,0 ;判断是否是等号JE OUTPUTCMP CH,1JE INPUT ;“)”不保存,输入下一个数INC SIMOV [SI],AL ;保存符号INC SICMP CH,5 ;判断是否是左括号JNE GO_ONMOV CH,2 ;改变(的权值GO_ON:MOV [SI],CH ;紧跟着保存符号的权值JMP INPUTBC: LEA DX,ERRORMOV AH,9INT 21HJMP J_SHUMATCH PROC NEAR ;子程序,进行相应的运算PUSH AXXOR AX,AXXOR BX,BXCMP CL,2AH ;乘法运算 JNE NEXT1SUB DI,2XCHG BX,[DI]SUB DI,2XCHG AX,[DI]IMUL BXMOV [DI],AXADD DI,2JMP FINISHNEXT1:CMP CL,2FH ;除法运算 JNE NEXT2SUB DI,2XCHG BX,[DI]SUB DI,2XCHG AX,[DI]CWDIDIV BXMOV [DI],AXADD DI,2JMP FINISHNEXT2:CMP CL,2BH ;加法运算 JNE NEXT3SUB DI,2XCHG BX,[DI]SUB DI,2ADD [DI],BXADD DI,2JMP FINISHNEXT3:CMP CL,2DH ;减法运算 JNE FINISHSUB DI,2XCHG BX,[DI]SUB DI,2SUB [DI],BXADD DI,2FINISH:POP AXRETMATCH ENDPADVANCE PROCCHOICE 28H,1,5 ;(OTH1:CHOICE 29H,2,1 ;)OTH2:CHOICE 2AH,3,4 ;*OTH3:CHOICE 2FH,4,4 ;/OTH4:CHOICE 2BH,5,3 ;+OTH5:CHOICE 2DH,6,3 ;-OTH6:CHOICE 3DH,7,0 ;=OTH7:RETADVANCE ENDP CLEAR PROC NEAR ;清屏PUSH AXPUSH BXPUSH CXPUSH DXMOV AX,0600HMOV BH,0FHMOV CX,0MOV DX,184FHINT 10HPOP AXPOP BXPOP CXPOP DXRETCLEAR ENDPCR PROC NEAR ;回车换行PUSH AXPUSH DXMOV AH,2MOV DL,0DHINT 21HMOV AH,2MOV DL,0AHINT 21HPOP DXPOP AXRETCR ENDPOUTPUT: ;输出运算结果SUB DI,2CMP WORD PTR[DI],0JGE W1NEG WORD PTR[DI]MOV DL,'-'MOV AH,2INT 21HW1: MOV BX,10000MOV CX,5MOV SI,0W2: MOV AX,[DI]CWDDIV BXMOV [DI],DXCMP AL,0JNE W3CMP SI,0JNE W3CMP CX,1JE W3JMP W4W3: MOV DL,ALADD DL,30HMOV AH,2INT 21HMOV SI,1W4: MOV AX,BXMOV DX,0MOV BX,10DIV BXMOV BX,AX LOOP W2CALL CR DISP MESGMOV AH,1INT 21HCMP AL,'n'JE J_SHUCMP AL,'N'JE J_SHUMOV WORD PTR[DI+2],0 CALL CRLEA DI,NUMBLEA SI,MARKJMP START1J_SHU:MOV AH,4CHINT 21HCODES ENDSEND START六、结果显示七、感想、收获及体会学习汇编语言:大一学习的是C语言,因此,在学汇编语言之初,面对格式之类的感觉很不适应。

C语言用的是一个又一个变量,而汇编语言则是利用一个又一个寄存器来实现。

而写代码的时候,经常会因为一些符号,或者字长的失误,完全是无心之失而导致程序无法执行。

而回过来找错误的时候,又往往忽略了这些细节而找不到错误的根源。

学习汇编是个艰辛的过程,从C语言到汇编的不适,到牢记大量的指令,并熟练应用,都要花费很多时间适应。

对有些指令的源操作数和目的操作数,以及操作结果的存放位置都要熟记于心。

否则,你将很难应用这些指令,学习汇编的一个重要能力就是能够熟练调试所写程序,当某个程序不能执行时,而又发现不了错误,这就要对程序进行逐步调试了。

相关文档
最新文档