软件工具 SofTool.CN 本次搜索耗时 0.229 秒,为您找到 112 个相关结果.
  • ASSERT

    2792 2020-12-25 《ARM 汇编》
    语法: ASSERT 逻辑表达式 功能: 在汇编编译器对汇编程序的第2遍扫描中,如果其中的逻辑表达式设置的条件不成立,则报告该错误信息,并终止汇编。 示例: ; //如果符号ENDIAN_CHANGE还没有被定义,那么 :DEF:ENDIAN_CHANGE 返回 FALSE, 则此处会报告错误,并终止汇编. ASSERT :...
  • 01_ARM指令和伪指令

    2659 2021-01-17 《ARM 指令教程》
    ARM伪指令不是必须的,但是一个完整没有伪指令几乎很难写出来,例如: 一个程序至少包含READONLY AREA和ENTRY,否则CPU都无法知道从哪里开始运行; ARM的属于RISC,指令并不多,但是可以带后缀表示扩展出不同用法,这里与X86汇编完全不同风格;如:BNE实际上是B指令的变种,本质还是同一类指令,只是多一个对CPSR的Z标志位的判断而已。...
  • 03_段

    section 伪操作 section_name 段名 flags 段的属性标志 type 段的类型 举例: section 伪操作 用户可以通过 .section伪操作 来自定义一个段,格式如下: .section section_name [, "flags" [, %type [,flag_specific_arguments]]]...
  • 内存寄存器:

    2638 2020-12-25 《ARM 汇编》
    内存寄存器: 常见寄存器的命名: 内存寄存器: ARM920T 总共有 37 个寄存器(31 个通用寄存器 和 6 个状态寄存器); 常见寄存器的命名: 寄存器 APCS命名 意义 R0 a1 工作寄存器 R1 a2 R2 a3 R3 a4 R4 v1 必须保护 R5 ...
  • 03_常见问题

    指令顺序 开发者总是自以为源代码中指定的指令顺序与最终的指令顺序一致。这种写法是错误的,并导致难以查找bug。实际上,优化器会像优化 C 语句那样优化汇编语句。如果有可能,指令的顺序可能会重排。 “优化 C 代码”一节对此进行了详细讨论并提供了解决方案。 定义变量作为指定的寄存器 即使将一个变量强制赋值给了一个指定的寄存器,代码运行的结果也可能不...
  • 08_@ # ; $

    @ # 表示整行注释符号 ; # 或 $ 或 $ 表示立即数前缀 GNU ARM汇编的一些特殊字符: @ @ 表示代码行中的注释符号 # 表示整行注释符号 ; ; 表示语句分离符号 # 或 $ 或 $ 表示立即数前缀
  • 01_概述

    2571 2021-01-02 《ARM 汇编初体验》
    大部分 arm core 提供两种指令集 : ARM 指令集(32-bit) Thumb 指令集(16-bit) 32 位 架构中 arm 的一些编程约定 : Byte (字节): 8 bits Halfword(半字): 16 bits Word (字): 32 bits 指令数大约 30 多条。有指令编码表可以进行手工汇编。 ARM 指令的...
  • 4_定义入口点

    定义汇编入口的两种方法: 汇编程序的缺省入口是_start 标号; 用户也可以在连接脚本文件中用 ENTRY 标志指明其它入口 点; 【例4】定义入口点 .section .data <initialized data here > .section .bss <uninitialized data here > .sectio...
  • 编译为汇编代码

    2430 2020-12-25 《GCC 基础入门》
    预处理之后,可直接对生成的 hello.i 文件编译,生成汇编代码: gcc -S hello .i -o hello .s -S 表示在程序编译期间,生成汇编代码后,停止。-o 表示输出汇编代码文件。 其中 hello.s 的内容如下: .file "hello.c" .section .rod...
  • 其它伪操作

    2429 2020-12-25 《ARM 汇编》
    还有一些其他的伪指令,在汇编程序中经常会被使用。