- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
查看 AVR 指令集,2010 年添加了 4 条指令
LAC load and clear
LAS load and set
LAT load and toggle
XCH load and exchange
有谁知道哪些芯片有这些说明
哪些工具支持这些说明
有关他们所做工作的更多信息
(Z) <- Rd v (Z),Rd <- (Z)
这是否意味着 Rd 和 (Z) 获得相同的值,或者 Rd 是否获得 Z 所指向的值的预修改值?
最佳答案
这些可能不存在于当前(截至最初问题)芯片中,但都有一个共同的主题 - 原子内存操作。它们的目的通常是用于线程之间的同步,并且将它们包含在指令集级别可能表明 Atmel 正计划推出多核 AVR 芯片。由于现在已经指定了它们,工具供应商已经可以将它们添加到汇编器中,但在芯片拥有指令之前,他们不会对此大做文章。 (编辑:事实证明,另一个核心是 USB 外设,而不是 CPU。感谢 avakar 提供的信息。)
我从 Atmel AVR 8-bit Instruction Set Manual 中读到的行为:
LAC - 加载和清除,将内存内容 *Z 加载到寄存器 Rd 中,同时清除 *Z 中在 Rd 中设置的位。
LAS - 加载和设置同时设置内存位置中已在寄存器中设置的位,并使用内存位置的先前内容加载寄存器。例如,对于单位互斥体非常有用。
LAT - 加载和切换;与 LAS 类似,但它不是按位或,而是使用按位异或,从而切换位。
XCH - 交易所;只是交换内存和寄存器内容。
所有这些都是 RAM 访问指令(07/2014 引用状态,它们需要两个周期),它们组合了操作,因此它们也可以使需要 RAM 的代码比当前更快。
关于assembly - 有关新 AVR 指令 LAC、LAS、LAT 和 XCH 的更多详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8901275/
我是一名优秀的程序员,十分优秀!