首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

ARM处理器指令集价绍使用

操作系统 340.63KB 19 需要积分: 1
立即下载

资源介绍:

ARM处理器指令集
ARM Instruction Formats and Timings

ARM 指令格式和时序


在整个文档中,‘字’指的是 32 位(4 字节)的内存。


目录 


处理器模式

ARM 有一个用户模式和多个有特权的超级用户模式。它们是:

IRQ
在触发中断请求(IRQ)时进入。
FIQ
在触发快速中断请求(FIQ)时进入。
SVC
在指令一个软件中断(SWI)时进入。
Undef
在执行了一个未定义的指令时进入(不存在于 ARM 2 和 3,在这里进入 SVC 模式)。
Abt
在一个内存访问尝试被内存管理器(例如,MEMC 或 MMU)所终止时进入,通常因为所做的尝试要访问不存在的内存或者在没有充足特权的模式下访问内存(不存在于 ARM 2 和 3,在这里进入 SVC 模式)。

在每种情况下还调用适当的硬件向量。

 


寄存器

ARM 2 和 3 有 27 个 32 位处理器寄存器,在任何给定时间只有其中的 16 个是可见的(是哪十六个取决于处理器模式)。它们被引用为 R0-R15。

ARM 6 和以后有 31 个 32 位处理器寄存器,在任何给定时间只有其中的 16 个是可见的。

R15 特别重要。在 ARM 2 和 3,其中的 24 位用做程序计数器,而余下的 8 位用于保持处理器模式、状态标志和中断模式。所以 R15 经常被称做 PC。

        R15 = PC = NZCVIFpp pppppppp pppppppp ppppppMM
位 0-1 和 26-31 被称为 PSR (处理器状态寄存器)。位 2-25 给出被取回到指令流水线中的当前指令的(以字为单位)地址 (见后)。所以永远只能从字对齐的地址执行指令。
M	当前处理器模式

0	用户模式
1	快速中断处理模式(FIQ 模式)
2	中断处理模式(IRQ 模式)
3	超级用户模式(SVC 模式)
名字	意思

N	负数(Negative)标志
Z	零(Zero)标志
C	进位(Carry)标志
V	溢出(oVerflow)标志
I	中断(Interrupt)请求禁用
F	快速(Fast)中断请求禁用

R14、R14_FIQ、R14_IRQ、和 R14_SVC 由于它们在带连接的分支指令期间的行为而有时被称为‘连接’寄存器。

ARM 6 和以后的处理器核心支持 32 位地址空间。这些处理可以在 26 为和 32 位 PC 模式二者下操作。 在 26 位 PC 模式下,R15 表现如同在以前的处理器上,所以代码只能运行在地址空间的最低的 64M 字节中。在 32 位 PC 模式下,R15 所有 32 位用做程序计数器。使用独立的状态寄存器来存储处理器模式和状态标志。PSR 定义如下:

        NZCVxxxx xxxxxxxx xxxxxxxx IFxMMMMM
注意在 32-bit 模式下 R15 的底端两位总是零 - 就是说你仍然只能得到字对齐的指令。忽略对这两位写非零的任何尝试。

当前定义了下列模式:

M	名字	意思

00000	usr_26	26 位 PC Usr 模式
00001	fiq_26	26 位 PC FIQ 模式
00010	irq_26	26 位 PC IRQ 模式
00011	svc_26	26 位 PC SVC 模式

10000	usr_32	32 位 PC Usr 模式
10001	fiq_32	32 位 PC FIQ 模式
10010	irq_32	32 位 PC IRQ 模式
10011	svc_32	32 位 PC SVC 模式
10111	abt_32	32 位 PC Abt 模式
11011	und_32	32 位 PC Und 模式

推测自上面的表,可能期望还定义了下列两个模式:

M	名字	意思

