看看谁还不会用【ARM汇编】求最大值

简介: 看看谁还不会用【ARM汇编】求最大值

如何用汇编解决求最大值问题?


学习任何语言我们都求过最大值,尤其像在c语言,java中这些都是基础中的基础,那么如何利用汇编语言求最大值


C++实现方法


最简单三个数求最大值


1.生明三个变量用于存储三个整数


2.输入三个整数


3.使用if 语句嵌套的方法求最大值


4. 输出最大值



代码示例:


#include<iostream>
using namespace std;
int main()
{
 int a, b, c;
 cout << "请输入a,b,c三个数的值:" << endl;
 cin >> a >> b >> c;
 if (a > b)
 {
  if (a > c)
  {
   cout << "最大的数是:" << a << endl;
  }
  else
  {
   cout << "最大的数是:" << c << endl;
  }
 }
 else
 {
  if (b > c)
  {
   cout << "最大的数是:" << b << endl;
  }
  else
   cout << "最大的数是:" << c << endl;
 }
 system("pause");
 return 0;
}


汇编语言如何实现

提示:可以先做一个整体解决办法的描述(思路或概述)


第一步


定义数据段,代码段,让堆栈段自动装入;

第二步


给出X,Y,Z, 三个16位带符号数  


第三步


书写代码进行测试


汇编源码


DATA SEGMENT
    X DW 7
    Y DW 5
    Z DW 8
    MAX DW ?,?
DATA ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START: MOV AX, DATA
       MOV DS, AX
       MOV AX, X
       MOV BX, Y
       MOV CX, Z
       CMP AX, BX
       JGE NEXT
       MOV MAX,BX
       CMP MAX,CX
       JGE DONE
       MOV MAX,CX
       JMP DONE
NEXT:   MOV MAX,AX   
        CMP MAX,CX
        JGE  DONE
        MOV MAX, CX
        JMP DONE
DONE:  MOV DX, MAX    ;便于使用debug查看结果是否正确
       MOV AH,4CH
       INT 21H
CODE ENDS
    END START


运行调试



总结


编写的代码因为少了很多编译的环节,可以能够准确的被执行

作为一种低级语言,可扩展性很高

逻辑清晰

目录
相关文章
|
4月前
|
存储 机器学习/深度学习 编译器
ARM汇编快速入门
ARM汇编快速入门
120 0
|
11月前
|
存储 移动开发 前端开发
linux内核1-GNU汇编入门_X86-64&ARM(下)
linux内核1-GNU汇编入门_X86-64&ARM(下)
|
11月前
|
存储 前端开发 rax
linux内核1-GNU汇编入门_X86-64&ARM(上)
linux内核1-GNU汇编入门_X86-64&ARM
|
存储 Java 程序员
ARM编程——ARM架构及汇编
ARM编程——ARM架构及汇编
477 0
|
编译器 数据处理 C语言
ARM汇编
ARM汇编
114 0
|
存储 安全 程序员
代码还原的技术 ARM汇编入门教程(二) 加减乘除
代码还原的技术 ARM汇编入门教程(二) 加减乘除
代码还原的技术 ARM汇编入门教程(二) 加减乘除
|
安全 编译器 API
代码还原的技术 ARM汇编入门教程(一) Hello World!
代码还原的技术 ARM汇编入门教程(一) Hello World!
代码还原的技术 ARM汇编入门教程(一) Hello World!
|
存储
arm汇编中的加载指令
arm加载指令解析
435 0
arm汇编中的加载指令