ARM学习笔记(三)--Thumb状态下寄存器
时间: 2023-08-21 11:03:26 浏览: 72
在ARM处理器的Thumb状态下,使用的是16位指令,无法直接访问32位寄存器。因此,需要用到一些特殊的寄存器,来存储32位寄存器的值。
1. 寄存器组
Thumb状态下,ARM处理器有两个寄存器组,分别是r0-r7和r8-r14。其中r15寄存器作为程序计数器,不在寄存器组中。
r0-r7可以存储8个32位寄存器的低16位,即r0存储r0-r1的低16位,r2存储r2-r3的低16位,以此类推。r8-r14可以存储7个32位寄存器的全局值,即r8存储r8、r9、r10和r11的值,r12存储r12的值,r13存储栈指针SP的值,r14存储链接寄存器LR的值。
2. 应用
在Thumb状态下,可以使用LDR指令将32位寄存器的值加载到寄存器组中的对应寄存器中。例如:
```
LDR r0, [r5]
```
将r5所指向的32位寄存器的值加载到r0-r1的低16位中。
另外,在Thumb状态下,寄存器组中的寄存器也可以直接参与运算。例如:
```
ADD r0, r1, r3
```
将r1-r2的低16位和r3-r4的低16位相加,结果存储在r0-r1的低16位中。
总之,在Thumb状态下,需要注意寄存器组的使用,特别是在处理32位数据时。
相关问题
webkit-slider-thumb
`webkit-slider-thumb` 是一个 CSS 伪元素,用于样式化 `<input type="range">` 元素的滑块。它允许开发者设置滑块的样式,包括大小、颜色、形状等。在 WebKit 浏览器中,可以使用 `-webkit-slider-thumb` 来访问此伪元素。例:
```css
input[type=range]::-webkit-slider-thumb {
background-color: #1a73e8;
border: none;
border-radius: 50%;
height: 20px;
width: 20px;
}
```
上述代码会将 `<input type="range">` 元素的滑块样式修改为一个半径为 10px 的圆形,背景颜色为蓝色。注意,该样式只在 WebKit 浏览器中生效,如果需要在其他浏览器中生效,需要相应地添加其他厂商前缀。
::-webkit-scrollbar-thumb cursor
`::-webkit-scrollbar-thumb`是用于定义滚动条内部小方块的样式的伪元素。`cursor`属性用于定义鼠标指针在元素上的样式。通过设置`cursor`属性,可以改变鼠标指针在滚动条内部小方块上的样式。
以下是一个示例代码,演示如何使用`cursor`属性来改变滚动条内部小方块的鼠标指针样式:
```css
::-webkit-scrollbar-thumb {
cursor: pointer;
}
```
上述代码将滚动条内部小方块的鼠标指针样式设置为指针形状,表示可以点击或拖动滚动条。