00111	abt_26	26 bit PC Abt Mode
01011	und_26	26 bit PC Und Mode
实际上未定义它们(如果你确实向模式位写了 00111 或 01011,结果的芯片状态不会是你所希望的 - 就是说不会是有适当的 R13 和 R14 被交换进来的一个 26-bit 特权模式。

下表展示在每个处理器模式下可获得那些的寄存器:

        +------+---------------------------------------+
        | 模式 |  可获得的寄存器                        |
        +------+---------------------------------------+
        | USR  | R0             -             R14  R15 |
        +------+---------+-----------------------------+
        | FIQ  | R0 - R7 | R8_FIQ    -    R14_FIQ  R15 |
        +------+---------+----+------------------------+
        | IRQ  | R0   -   R12 | R13_IRQ - R14_IRQ  R15 |
        +------+--------------+------------------------+
        | SVC  | R0   -   R12 | R13_SVC - R14_SVC  R15 |
        +------+--------------+------------------------+
        | ABT  | R0   -   R12 | R13_ABT - R14_ABT  R15 | (ARM 6 和以后)
        +------+--------------+------------------------+
        | UND  | R0   -   R12 | R13_UND - R14_UND  R15 | (ARM 6 和以后)
        +------+---------------------------------------+

在 ARM6 和以后的处理器上有六个状态寄存器。一个是当前处理器状态寄存器(CPSR),持有关于当前处理器状态的信息。其它五个是保存的程序状态寄存器(SPSR): 每个特权模式都有一个,持有完成在这个模式下的例外处理时处理器必须返回的关于状态的信息。

分别使用 MSR 和 MRS 指令来设置和读取这些寄存器。

 


流水线

不同于微编码的处理器,ARM (保持它的 RISC 性)是完全硬布线的。

为了加速 ARM 2 和 3 的执行使用 3 阶段流水线。第一阶段持有从内存中取回的指令。第二阶段开始解码,而第三阶段实际执行它。故此,程序计数器总是超出当前执行的指令两个指令。(在为分支指令计算偏移量时必须计算在内)。

因为有这个流水线,在分支时丢失 2 个指令周期(因为要重新添满流水线)。所以最好利用条件执行指令来避免浪费周期。例如:

	...
	CMP R0,#0
	BEQ over
	MOV R1,#1
	MOV R2,#2
over
	...

可以写为更有效的:
	...
	CMP R0,#0
	MOVNE R1,#1
	MOVNE R2,#2
	...

 


时序

ARM 指令在时序上是 S、N、I 和 C 周期的混合。

S 周期是 ARM 在其中访问一个顺序的内存位置的周期。

N 周期是 ARM 在其中访问一个非顺序的内存位置的周期。

I 周期是 ARM 在其中不尝试访问一个内存位置或传送一个字到/从一个协处理器的周期。

C 周期是 ARM 在其中与一个协处理器之间在数据总线(对于无缓存的 ARM)或协处理器总线(对于有缓存的 ARM)上写传送一个字的周期。

各种类型的周期都必须至少与 ARM 的时钟周期一样长。内存系统可以伸展它们: 对于典型的 DRAM 系统,结果是:

  • N 周期变成最小长度的两倍(主要因为 DRAM 在内存访问是非顺序时要求更长的访问协议)。
  • S 周期通常是最小长度,但偶尔也会被伸展成 N 周期的长度(在你从一个内存“行”的最后一个字移动到下一行的第一个字的时候[1])。
  • I 周期和 C 周期总是最小长度。

对于典型的 SRAM 系统,所有类型的周期典型的都是最小长度。

在 Acorn Archimedes A440/1 使用的 8MHz ARM2 中,一个 S (顺序) 周期是 125ns 而一个 N (非顺序) 周期是 250ns。应当注意到这些时序不是 ARM 的属性,而是内存系统的属性。例如,一个 8MHz ARM2 可以与一个给出 125ns 的 N 周期的 RAM 系统相连接。处理器的速率是 8MHz 只是简单的意味着如果你使任何类型的周期在长度上小于 125ns 则它不保证能够工作。

有缓存的处理器: 所有给出的信息依据 ARM 所见到的时钟周期。它们不按固定的速率发生: 缓�

资源文件列表:

ARM处理器指令集.zip 大约有90个文件
  1. ARM处理器指令集/
  2. ARM处理器指令集/#IDXHDR 4KB
  3. ARM处理器指令集/#ITBITS
  4. ARM处理器指令集/#STRINGS 933B
  5. ARM处理器指令集/#SYSTEM 4.16KB
  6. ARM处理器指令集/#TOPICS 1.7KB
  7. ARM处理器指令集/#URLSTR 3.44KB
  8. ARM处理器指令集/#URLTBL 1.28KB
  9. ARM处理器指令集/#WINDOWS 596B
  10. ARM处理器指令集/$FIftiMain 93.28KB
  11. ARM处理器指令集/$OBJINST 2.65KB
  12. ARM处理器指令集/$WWAssociativeLinks/
  13. ARM处理器指令集/$WWAssociativeLinks/Property 4B
  14. ARM处理器指令集/$WWKeywordLinks/
  15. ARM处理器指令集/$WWKeywordLinks/BTree 8.07KB
  16. ARM处理器指令集/$WWKeywordLinks/Data 1.6KB
  17. ARM处理器指令集/$WWKeywordLinks/Map 26B
  18. ARM处理器指令集/$WWKeywordLinks/Property 32B
  19. ARM处理器指令集/arm.hhc 20.34KB
  20. ARM处理器指令集/arm.hhk 18.27KB
  21. ARM处理器指令集/ARM指令集/
  22. ARM处理器指令集/ARM指令集/#IDXHDR 4KB
  23. ARM处理器指令集/ARM指令集/#ITBITS
  24. ARM处理器指令集/ARM指令集/#STRINGS 933B
  25. ARM处理器指令集/ARM指令集/#SYSTEM 4.16KB
  26. ARM处理器指令集/ARM指令集/#TOPICS 1.7KB
  27. ARM处理器指令集/ARM指令集/#URLSTR 3.44KB
  28. ARM处理器指令集/ARM指令集/#URLTBL 1.28KB
  29. ARM处理器指令集/ARM指令集/#WINDOWS 596B
  30. ARM处理器指令集/ARM指令集/$FIftiMain 93.28KB
  31. ARM处理器指令集/ARM指令集/$OBJINST 2.65KB
  32. ARM处理器指令集/ARM指令集/$WWAssociativeLinks/
  33. ARM处理器指令集/ARM指令集/$WWAssociativeLinks/Property 4B
  34. ARM处理器指令集/ARM指令集/$WWKeywordLinks/
  35. ARM处理器指令集/ARM指令集/$WWKeywordLinks/BTree 8.07KB
  36. ARM处理器指令集/ARM指令集/$WWKeywordLinks/Data 1.6KB
  37. ARM处理器指令集/ARM指令集/$WWKeywordLinks/Map 26B
  38. ARM处理器指令集/ARM指令集/$WWKeywordLinks/Property 32B
  39. ARM处理器指令集/ARM指令集/arm.hhc 20.34KB
  40. ARM处理器指令集/ARM指令集/arm.hhk 18.27KB
  41. ARM处理器指令集/ARM指令集/Html/
  42. ARM处理器指令集/ARM指令集/Html/arm/
  43. ARM处理器指令集/ARM指令集/Html/arm/32bit.html 10.45KB
  44. ARM处理器指令集/ARM指令集/Html/arm/32rules.html 2.35KB
  45. ARM处理器指令集/ARM指令集/Html/arm/apcsintro.html 18.55KB
  46. ARM处理器指令集/ARM指令集/Html/arm/arm.html 1.77KB
  47. ARM处理器指令集/ARM指令集/Html/arm/ARMinstrs.html 33.83KB
  48. ARM处理器指令集/ARM指令集/Html/arm/bl.html 2.86KB
  49. ARM处理器指令集/ARM指令集/Html/arm/cmp.html 3.63KB
  50. ARM处理器指令集/ARM指令集/Html/arm/cond.html 7.02KB
  51. ARM处理器指令集/ARM指令集/Html/arm/copyright.html 3.76KB
  52. ARM处理器指令集/ARM指令集/Html/arm/fpops.html 12.88KB
  53. ARM处理器指令集/ARM指令集/Html/arm/index.html 1.77KB
  54. ARM处理器指令集/ARM指令集/Html/arm/mov.html 8.9KB
  55. ARM处理器指令集/ARM指令集/Html/arm/mul.html 2.03KB
  56. ARM处理器指令集/ARM指令集/Html/arm/pseudo.html 5.46KB
  57. ARM处理器指令集/ARM指令集/Html/arm/psr.html 9.04KB
  58. ARM处理器指令集/ARM指令集/Html/arm/qfinder.html 7.38KB
  59. ARM处理器指令集/ARM指令集/Html/arm/regs.html 4.28KB
  60. ARM处理器指令集/ARM指令集/Html/arm/shift.html 4.59KB
  61. ARM处理器指令集/ARM指令集/Html/arm/str.html 8.94KB
  62. ARM处理器指令集/ARM指令集/Html/arm/swi.html 5.6KB
  63. ARM处理器指令集/ARM指令集/Html/arm.gif 7.89KB
  64. ARM处理器指令集/ARM指令集/Html/global.css 487B
  65. ARM处理器指令集/ARM指令集/Html/Index.htm 3.08KB
  66. ARM处理器指令集/Html/
  67. ARM处理器指令集/Html/arm/
  68. ARM处理器指令集/Html/arm/32bit.html 10.45KB
  69. ARM处理器指令集/Html/arm/32rules.html 2.35KB
  70. ARM处理器指令集/Html/arm/apcsintro.html 18.55KB
  71. ARM处理器指令集/Html/arm/arm.html 1.77KB
  72. ARM处理器指令集/Html/arm/ARMinstrs.html 33.83KB
  73. ARM处理器指令集/Html/arm/bl.html 2.86KB
  74. ARM处理器指令集/Html/arm/cmp.html 3.63KB
  75. ARM处理器指令集/Html/arm/cond.html 7.02KB
  76. ARM处理器指令集/Html/arm/copyright.html 3.76KB
  77. ARM处理器指令集/Html/arm/fpops.html 12.88KB
  78. ARM处理器指令集/Html/arm/index.html 1.77KB
  79. ARM处理器指令集/Html/arm/mov.html 8.9KB
  80. ARM处理器指令集/Html/arm/mul.html 2.03KB
  81. ARM处理器指令集/Html/arm/pseudo.html 5.46KB
  82. ARM处理器指令集/Html/arm/psr.html 9.04KB
  83. ARM处理器指令集/Html/arm/qfinder.html 7.38KB
  84. ARM处理器指令集/Html/arm/regs.html 4.28KB
  85. ARM处理器指令集/Html/arm/shift.html 4.59KB
  86. ARM处理器指令集/Html/arm/str.html 8.94KB
  87. ARM处理器指令集/Html/arm/swi.html 5.6KB
  88. ARM处理器指令集/Html/arm.gif 7.89KB
  89. ARM处理器指令集/Html/global.css 487B
  90. ARM处理器指令集/Html/Index.htm 3.08KB
0评论
提交 加载更多评论
其他资源 springboot物流管理平台(附源码+数据库)53472
(1)用户注册登录:允许前台普通用户注册账号,并使用账号和密码进行登录,以便管理个人信息和操作记录。 (2)公告信息:当用户点击“公告信息”这一菜单按钮,会显示管理员在后台发布的所有的公告信息,可以查看详情。 (3)新闻资讯:当用户点击“新闻资讯”这一菜单按钮,会显示管理员在后台发布的所有的资讯信息,可以查看详情。 (4)产品信息:用户可以浏览产品信息列表,搜索关键词和筛选条件,了解包括产品编号、产品名称、产品类型、产品数量、商家用户、商家名称、产品价格、产品规格、产品详情等信息,并进行购买、点赞、收藏和评论感兴趣的产品信息。 (5)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改信息进行管控。 (6)个人中心:普通用户在前台点击“个人中心”可以对订单信息进行管理。
springboot物流管理平台(附源码+数据库)53472 springboot物流管理平台(附源码+数据库)53472 springboot物流管理平台(附源码+数据库)53472
SSM大学生心理咨询系统(附源码+数据库)58380
(1)首页:学生用户可以一览无余地看到我们平台提供的各项服务。首页布局清晰,色彩温馨,旨在为用户创造一个舒适、友好的使用环境。用户可以轻松点击各个功能板块,探索更多内容。 (2)聊天交流:为学生用户提供了一个与同龄人、心理医生和志愿者交流的平台。在这里,他们可以分享心情、寻求帮助,或者为其他同学提供支持和鼓励。聊天界面简洁直观,支持文字和语音输入,让用户能够更加自由地表达自己的情感。 (3)心理测评:通过一系列专业的心理测试,帮助学生用户更好地了解自己的心理状况。这些测试包括焦虑、抑郁、自尊等多个方面,用户可以根据自己的需求选择合适的测试进行。测试结果将以图表和文字的形式展示,帮助用户更加清晰地认识自己。 (4)公告消息:管理员会发布关于平台动态、心理健康知识、活动通知等重要信息。学生用户可以随时关注这里的更新,以便及时了解平台的最新动态和实用信息。 (5)心理文章:板块汇集了大量关于心理健康的优质文章,包括心理科普、案例分析、自我调适技巧等。用户可以根据自己的兴趣和需求,在这里找到适合自己的阅读内容。并可以对喜欢的文章进行点赞、收藏和评论。
SSM大学生心理咨询系统(附源码+数据库)58380 SSM大学生心理咨询系统(附源码+数据库)58380 SSM大学生心理咨询系统(附源码+数据库)58380
前端 html + css + javascript(choise-card) .zip
前端 html + css + javascript(choise-card) .zip
前端 html + css + javascript(choise-card) .zip
扫描_5ded95f0811d407484dd3b1790de4e77.zip
扫描_5ded95f0811d407484dd3b1790de4e77.zip
spark新能源汽车推荐系统(附源码+数据库)42422
(1)注册登录:当用户想要对系统中所实现的功能进行查询管理的时候,就必须进行登录到系统当中,如果没有账号的话,可以在登录窗口中进行注册,然后再通过账号密码登录。 (2)用户:普通用户在前台可以轻松管理自己的账号。他们可以修改个人资料,确保信息的准确性;同时,为了账户安全,用户还可以随时更改密码。 (3)个人中心操作:在个人中心,用户可以查看和管理自己的收藏内容,无论是汽车信息还是充电站信息,都可以方便地收藏和查看。 (4)首页:用户在前台首页可以浏览到最新的汽车信息和充电站信息,快速了解市场动态。 (5)提醒通知:用户可以及时查看提醒通知,包括新的汽车信息发布、充电站更新、系统公告等,确保不错过任何重要信息。 (6)汽车信息:用户可以通过品牌、车型、发布时间等关键字搜索并查看汽车信息详情,对感兴趣的汽车进行点赞、收藏,并发表评论与其他用户交流。 (7)充电站:用户可以搜索并查看各个充电站的详细信息,包括名称、位置、充电桩数量等,对满意的充电站进行点赞、收藏,并发表评论分享使用体验。 后台管理员端:公共管理、用户管理、权限管理、汽车车型、汽车信息、充电站、销售信息、区域销售、购买信息
spark新能源汽车推荐系统(附源码+数据库)42422 spark新能源汽车推荐系统(附源码+数据库)42422 spark新能源汽车推荐系统(附源码+数据库)42422
足球社区管理系统 基于Spring Boot框架实现的足球社区管理系统(程序+数据库+报告)
基于Spring Boot框架实现的足球社区管理系统,系统包含两种角色:管理员、教练用户,系统分为前台和后台两大模块,主要功能如下。 【前台】: - 首页:展示系统的概览信息和热门内容。 - 足球资讯:提供最新的足球资讯新闻、赛事报道等内容。 - 球队:展示各个球队的信息和成员,包括球队介绍、球员信息等。 - 场地:提供足球场地的信息,包括场地预订、场地租借等功能。 - 论坛:提供一个讨论足球相关话题的平台。 【管理员】: - 个人中心:管理员可以查看和编辑个人信息。 - 管理员管理:管理员可以对其他管理员进行管理,包括添加、编辑和删除管理员账号。 - 基础数据管理:管理员可以管理系统的基础数据,包括分类、标签等信息的添加、编辑和删除。 - 论坛管理:管理员可以管理论坛的帖子,包括审核、删除等操作。 - 足球资讯管理:管理员可以发布和管理系统的足球资讯信息,包括添加、编辑和删除资讯。 - 球队管理:管理员可以管理球队的信息,包括添加、编辑和删除球队,以及管理球队成员。 - 训练打卡管理:管理员可以管理学生的训练打卡记录,包括查看、审核和统计等操作。 - 场地管理:管理员可以管理场地
足球社区管理系统 基于Spring Boot框架实现的足球社区管理系统(程序+数据库+报告)
springboot宿舍报修微信小程序(0附源码+数据库)35821
登录模块:使用者必须输入正确的账号与密码才能访问系统。 公告管理模块:如果登录当前管理员有公告管理的权限即可以进行公告的查询、新增、删除、修改信息的操作。 宿舍公约管理模块:管理者根据选择,可以给用户发布宿舍公约,在添加宿舍公约是输入宿舍公约的详细信息,添加需要上传的文件之后回到宿舍公约管理界面,在修改宿舍公约时修改不对的信息,也可以删除重新添加宿舍公约。 报修信息管理模块:相关权限用户可以进行报修信息的查询、修改、删除操作,也可以对报修信息等数据项进行单独操作,设置数据类型等参数。
springboot宿舍报修微信小程序(0附源码+数据库)35821 springboot宿舍报修微信小程序(0附源码+数据库)35821 springboot宿舍报修微信小程序(0附源码+数据库)35821
springboot房屋租赁系统(附源码+数据库)32524
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现房屋信息的收藏评论等,就必须有这个系统的账号,如果没有账号的话,可以注册成用户进行相关的操作,同时用户还可以对个人信息以及操作的信息进行管控。 (2)查看房屋租赁管理系统的首页信息:房屋租赁管理系统的首页信息包含了首页、交流社区、通知公告、新闻资讯、在线投诉、房屋信息等。 (3)通知公告:当用户点击“通知公告”这一菜单按钮,会显示管理员在后台发布的所有的通知公告,可以查看详情; (4)交流社区:当用户点击“交流社区”这一菜单按钮,可以查看交流社区信息或者发布交流社区信息。 (5)新闻资讯:当用户点击“新闻资讯”这一菜单按钮,会显示管理员在后台发布的所有的新闻资讯,可以查看详情,进行收藏、点赞、评论等; (6)房屋信息:当用户点击“房屋信息”这一菜单按钮,会显示管理员在后台发布的所有的房屋信息,支持通过关键词对房屋信息进行搜索,选择需要的房屋信息点击可以进入到房屋信息详细的介绍界面,在详细界面可以查看到房屋的房东用户、房屋名称、房屋面积、房屋朝向等信息,同时可以进行预订租房、点赞、收藏、评论操作;
springboot房屋租赁系统(附源码+数据库)32524 springboot房屋租赁系统(附源码+数据库)32524 springboot房屋租赁系统(附源码+数据库)32524