arm汇编编程范例
更新时间:2023-11-14 10:48:01 阅读量: 教育文库 文档下载
一。if语句实例1 /*
*if(a > 50)
* puts(\r0 r1 r2 r3 *else if(b < a)
* puts(\ *else if(b < 20)
* puts(\ * */ .section .rodata .align 2 .LC0: .string \.LC1: .string \.LC2: .string \ .text .align 2 .global main main: push {lr} @上一个函数的返回地址压到栈中;
@ mov r0, #60 mov r0, #10 mov r1, #30 cmp r0, #50 bgt do1 cmp r1, r0 blt do2 cmp r1, #20 blt do3 b out do1: ldr r0, .L0 bl puts b out do2:
ldr r0, .L0+4 bl puts b out do3: ldr r0, .L0+8 bl puts out: pop {pc} @从栈中取出lr存到pc中; .L0: .word .LC0 .word .LC1 .word .LC2
if语句实例2, &运算 /*
*if (a > 10 && <20)
* puts(\ */ .section .rodata .align 2 .LC0: .string \ .text .align 2 .global main main: push {lr} @上一个函数的返回地址压到栈中; mov r0, #15 @if( (a>10) && (a<20) ) @ puts(\ cmp r0, #10 ble out cmp r0, #20 ldrlt r0, .L0 bllt printf out: pop {pc} @从栈中取出lr存到pc中;
.L0: .word .LC0
if语句实例3, ||运算 .section .rodata .align 2 .LC0: .string \ .text .align 2 .global main main: push {lr} @上一个函数的返回地址压到栈中; mov r0, #15 @if( (a<10) || (a>20) ) @ puts(\ cmp r0, #10 blt do cmp r0, #20 ble out do: ldr r0, .L0 bl puts out: pop {pc} @从栈中取出lr存到pc中; .L0: .word .LC0
二,switch语句的实现1 /*
*char ch = 'A'; *
*switch (ch) *{
* case x: * break; * ... *}
* */ .section .rodata .align 2 .LC0: .ascii \ .text .align 2 .global main main: stmfd sp!, {fp, lr} add fp, sp, #4 sub sp, sp, #16 mov r3, #65 @ch = 'A'; strb r3, [fp, #-5] ldrb r3, [fp, #-5] @ zero_extendqisi2 str r3, [fp, #-16] @int --> switch ldr r3, [fp, #-16] cmp r3, #45 @二分查找; beq .L5 ldr r3, [fp, #-16] cmp r3, #45 bgt .L9 ldr r3, [fp, #-16] cmp r3, #2 beq .L3 ldr r3, [fp, #-16] cmp r3, #9 beq .L4 b .L11 .L9: ldr r3, [fp, #-16] cmp r3, #97 beq .L7 ldr r3, [fp, #-16] cmp r3, #99 beq .L8 ldr r3, [fp, #-16] cmp r3, #65 beq .L6 b .L11
.L7: ldrb r3, [fp, #-5] @ zero_extendqisi2 ldr r0, .L12 mov r1, r3 bl printf b .L11 .L8: ldrb r3, [fp, #-5] @ zero_extendqisi2 ldr r0, .L12 mov r1, r3 bl printf b .L11 .L3: ldrb r3, [fp, #-5] @ zero_extendqisi2 ldr r0, .L12 mov r1, r3 bl printf b .L11 .L4: ldrb r3, [fp, #-5] @ zero_extendqisi2 ldr r0, .L12 mov r1, r3 bl printf b .L11 .L5: ldrb r3, [fp, #-5] @ zero_extendqisi2 ldr r0, .L12 mov r1, r3 bl printf b .L11 .L6: ldrb r3, [fp, #-5] @ zero_extendqisi2 ldr r0, .L12 mov r1, r3 bl printf .L11: sub sp, fp, #4 ldmfd sp!, {fp, pc} .L13: .align 2 .L12: .word .LC0
正在阅读:
arm汇编编程范例11-14
四奥第2讲 巧填运算符号10-18
氧化还原滴定11-06
美服疯狂坦克辅助瞄准外挂C#版开发(四)程序使用说明和完成源代码及其下载09-22
2014年安徽省政法干警面试热点解读:读书的时间去哪儿了06-17
过年作文【3篇】03-22
(部编版)四年级语文上册期末语文素养测评卷(含答案)04-05
基于模糊综合评价的住区可步行性测度方法及发展策略研究——以重庆典型住区为例08-14
小猫和大狗改变了我作文400字06-29
下棋作文400字06-22
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 范例
- 汇编
- 编程
- arm
- 安徽工业大学电工电子实习总结报告
- 河北省遵化一中2018届高三下学期第四次综合训练英语试卷(1)
- CAD认证工程师2010练习题2010.12.15
- 五年高考三年联考2010届英语语法练习分类汇编-动词时态和语态
- 基于SOCKETt和PLC的远程控制系统
- 农业气象学复习题
- 马克思主义基本原理概述
- 徐州市物价局关于电力增容收费有关问题的通知
- 基桩超声波检测分析 - 图文
- 浮选药剂习题 自己出的
- 虚假诉讼要负刑事责任吗
- 东莞市虎门房管所
- 江大《统计学》第二次离线作业
- 收益法在企业价值评估中的应用研究
- 教师教学能手理论测试题
- 如何培养儿童爱劳动的良好习惯
- 中外企业签约成功宴请接待方案
- 学前卫生学试题
- CoreJava第三次内测试卷
- 三年级数学期中测试题