.arch armv6
.fpu softvfp
.data
msg:
.asciz "Hello, ARM ASM\n"
len = . - msg
.text
.global _start
_start:
/* syscall write (int fd, const void * buf, size_t count) */
mov r0, $1 /* fd -> stdout */
ldr r1, =msg /* buf -> msg */
ldr r2, =len /* count -> len(msg) */
mov r7, $4 /* write is syscall #4 */
swi $0 /* invoke syscall */
/* syscall exit (int status) */
mov r0, $0 /* status -> 0 */
mov r7, $1 /* exit is syscall #1 */
swi $0 /* invoke syscall */
.end
/* arm-linux-gcc msg.s -o msg -nostdlib */
这篇博客展示了如何使用ARM汇编语言编写一个简单的程序,该程序将输出字符串'Hello, ARMASM'到标准输出并随后退出。代码中详细解释了每个汇编指令的作用,包括设置寄存器、调用系统调用进行写操作和退出程序的步骤。
561

被折叠的 条评论
为什么被折叠?



