是否默认安装了汇编程序?

Are Assemblers Installed By Default?

你好很棒的社区!

我刚开始学习汇编语言。我打算从 Raspberry Pi B+ 上的 ARM Assembly 开始,然后想学习 64 位 Intel 处理器的 Assembly 运行 Windows (8.1).

但我想知道 ARM 处理器的汇编程序是否默认安装在 Raspbian OS 发行版中。我也想知道 Windows 8.1.

万一它们没有安装,我在哪里可以找到我的 Rapsberry Pi B+ 和我的 Windows 8.1 64 位 Intel 处理器的汇编器?

奖金问题: 我找到了一个 PDF,解释了 ARM v3 架构的 ARM 汇编基础知识。 现在,Raspberry Pi B+ 使用的是哪个 ARM 版本,如果 Raspberry Pi 使用另一个版本,这有关系吗?

raspberry pi B+ 使用 ARMv6。 GCC 安装在 raspberry pi 上,可以用于 assemble ARM 程序集或者你可以使用 GNU assembler as,当使用 gcc 时,默认的启动标签将是 main 但大多数其他 assemble 回复将使用 _start。使用GCC会更容易,因为它可以使用printf等C函数。

使用 gcc 编译时会生成可执行文件,但使用 as 时会输出需要链接的目标代码。

这是一个简单的 hello world 程序

.text
.global _start
_start:
    mov r0, #1        @// write to stdout
    ldr r1, =message  @// memory address of message
    ldr r2, =len      @// length of message
    mov r7, #4        @// Linux system call SYS_WRITE
    swi 0             @// call software interupt

    mov r0, #0
    mov r7, #1        @// exit
    swi 0

.data
message:
    .ascii "hello world\n"
len = .-message

使用 gcc 编译

gcc -nostdlib hello.s -o hello

as hello.s -o hello.o
ld hello.o -o hello