• 汇编入门:循环语句的汇编实现


    汇编其实没有想象中的那么难!

    我们用高级语言时,定义变量,循环语句,判断语句等等句子,我们就不想知道它在汇编是怎么实现的吗?

    汇编其实就是对我们板子中寄存器的操作,所以汇编提供了一堆指令,我这里就不展开了,只列举一下会用到的几个。

    ADD 增加  ADD R1 #1  表示R1寄存器加一

    MOV 传值  MOV R1 #0  表示将R1寄存器的值设为一

    B 转跳  B XX    表示要转跳去执行xxx语句

    CMP  比较大小  CMP R1 R2  比较R1和R2的大小

    HS 大于等于  BHS XXX 表示如果大于或等于则去执行XXX  跟在比较语句后面使用

    NOP  啥都不干  基本就是程序结束了

    我一直觉得,学习一个新东西,只要把它的一个简单实例弄懂了之后,后面就很简单了。

    来看看C语言的循环语句,定义i和j,循环10次,每次把i和j加一

    int i = 0;
    int j = 0;
    
    for(;i<10;i++){
        
        j++;
    
        }
    
    return 0;

    相应的汇编语言

    因为方便大家看到颜色,我就截图来了。

    简单说一下:

    LOOP 和 LOOP_END是程序段名称,代表了后面的那一段程序。

    首先我们使用了R1和R2这两个寄存器,做为我们的I和J两个变量。

    初始化时,先用MOV语句,将这俩寄存器置为0.

    LOOP是循环执行语句段,比较R1和10的大小,若小于10,则使用ADD语句,将R1和R2的值加一,然后再执行LOOP的程序段;如果R1大于等于10,则执行跳转语句,

    跳转到LOOP_END程序段,结束该循环。

    好了,就介绍到这里。

  • 相关阅读:
    opensuse使用zypper安装软件
    补习系列(1)-springboot项目基础搭建课
    补习系列-springboot-使用assembly进行项目打包
    log4j2 使用纪要
    mongos-sharding连接池配置
    maven-代码风格检查工具
    mtools-你可能没用过的mongodb神器
    mongodb分布式集群搭建手记
    mongodb分片扩展架构
    mongodb副本集高可用架构
  • 原文地址:https://www.cnblogs.com/wzben/p/5357406.html
Copyright © 2020-2023  润新知