汇编点灯基于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文件,查看二进制数据,和机器码小段模式一一对应

相关推荐
SCBAiotAigc7 分钟前
2026.3.18:汇编之字符串反转
汇编·具身智能
如意.75925 分钟前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
Thera7771 小时前
C++ 高性能时间轮定时器:从单例设计到 Linux timerfd 深度优化
linux·开发语言·c++
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
安当加密4 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
内卷焦虑人士4 小时前
Windows安装WSL2+Ubuntu 22.04
linux·windows·ubuntu
dddddppppp1235 小时前
qemu模拟的一个内核驱动 io口中断
linux
程序员老赵6 小时前
超全 Docker 镜像源配置指南|Windows/Mac/Linux一键搞定,拉镜像再也不卡顿
linux·后端·容器
门豪杰6 小时前
Ubuntu下安装Claude Code
linux·运维·ubuntu·claude·claude code
总要冲动一次6 小时前
离线安装 percona-xtrabackup-24
linux·数据库·mysql·centos