College of Computer Science & Technology

Slides:



Advertisements
Similar presentations
平面构成 第六章 平面构成形式与法则 — 破规与变异. 第七章 平面构成形式与法则 — 破规与变异 破规与变异构成的形式、有下列四类: 一、特异构成 特异构成。其表现特征是,在普遍相同性质的事物 当中,有个别异质性的事物,便会立即显现出来。
Advertisements

对应用型本科建设中若干问题的认识 张家钰
ARM 编程技巧.
Assembly Language Programming 湛江师范学院 汇编语言程序设计实验课件 主讲教师:王 晓 晔.
教育的理想和教育家成长 成都.
我征服了黃山 林達的黃山之旅 2006春.
说课课件 感悟工业革命力量,闪耀科技创新光辉 ----《走向整体的世界》教学设计及反思 爱迪生 西门子 卡尔·本茨 诺贝尔 学军中学 颜先辉.
建構 Beta電腦 – Fall /29/0.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
美国史 美利坚合众国创造了一个人类建国史的奇迹,在短短230年的时间从一个被英帝国奴役的殖民地到成为驾驭全世界的“超级大国”、“世界警察”,美国的探索为人类的发展提供了很宝贵的经验。
Access数据库程序设计 总复习.
课程改革:培养学 生的独立人格 ——中学校长《课程改革 与校长担当》论坛的讲话 郭振有
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
绪 论  珍惜大学生活 开拓新的境界.
在悠久的海洋歲月裡 有你我的回憶....
国际贸易法.
大连理工大学软件学院 软件工程系 赖晓晨 计算机组成与结构 大连理工大学软件学院 软件工程系 赖晓晨
学会学习.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
Chapter 1 複習.
C#程序设计基础 $5 流程控制.
第5章 循环与分支程序设计  循环程序设计  分支程序设计.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
第2章 计算机指令集结构 曲冠南
College of Computer Science & Technology
第四章 BootLoader开发 附-s3c2410/s3c2440中断控制器介绍
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
走进编程 程序的顺序结构(二).
嵌入式体系结构与应用 第三章-ARM指令系统(ARMv4T).
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
College of Computer Science & Technology
第三节 尺寸注法 一、基本规则 (1)尺寸数值为零件的真实大小,与绘图比 例及绘图的准确度无关。 (2)以毫米为单位,如采用其它单位时,则
第二章 Java语言基础.
逆向工程-汇编语言
ARM處理器 定址方式.
CPU结构和功能.
第五章 C/C++及汇编语言的混合编程 5.1 ARM C/C++编译器 5.2 在C/C++程序中内嵌汇编指令
嵌入式系统教案 武汉创维特信息技术有限公司 2019/1/18.
Wuhan University of Science & Technology
(第2版).
條件處理.
(第2版).
第六次全国人口普查 近期数据处理工作部署 夏雨春 2010年12月28日.
江西财经大学信息管理学院 《数据库应用》课程组2007
第4章 PHP流程控制语句.
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
ARM及Thumb指令集 (练习).
程式結構&語法.
第3章 ARM微處理器的指令集.
第二章、第三章错题分析.
ARM指令集 Author : Steve Furber Advisor: Mei-Ling Chiang Speaker: 徐翔宇
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
第三节 转向信号电路与闪光器.
第5章 循环与分支程序设计  循环程序设计  分支程序设计.
微處理機 Microprocessor (100上)
代码优化.
美麗的西子湖.
本节内容 内存复制指令 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
3.16 枚举算法及其程序实现 ——数组的作用.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
第二章 Java基本语法 讲师:复凡.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
本节内容 通用寄存器 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
4.3 汇编语言程序设计 顺序程序设计 顺序程序设计是最基本的程序设计。它是按照指令排列的先后顺序依次执行,每条指令都必须执行,且只执行一遍。顺序程序设计一般比较单一、简单,常常作为复杂程序的一部分。
嵌入式系统教案 武汉创维特信息技术有限公司 2019/10/1.
Presentation transcript:

College of Computer Science & Technology 第三章 ARM汇编编程 College of Computer Science & Technology

汇编程序设计 程序结构 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 顺序结构 顺序处理; 简单的数据转换; 鲁东大学 LUDONG UNIVERSITY 程序结构 顺序处理; 简单的数据转换; 求数据表达式; 特殊功能寄存器的设置等等; ----------------------------------------------- E.g1. 开/关中断 E.g2. 拆字/拼字程序 E.g3. 求S=W-(X*Y+Z-340) 设W、X、Y、Z均为32位带符号数。 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 顺序结构

汇编程序设计 程序结构 顺序结构 分支结构 单分支结构 分支结构 双分支结构 多分支结构 循环结构 子程序结构 循环结构 鲁东大学 LUDONG UNIVERSITY 程序结构 B{cond} Label :无条件/条件转移 B Label :无条件跳转到标号处 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 B Label ;… Label 分支结构 绕过B指令到标号之间的代码 Bcond Label :满足条件跳转到标号处 不满足条件,顺序执行 Bcond Label ;… Label 循环结构 不满足条件顺序执行 满足条件跳到标号处

