ARM及Thumb指令集 (练习).

Slides:



Advertisements
Similar presentations
第六讲 张弼士与粤商文化. 二、粤商代表张弼士 三、粤商文化 四、当代粤商 Add your text in here “ 粤商 ” 是对中国改革开放影响力最大的一个 “ 商帮 ” 。 一、粤商历史 学习提纲.
Advertisements

证券市场基础知识真题.
Chapter 7 心意-記憶與失憶 第一節 記憶力 第二節 注意力 第三節 失憶.
600年前,鄭和率領世界上最強大的艦隊,浩浩蕩蕩的駛入印度洋,展開一場「文化帝國」的海上大秀。
关键人才培养 邱柏森.
ARM 编程技巧.
实证 作业:语言调查 赵万林 哲社学院 学号:
寫作教學—標點符號.
物流系统的特点.
全面准确学习领会 党的十八精神.
組長:5號-周辰瑜 組員:4號-王耀賢 10號-康叡維 11號-張佳文 27號-鍾昱卉
我在哈佛、麥肯錫 學到的一流工作術 富坂美織◎著.
医师定考新系统使用体会 上海新华医院医务部 蒋红丽 2016年7月7日.
Word高级应用——制作毕业论文 Word高级应用——制作毕业论文 6..
興華之寶.
時間:102年9月18日(星期三) 地點:國立臺灣師範大學綜合大樓509國際會議廳
2015年上半年工作总结 手术专业学组静疗项目组.
《职业病危害项目申报办法》解读 2012年7月.
生活課程教科書轉化教學實例分享 生活課程輔導團 蕉埔國小王美娟.
宁夏正阳社会工作服务中心 服务成果汇报材料.
入库验收 讲课人:卢玉娟 《仓储管理》.
海底两万里 LOGO 一步用用勇敢面对未知 以智慧战胜的困境的奇异航行 神秘的尼摩船长 一部悬念送起的海底之旅
教师队伍 冷传莉 课程负责人 冷传莉,女,1969年8月生,汉族,山东省蓬莱人,中共党员,教授,贵州大学法学院副院长,硕士生导师,武汉大学法学院民商法博士研究生。 兼任贵州大学民法经济法研究所所长,中国法学会民法学、商法学研究会全国理事,贵州省人民政府行政复议委员会委员,贵州省社科院法学研究所和贵州省社科院民商法研究中心特聘法学研究员,贵州省企业法制研究院副院长,贵阳市人民政府法律顾问,贵阳仲裁研究会副会长,贵阳仲裁委员会资深仲裁员,贵阳法制频道法律顾问。
专业名称:汽车运用技术专业 建设单位:新疆交通职业技术学院 汇报人:杨意品
申請土地徵收注意事項 內政部地政司 邱于蓉.
ARM及Thumb指令集.
Chapter 1 複習.
嵌入式系统讲义 第3章 ARM指令系统 周国运
College of Computer Science & Technology
第4章 汇编语言程序设计 汇编语言源程序格式 汇编语言上机过程 汇编语言与C语言混合编程技术.
嵌入式体系结构与应用 第三章-ARM指令系统(ARMv4T).
ARM處理器 定址方式.
第五章 C/C++及汇编语言的混合编程 5.1 ARM C/C++编译器 5.2 在C/C++程序中内嵌汇编指令
嵌入式系统教案 武汉创维特信息技术有限公司 2019/1/18.
(第2版).
第六章 安全衛生工作守則 6-1 前 言  6-2 訂定依據相關法令規定  6-3 工作守則製作程序及製作前應注意事項  6-4 如何訂定適合需要之安全衛生工作守則  6-5 結 論.
网络课程建设实践交流 远程教育学院教学部 徐春华.
第5章 循环与分支程序设计 学习目标: 了解并掌握循环程序的构造方法,尤其是对循环控制条件的设置以及可能出现的边界情况的考虑。掌握起泡排序算法这种多重循环程序设计中的常用方法。交换标志位的设置在此算法中更能提高效率。学会在数组排序算法中采用折半查找法来提高查找效率。学会使用跳跃表法实现CASE结构。
(第2版).
CLICK HERE TO ADD YOUR TITLE
点击此处添加标题 点击此处添加标题 点击此处添加标题 点击此处添加标题 点击此处添加标题 TEXT HERE
CLICK HERE TO ADD YOUR TITLE
72% 29% 33% ADD YOUR TITLE HERE 点击此处添加文本信息。
第3章 ARM微處理器的指令集.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
ARM指令集 Author : Steve Furber Advisor: Mei-Ling Chiang Speaker: 徐翔宇
嵌入式系统教案 武汉创维特信息技术有限公司 2019/4/29.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
30% 30% CLICK HERE TO ADD YOUR TITLE CLICK HERE TO ADD YOUR TITLE
Click here to add your title
ARM简介及BootLoader介绍 黄大荣
B A C D ADD YOUR TEXT ADD YOUR TEXT ADD YOUR TEXT ADD YOUR TEXT
ADD YOUR TITLE HERE ADD YOUR NAME.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月06日.
项目3.3:图形对象 【项目描述】 在文本中插入图片、图形、剪贴画、艺术字、公式,并对这些对象进行效果设置与排版,使文稿图文并茂。 【能力目标】 能够在文档中插入剪贴画和外部图片, 并能对图片进行剪裁调整,设置环绕方式等。 掌握绘制自选图形、添加文字调整大小样式的方法。 能够在文档中插入艺术字、公式并进行编辑,
微處理機 Microprocessor (100上) ARM 內核嵌入式SOC原理
全台灣最美的日出好美…好美… 這就是傳說中的潑墨二寮,耳聞她的日出有如國畫般 所以稱為潑墨二寮
英語職涯規劃 移民署職場生涯 5.2.1善用慈濟資源‧提升職涯就業力.
Click here to add your title
第3章 目录 1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态
手机淘宝“变形”产品—微淘 操作流程指南 (内测版).
第四教学项目 话剧排练及影视鉴赏.
中式烹调技艺 第五章.
微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.
ADD YOUR TITLE CLICK HERE TO ADD YOUR TEXT.
嵌入式系统教案 武汉创维特信息技术有限公司 2019/10/1.
就學貸款 相關注意事項 學生事務處 /生活輔導組.
生命銀行 生命銀行.
Click here to add your title
03 Click here to add your text.Click here to add your text.Click here to add your text.Click here to add your text.Click here to add your text.Click here.
Presentation transcript:

