汇编点灯基于SC32440

汇编点灯

ARM汇编语言是专为ARM架构处理器设计的低级编程语言,采用精简指令集(RISC)设计,指令长度固定为32位,执行效率高且功耗低,特别适合嵌入式系统开发。

原理图中 GPF4 连接nLED_1

GPF4 输出低电平 点亮 nLED1

在S3C2440 datasheet 中找到 GPF4引脚对应的寄存器 配为输出模式 output 低电平Reserved

编写汇编代码 操作寄存器控制GPIO

c 复制代码
/*
 * 点亮LED1: gpf4
 */

.text
.global _start

_start:

/* 配置GPF4为输出引脚
 * 把0x100写到地址0x56000050
 */
	ldr r1, =0x56000050
	ldr r0, =0x100	/* mov r0, #0x100 */
	str r0, [r1]


/* 设置GPF4输出高电平 
 * 把0写到地址0x56000054
 */
	ldr r1, =0x56000054
	ldr r0, =0	/* mov r0, #0 */
	str r0, [r1]

	/* 死循环 */
halt:
	b halt

通过交叉编译工具链,编译汇编代码后 反汇编得到 led_on.dis文件

反汇编代码:

c 复制代码
led_on.elf:     file format elf32-littlearm

Disassembly of section .text:

00000000 <_start>:
   0:	e59f1014 	ldr	r1, [pc, #20]	; 1c <.text+0x1c>
   4:	e3a00c01 	mov	r0, #256	; 0x100
   8:	e5810000 	str	r0, [r1]
   c:	e59f100c 	ldr	r1, [pc, #12]	; 20 <.text+0x20>
  10:	e3a00000 	mov	r0, #0	; 0x0
  14:	e5810000 	str	r0, [r1]

00000018 <halt>:
  18:	eafffffe 	b	18 <halt>
  1c:	56000050 	undefined
  20:	56000054 	undefined

对应bin二进制文件

打开bin文件,查看二进制数据,和机器码小段模式一一对应

相关推荐
wdfk_prog8 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
盟接之桥8 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿9 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘9 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
Fcy64810 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满10 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠10 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Gary Studio10 小时前
rk芯片驱动编写
linux·学习
mango_mangojuice10 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
Harvey90310 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s