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

相关推荐
十年磨一剑~36 分钟前
Linux 内核中断处理机制与软硬件协同流程
linux·嵌入式硬件
Ruiery40 分钟前
Linux 6.6内核并发与同步(五):mutex 可睡眠锁
linux·运维·服务器
莫晓燚1 小时前
双机部署若依 (RuoYi‑Vue) 传统环境部署---实战
linux·运维·数据库·redis·mysql·nginx·ruoyi
CQU_JIAKE2 小时前
10.30【A】
linux
Zevalin爱灰灰2 小时前
Linux入门第二部分(ARM裸机篇) 第一章 开发环境搭建与了解
linux·arm开发·嵌入式
LHICOD3 小时前
Linux-2
java·linux·后端·jar·vmware·svm·vm
余额瞒着我当琳3 小时前
Linux初识:Linux的历史,计算机的发展脉络,发行版本,选购云服务器,安装Xshell,第一次连接,基础命令指南
linux·运维·服务器
垆边人似月.4 小时前
RDMA 文件传输踩坑(四):从固定延时改造为 READY/ACK 协议
linux·服务器·网络
水饺编程4 小时前
第2章:Linux 基础,制作【.tar.xz】压缩包文件
linux·c语言·汇编
阿里云基础软件4 小时前
Agent 任务提速 10.71%,内存占用降低 21.60%|Alibaba Cloud Linux 4 重大发布
java·linux·人工智能·操作系统·agent