首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有关新AVR指令LAC、LAS、LAT和XCH的更详细信息

有关新AVR指令LAC、LAS、LAT和XCH的更详细信息
EN

Stack Overflow用户
提问于 2012-01-17 20:27:20
回答 2查看 2.8K关注 0票数 11

看看AVR指令集,2010年增加了四个指令

代码语言:javascript
运行
复制
LAC load and clear
LAS load and set
LAT load and toggle
XCH load and exchange
  1. 有人知道这些指令是什么芯片吗?
  2. 哪些工具支持这些说明?
  3. 关于他们做什么的更多信息(Z) <- Rd v (Z),Rd <- (Z)

这是否意味着Rd和( Z )得到了相同的值,还是Rd得到了Z指向的预修改的值?

EN

回答 2

Stack Overflow用户

发布于 2012-01-25 14:06:40

这些芯片可能不在当前(最初的问题)芯片中,但它们都有一个共同的主题--原子内存操作。它们的目的通常是用于线程之间的同步,它们在指令集级别上的包含可能表明Atmel计划推出一种多核AVR芯片。因为它们现在被指定了,所以工具供应商已经可以将它们添加到汇编程序中了,但是在芯片得到指令之前,它们不会对此做什么。(编辑:事实证明,另一个核心是USB外围设备,而不是CPU。感谢avakar提供的信息。)

我从Atmel AVR 8位指令集手册上读到的行为

LAC -加载和清除,将内存内容*Z加载到寄存器Rd中,同时清除在Rd中设置的*Z中的位。

LAS加载和设置同时在寄存器中设置的存储器位置中设置位,并用存储器位置的先前内容加载寄存器。例如,对于单比特互斥非常有用。

LAT - Load和Toggle;和LAS一样,但它使用的不是按位的或,而是使用按位的xor,这样就可以切换位。

;只是交换内存和注册内容。

它们都是RAM访问指令(07/2014引用状态,它们需要两个周期),它们将操作组合在一起,这样它们还可以使代码比当前更快地需要RAM。

票数 4
EN

Stack Overflow用户

发布于 2017-01-20 20:58:22

小但重要的细节要强调:当Z指向“真正的”SRAM时,LAS、LAC和LAT指令可以工作。这不是(内存映射)寄存器等等。因此,实际上,这些寄存器对于您自己的(OS)数据或XMega USB模块都是有用的,没有其他外设和模块。

这是一个遗憾(例如,操作PMIC.CTRL标志非常方便),但它真的不起作用。测试过了。看起来LAS、LAC和LAT在应用于内存映射寄存器时具有与XCH ( Rd和(Z)之间的交换,但没有一点旋转)相同的效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8901275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档