电工之家网网_电工基础知识学习网站
以后地位:电工之家网网 > 电子技术 > 正文

ARM汇编语言程序布局示例

光阴>2019-05-19 09:43 来源:电工之家网网

ARM汇编语言程序布局示例
详细介绍ARM汇编语言之前,先给出一个汇编源程序示例,使读者对ARM汇编语言程序的布局有一个大概的了解。
    CODE32 ;32位的ARM指令段
    AREA codesec, CODE, READONLY ;代码段,名称为codesec,属性为只读
    main PROC ;函数main
    STMFD sp!,{lr} ;保留必要的存放器和返回地到数据栈
    ADR r0,strhello ;取标签strhello代表的地址值
    BL _ printf ;调用C运行时库的_printf函数打印
    ;“Hello world!”符串
    BL welcomefun ;调用子函数welcomfun
    LDMFD sp!,{pc} ;规复存放器值
    strhello ;strhello代表本地符串的地址
    DCB "Hello world!\n\0" ;定义一段字节空间
    ENDP ;函数main结束
    welcomefun ;子函数welcomfun
    STMFD sp!,{lr} ;保留必要的存放器和返回地到数据栈
    ADR r0,adrstrarm ;取adrstrarm的地址放到存放器r0中
    LDR r0,[r0,#0] ;将strarm的值放到r0中
    BL _ printf ;调用C运行时库的_printf函数打印
    ;“Welcom to ARM world!”符串
    LDMFD sp!,{pc} ;规复存放器值
    adrstrarm ;adrstrarm标签
    DCD strarm ;保留strarm的地址
    AREA constdatasec, DATA, READONLY,ALIGN=0 ;数据段,名称为constdatasec,
    ;属性为只读
    strarm
    DCB "Welcome to ARM world!\n\0" ;存放“WelcometoARM world!”
    ;符串
    EXPORT main ;导出main函数供内部调用
    ;引入3个C运行时库函数和ARM库
    IMPORT _main
    IMPORT __main
    IMPORT _printf
    IMPORT ||Lib$$Request$$armlib||, WEAK
    END ;程序结束
    将上面代码保留为hello.s,Windows体系下在终端输入命令行:
    armcc -g hello.s -o hello.axf
    将hello.s编译成映像文件hello.axf。
    运行命令:
    armsd -exec hello.axf
    将出现下面结果:
    …
    1 ARM7TDMI, BIU, Little endian, Semihosting, Debug Comms Channel, 4GB, Mapfile,
    2 Timer, Profiler, Tube, Millisecond [20000 cycles_per_millisecond], Pagetables,
    3 IntCtrl, Tracer, RDI Codesequences
    4 Object program file wangt.axf
    5 Hello world!
    6 Welcome to ARM world!
    7 Program terminated normally at PC = 0x00009f70 (_sys_exit + 0x8)
    8 +0008 0x00009f70: 0xef123456 V4.. : swi 0x123456
    9 Quitting

看过《ARM汇编语言程序布局示例》的人还看了如下文章
泥土湿度感应器探头的原理是什么?为什么制成板状的 泥土湿度感应器探头的原理是什么?为什么制
泥土湿度传感器的探头实际上便是两个金属电极,制作成板状是为了增大与泥土的接触面积,以便与泥土能有优越的接触,如许能力更好的检测泥土的干湿度。若制作成缝纫机针那么细小的电极,无法与泥土优越接触,如许也就不能精确的检测泥土的干湿度了。下面咱咱咱们...
限流电阻会引起电压变更吗 限流电阻会引起电压变更吗
限流电阻可以或许或许限制流入负载的电流的大...
电脑开机出现故障是什么原因 电脑开机出现故障是什么原因
主板:技嘉B85M-HD3 CPU:i5 4430 内存:8G 集成显卡 故障现象:按开机键10多秒后才显示主板logo开端自检启动体系,进入体系后统统正常。 当彻底断电(拔掉电源线等十几秒)再插电开机3秒就亮屏并显示logo开端自检了。只要不彻底断电,每次开机都要十几秒才亮屏。...
模拟电路和数字电路的差别 模拟电路和数字电路的差别
模拟电路和数字电路都是令人头痛的事,也是学习电子电路过程中的两大拦路虎,难、才是挑衅的能源。科学技术睁开迅猛,电子电路自己功效赓续进级,应用领域随之拓宽,跟如今人咱咱们日常密切度也赓续拉近。以电子电路功效分类,可分模电与数电两大类,这两大类是...
用红外线信号节制马达电路原理 用红外线信号节制马达电路原理
用红外线信号来节制马达的工作与否,但其未说明马达的工作电压及红外线信号的节制距离,故这里只能介绍一个简略的红外节制电路来说明一下节制的基本原理。 直射式红外节制电路。 上图中的VD1为红外发射管,因为为近距离节制(20cm以内),这里采纳直流驱动红...
友情链接:大学生校园网  绿化草坪网  电脑技术学习网  cad教程网  汽贸之家  世博涂料网  纺织服装新闻网  中国教育资源网  中国商贸协会网  家具品牌大全网