汇编程序设计 程序结构 顺序结构 分支结构 单分支结构 分支结构 双分支结构 多分支结构 单分支结构 循环结构 子程序结构 if( 布尔表达式) { 满足条件处理; } if(op1 == op2) then { X=1; Y=2; } 鲁东大学 LUDONG UNIVERSITY 程序结构 ldr r0, = op1 ldr r1,[r0] ldr r0, = op2 ldr r2,[r0] cmp r1,r2 beq case_do b case_not_do case_do ldr r0, = x mov r1,#1 str r1,[r0] ldr r0, =y mov r1,#2 case_not_do 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 ldr r0, = op1 ldr r1,[r0] ldr r0, = op2 ldr r2,[r0] cmp r1,r2 bne next ldr r0, = x mov r1,#1 str r1,[r0] ldr r0, =y mov r1,#2 next 分支结构 单分支结构 采用相反条件 (与原来一样) 的程序结构?

汇编程序设计 程序结构 顺序结构 分支结构 单分支结构 分支结构 双分支结构 多分支结构 循环结构 子程序结构 双分支结构 if(op1 > op2) then { routin1; } Else { routin2; } if( 布尔表达式) { 满足条件处理;} else { 不满足条件的处理;} 鲁东大学 LUDONG UNIVERSITY 程序结构 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 分支结构 ;将op1取至r1,op2取至r2 cmp r1,r2 ble routin2 routin1 ;… b exit routin2 exit … 双分支结构 注意:使用无条件转移, 绕过另一个分支,跳出 条件结构

汇编程序设计 程序结构 1、高级语言 嵌套if-else ,实现多分支 顺序结构 分支结构 单分支结构 分支结构 双分支结构 多分支结构 if(op1 > op2) if(x>y) { routin1; } else { routin2; } { routin3; } 鲁东大学 LUDONG UNIVERSITY 程序结构 1、高级语言 嵌套if-else ,实现多分支 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 if( 满足条件1) if(满足条件2) {满足条件1&条件2的分支处理} else {满足条件1&!条件2的分支处理} { 不满足条件1的分支处理;} 分支结构 分支1 分支2 多分支结构 分支3

汇编程序设计 程序结构 2、高级语言 switch-case,实现多分支 顺序结构 分支结构 单分支结构 分支结构 双分支结构 多分支结构 鲁东大学 LUDONG UNIVERSITY 程序结构 2、高级语言 switch-case,实现多分支 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 利用地址表实现多分支 swtich(条件表达式 ) { case 常量1: proc1; case 常量2: proc2: case 常量3: proc3: …; } 分支结构 分支1 分支2 多分支结构 分支3

汇编程序设计 程序结构 顺序结构 分支结构 单分支结构 分支结构 双分支结构 多分支结构 循环结构 子程序结构 多分支结构 鲁东大学 LUDONG UNIVERSITY 程序结构 利用地址表实现多分支 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 地址表实现多分支结构,需要定义一块专门存放各分支入口地址的区域,程序中通过利用条件变量找到对应的地址表单元,取出对应子程序的入口地址赋给PC,达到多分支转移的效果 地址表表首 ADD入口地址 分支结构 偏移量 SUB入口地址 MUL入口地址 多分支结构 DIV入口地址 Example

循环结构程序设计 循环结构程序的组成 初始化部分 循环体 参数修改部分 循环控制部分 为进入下一次循环做准备 计数器 地址指针 寄存器 鲁东大学 LUDONG UNIVERSITY 为进入下一次循环做准备 循环结构程序的组成 初始化部分 循环体 参数修改部分 循环控制部分 计数器 地址指针 寄存器 存储单元 各异 计数器 地址指针 状态位 B条件 初始化 初始化 循环体 循环控制 DO_until While_do 循环体 参数修改 循环控制 参数修改

汇编程序设计 程序结构 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 循环结构 sum = 0; for(i =0; i<Num;i++) { sum = sum+i; } 汇编程序设计 鲁东大学 LUDONG UNIVERSITY 程序结构 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 ;假设sum 存放在寄存器r1中; ;假设计数器i存在放寄存器r0中; mov r1,#0 mov r0,#Num-1 loop add r1,r1,r0 subs r0,r0,#1 bne loop exit 循环结构

汇编程序设计 程序结构 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 循环结构 while( a != b) { if(a>b) a = a-b; else b = b-a; } 汇编程序设计 鲁东大学 LUDONG UNIVERSITY 程序结构 ;假设a 和 b存放 在寄存器r1和r2 loop cmp r1,r2 subgt r1,r1,r2 sublt r2,r2,r1 bne loop 顺序结构 分支结构 单分支结构 双分支结构 多分支结构 循环结构 子程序结构 ;假设a 和 b存放在寄存器 r1和r2 loop cmp r1,r2 beq exit subgt r1,r1,r2 sublt r2,r2,r1 b loop exit ;假设a 和 b存放在寄存器r1和r2 loop cmp r1,r2 beq exit bgt case1 case2 sub r2,r2,r1 b loop case1 sub r1,r1,r2 exit 循环结构