软件工具 SofTool.CN 本次搜索耗时 0.103 秒,为您找到 113 个相关结果.
  • 08_内核

    跳转到虚拟内存 跳转到虚拟内存 现在几乎到了整个 stext 过程的末尾,开始执行内核了。 首先调用“procinit”函数,这个函数对于每个CPU类型都不一样。这是一段由C和汇编写成的底层CPU管理代码,位于arch/arm/mm/proc-*.S 中。例如,大多数 v7 CPU的初始化代码都在 proc-v7.S 中,而ARM920的初始化代码...
  • ENTRY

    3578 2020-12-25 《ARM 汇编》
    语法: ENTRY 功能: ENTRY 伪指令用于指定汇编程序的入口点。 在一个完整的汇编程序中至少要有一个ENTRY(也可以有多个,当有多个ENTRY时,程序的真正入口点由链 接器指定),但在一个源文件里最多只能有一个ENTRY(可以没有)。 示例: AREA Init , CODE , READONLY ENTRY ...
  • 04_ARM64常用指令

    3458 2021-01-02 《ARM汇编基本指令》
    ARM指令所有指令都是带有条件的,默认是AL即无条件执行,当指令带有默认条件时不需要明确写出。ARM指令包含4位的条件码列表如下: 这里对ARM64下的栈操作指令进行补充说明:由于在ARM64下,对于栈的操作都是要16个字节对齐的,所以都是双寄存器读写操作。 stp 写入指令 将数据从两个寄存器中读出来, 写入到栈中 ldp ...
  • 指令

    3453 2021-02-15 《Linux GNU ARM 汇编》
    因为此部分内容和《ARM 汇编》共用,所以请移步:https://www.softool.cn/read/arm_assembly/instruction.html
  • 5_Linux 汇编程序中的宏定义

    格式如下: .macro 宏名 参数名列表 @伪指令.macro 定义一个宏 宏体 .endm @.endm表示宏结束 如果宏使用参数,那么在宏体中使用该参数时添加前缀 / ,宏定义时的参数还可以使用默认值,可以使用.exitm伪指令来退出宏。 举例: 【例5】宏定义 .macro SHIFTLEFT a, b .if /b < 0...
  • 4.1_GCC常用选项

    -o:生成目标( .i 、 .s 、 .o 、可执行文件等) -c:通知 gcc 取消链接步骤,即编译源码并在最后生成目标文件。 -E:只运行 C 预编译器 -S:告诉编译器产生汇编语言文件后停止编译,产生的汇编语言文件扩展名为 .s -Wall:使 gcc 对源文件的代码有问题的地方发出警告 -Idir:将dir目录加入搜索头文件的目录路径 -Ldir:...
  • 03_指令的基本格式

    3386 2021-01-02 《ARM 汇编初体验》
    格式如下: <opcode > {<cond > }{s} <Rd > , <Rn > {,<operand2 > } opcode: 指令助记符cond: 执行条件S: 是否影响 CPSR 突破口的值Rd: 目标寄存器Rn: 第 1 个操作数的寄存器operand2: 第 2 个操作数其中<>内的项是必须的,{}内的项是可选的。 使用条件码“con...
  • 3_Linux 汇编程序中的分段

    .section伪操作 下面是ELF格式允许的段标志: 汇编系统预定义的段名 注意: .section伪操作 用户可以通过.section伪操作来自定义一个段,格式如下: .section section_name [, "flags" [, %type [,flag_specific_arguments]]] 注释: sectio...
  • 4.3_编译过程

    使用gcc -S hello.i -o hello.s,将生成的hello.i文件编译为汇编程序hello.s。 .file "hello.c" .section .rodata .LC0 : .string "hello world" .text .globl main .type ma...
  • 3_gcc编译程序的过程

    3319 2021-01-17 《GCC 入门》
    gcc编译程序主要经过四个过程: 预处理(Pre-Processing) 编译 (Compiling) 汇编 (Assembling) 链接 (Linking) 预处理实际上是将头文件、宏进行展开。编译阶段,gcc调用不同语言的编译器,例如c语言调用编译器ccl。gcc实际上是个工具链,在编译程序的过程中调用不同的工具。汇编阶段,gcc调用汇编...