问题标签 [thumb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
9007 浏览

assembly - itte 在臂组件

以下行在手臂装配中做了什么:

我得到了第一行(将 r1 与 22 进行比较),但第二行呢(我以前从未见过 itte 命令,谷歌搜索什么也没返回)

0 投票
2 回答
11998 浏览

assembly - objdump 和 ARM 与 Thumb

我正在尝试使用 gcc 反汇编为 ARM 构建的对象。不幸的是,objdump 试图猜测代码是否是 ARM 和 Thumb,并且弄错了:它认为我的代码是 Thumb,而实际上它是 ARM。

我看到 objdump 有一个选项可以强制它将所有指令解释为 Thumb ( -Mforce-thumb),但它没有强制 ARM 模式的选项!

这对我来说似乎是一个非常奇怪的遗漏,并且严重阻碍了我完成工作的能力(我在嵌入式设备上,我唯一的调试方法是查看反汇编)。我尝试了各种方法,包括尝试告诉 objdump 使用不支持 Thumb 的 ARM 架构,但似乎没有任何效果。有任何想法吗?

(是的,我知道这些指令真的是ARM ......)

0 投票
1 回答
419 浏览

youtube - 解决使用自定义图像作为默认视频拇指的问题?

在 YouTube 中上传新视频后,YouTube 会自动生成三个缩略图。不幸的是,这三个图像通常是无用的。使用嵌入代码时,是否有任何解决方法可以使用我自己的自定义缩略图?

0 投票
1 回答
4565 浏览

ios - 在 ARM/Thumb (IOS) 上解码 BLX 指令

我已经阅读了很多 ARM 文档,但仍然无法解码 BLX 指令。这里有两个例子:

这两个都应该去同一个地方,虚拟地址 0x5FE4 如下所示:

但是,我无法弄清楚使用它们的指令字节从上述两个地址(0x347C 和 0x469C)得到什么计算。根据 ARM 文档,它应该是一个相对跳跃,使用 2 的右移,但数字不起作用。

任何人都可以帮忙吗?

0 投票
4 回答
9080 浏览

gcc - 从 C、GCC(裸机)调用 ARM 程序集

我正在尝试使用 GCC 在 ARM 中进行一些裸机编程并在 QEMU 上进行测试。每当我从 C 调用 ARM 标签时,我的程序就会挂起。我有一个简单的代码示例,它在https://gist.github.com/1654392上显示了问题——当我在该代码中调用 activate() 时,它挂起。

我用 objdump 观察到,当我从汇编代码到 C 代码(从 _start 开始)执行 bl 时,它会生成一个切换到拇指指令的小包装器。似乎 C 代码都是在拇指指令中生成的,但我所有的程序集都是在 ARM(32 位)指令中生成的。我无法弄清楚为什么会这样或如何解决它。

0 投票
2 回答
673 浏览

iphone - 减少 iphone 应用程序二进制大小的有用方法

如何减少应用程序二进制大小以适应苹果应用商店的要求?有什么有用的方法可用吗?

我们尝试了以下方法。

  1. 产生 16 字节的拇指指令而不是原来的 32 字节。
  2. 使用 LLVM + XCode 4.2 构建项目。

仍然很大,嘿,你们这些聪明人,任何想法或技巧请分享和讨论,提前谢谢。

0 投票
1 回答
335 浏览

arm - ARM (thumb) 固件模组...如何将几行 ASM 转换为代码以制作模组

用IDA(ARM920核心)拆解固件..大多数是拇指模式..有些是ARM模式想在ASM中制作一些模组。

将几行 ASM(几十行)转换为机器语言的最简单方法是什么。有人可以建议一个免费的工具/如何。

我刚下载了WinARM。附带程序员记事本。已经几个小时了,试图理解这一切......只是为了编译几行ASM......我制作的MAKE文件仍然无法正常工作(关于行尾的一些事情)

0 投票
4 回答
2197 浏览

wpf - 使用拇指移动转换后的控件会产生奇怪的行为

尝试使用拇指在画布上移动控件时,我遇到了一种奇怪的行为。当我将控件添加到画布并使用 Thumb DragDelta 事件来移动它时,一切看起来都很好。但是当我对控件应用旋转变换时,拖动它是很奇怪的。控件开始围绕光标转圈,角度越大圈圈越大。

有谁知道如何使拇指与转换后的元素一起工作?我花了一整天的时间试图弄清楚,但没有什么聪明的想法出现在我的脑海中。

谢谢你的帮助!

0 投票
1 回答
13297 浏览

gcc - 在 Thumb 代码中使用 BX 调用 Thumb 函数,或跳转到另一个函数中的 Thumb 指令

我正在尝试学习对固件修改有用的技能(我没有源代码)这些问题涉及使用拇指代码中的 BX 来跳转或调用其他现有的拇指代码。

  1. 如何使用 BX 从我的 THUMB 代码跳转到现有固件 THUMB 代码。
  2. 我如何使用 BX 从我的 THUMB 代码中调用现有的 THUMB 函数(必须先设置 LR)。

我的理解是 cpu 查看 lsb 位(位 0),我必须确保将其设置为1以将 cpu 状态保持为“拇指状态”。所以我想我必须加 1,才能将 lsb 位设置为 1。

所以......说我只想跳转到 0x24000 (在一些现有的 THUMB 代码中间)

我认为这是正确的?

现在说我想使用 BX 调用现有的 thumb 函数,并且我希望它返回给我,所以我需要将 LR 设置为我希望它返回的位置。

假设我要调用的函数位于 0x24000建议我使用:

这是我不明白的:

  1. R2 中的地址没有设置 lsb 位...所以不会将bx r2模式切换到 ARM 模式??

  2. LR .. 有人告诉我,PC 的地址为(当前指令的开头,+ 4)。在 Thumb 和 Arm 中,任何指令地址都必须对齐(16 位或 32 位),因此不会将 LSB 位设置为 1。只有奇数将 lsb 位设置为 1。

所以在上面的代码中,我将 LR 设置为(PC),一个也没有设置 lsb 位 1 的地址。因此,当我调用的函数出现在它的结尾时,并且确实BX LR,... uhmmm .. 怎样才能返回到我的 THUMB 代码?我肯定错过了什么...

通常 BL 用于调用函数。手册说 BL 指令将 LR 设置为下一行代码......那么这是否意味着(通常使用的)BLTHUMB 指令将 LR 设置为return addr + 1自动?

0 投票
3 回答
12727 浏览

assembly - ldr 和 ldr.w 的区别

我最近不得不调试一个 MachO 二进制文件,我遇到了以下指令:-

ldr.w r4, [r1, r0, lsl #2]

我知道ldr r4, [r1, r0, lsl #2]将 r0 向左移动两次,将其添加到 r1 并取消引用结果。

ldr.w 有何不同?