ARM及Thumb指令集 (练习)

Quiz #2 - GCD 新建一个 ‘ARM Executable Image’ 项目 新建一个 text文件 另存为 “gcd.s” 加入到项目中 Build 并执行 Start Yes r0 = r1 ? Stop No AREA myarea, CODE ENTRY MOV r0, #9 MOV r1, #15 start ; your code here stop B stop END r0 > r1 ? Yes No r0 = r0 - r1 r1 = r1 - r0 你只需要使用CMP、SUB和B指令。 充分使用条件执行! 大家可以尝试计算 2109 和 4161 的GCD

Quiz #2 – 答案 57 (0x39) AREA gcd, CODE ENTRY MOV r0, #9 MOV r1, #15 start CMP r0, r1 SUBLT r1, r1, r0 SUBGT r0, r0, r1 BNE start stop B stop END 设置初始值 一次比较的值可多次使用 死循环 练习:求 2109和4161的 GCD 57 (0x39)

Quiz #3 - Total of array 写一段 ARM汇编程序:循环累加队列中的所有元素,直到碰上零值元素,结果放在r4. 源程序末尾处声明队列: myarray DCD 0x11 DCD 0x22 DCD 0 r0 指向队列头 ADR r0,myarray 使用命令 LDR r1,[r0],#4来装载 累加至 r4 循环,直到r1为0 用死循环来停止 0x22 地址增加 r0 0x11

Quiz #3 - Solution AREA total, CODE ENTRY MOV r4, #0 ADR r0, array loop LDR r1, [r0], #4 ADD r4, r4, r1 CMP r1, #0 BNE loop stop B stop array DCD 0x11 DCD 0x22 DCD 0 END 设置初始值 基址指针 r0自动增加 r1为0时中断循环 死循环 声明队列

Quiz #5 – DSP计算能力 x r0 1)写一个汇编函数 ‘qtest’来测试Q flag, 并清零。 参看模板 ‘asm\dsp.s’ 如果 Q 为0,返回0,否则返回非零 2) 写一个汇编主程序,把一个含64个带符号的16-bit数据组成的队列求平方和。 int total=0; for (n=0; n<64; n++) total += x[n]*x[n]; 使用 LDRH 来装载数值。 使用SMLABB来求平方和。 3) 是否存在interlocks? 4) 在AXD中检查Q标志, (修改cpsr 为 E-PSR) 5) 循环末尾增加一个 BL来调用qtest,并检测返回值。 6)高手可尝试:改用 LDR,一次 加载两个数据。 7)高手可尝试: 修改代码,使用一个64-bit累加器。 x r0 x[0] x[1] x[2] x[3] x[4] x[5] x[62] x[63]

Quiz #5 - Solution (1) 1)写一个汇编函数 ‘qtest’来测试Q flag, 并清零. AREA TestQFlag, CODE Qflag EQU 0x08000000 qtest MRS r0, cpsr BIC r1, r0, #Qflag AND r0, r0, #Qflag MSR cpsr_f, r1 BX lr END 遵从 ATPCS标准,如果Q为1 ,非零值放在r0中返回 使用 “BX lr”返回, interworking时很安全

Quiz #7 - Solution (2) 2)写一个汇编主程序,把一个含64个带符号的16-bit数据组成的队列求平方和 AREA dspcode, CODE ENTRY MOV r2, #64 MOV r4, #0 LDR r0, =x loop LDRH r1, [r0], #2 SMLABB r4, r1, r1, r4 SUBS r2, r2, #1 BGT loop stop B stop AREA dspdata, DATA x DCW 0x7777 DCW 0x1111 DCW 0xeeef ... END 这两条指令上r1 interlock。可通过交换 SMLABB 和 SUBS来消除。 (注意 LDRH 优于LDRSH因为高halfword被忽略,而 LDRSH 速度更慢。) 最终结果 (r4) 0x011D4324

Quiz #7 - Solution (3) 6)改用 LDR,一次 加载两个数据。 AREA dspcode, CODE ENTRY MOV r2, #64/2 ; as doing word loads MOV r4, #0 LDR r0, =x loop LDR r1, [r0], #4 SUBS r2, r2, #1 SMLABB r4, r1, r1, r4 SMLATT r4, r1, r1, r4 BGT loop stop B stop AREA dspdata, DATA x DCW 0x7777 DCW 0x1111 DCW 0xeeef ... END 6)改用 LDR,一次 加载两个数据。