diff --git "a/content/posts/Thumb \346\261\207\347\274\226\346\214\207\344\273\244\351\233\206\357\274\214Thumb \346\214\207\344\273\244\347\274\226\347\240\201\346\226\271\345\274\217\357\274\214\347\274\226\350\257\221 Thumb \346\261\207\347\274\226\344\273\243\347\240\201.md" "b/content/posts/Thumb \346\261\207\347\274\226\346\214\207\344\273\244\351\233\206\357\274\214Thumb \346\214\207\344\273\244\347\274\226\347\240\201\346\226\271\345\274\217\357\274\214\347\274\226\350\257\221 Thumb \346\261\207\347\274\226\344\273\243\347\240\201.md"
index 352b515..a3e772a 100644
--- "a/content/posts/Thumb \346\261\207\347\274\226\346\214\207\344\273\244\351\233\206\357\274\214Thumb \346\214\207\344\273\244\347\274\226\347\240\201\346\226\271\345\274\217\357\274\214\347\274\226\350\257\221 Thumb \346\261\207\347\274\226\344\273\243\347\240\201.md"
+++ "b/content/posts/Thumb \346\261\207\347\274\226\346\214\207\344\273\244\351\233\206\357\274\214Thumb \346\214\207\344\273\244\347\274\226\347\240\201\346\226\271\345\274\217\357\274\214\347\274\226\350\257\221 Thumb \346\261\207\347\274\226\344\273\243\347\240\201.md"
@@ -1,6 +1,6 @@
+++
title = 'Thumb 汇编指令集,Thumb 指令编码方式,编译 Thumb 汇编代码'
-date = 2024-11-04T02:29:37.450311+08:00
+date = 2024-11-04T02:39:15.327917+08:00
draft = false
+++
@@ -107,7 +107,9 @@ int main() {
```
执行下面命令把 hello_thumb.c 编译成 thumb 汇编代码文件 hello_thumb.s
+```
armv7a-linux-androideabi35-clang -S -mthumb hello_thumb.c -o hello_thumb.s
+```
-mthumb 表示使用 thumb 汇编
关于ARM程序生成过程可以参考这篇文章【[详解ARM64可执行程序的生成过程](https://cyrus-studio.github.io/blog/posts/%E8%AF%A6%E8%A7%A3arm64%E5%8F%AF%E6%89%A7%E8%A1%8C%E7%A8%8B%E5%BA%8F%E7%9A%84%E7%94%9F%E6%88%90%E8%BF%87%E7%A8%8B/)】
@@ -184,7 +186,9 @@ main:
```
执行下面命令把 thumb 汇编文件编译成可执行程序 hello_thumb。
+```
armv7a-linux-androideabi35-clang hello_thumb.s -o hello_thumb
+```
把 hello_thumb 推送到 android 设备并执行
```
diff --git a/public/index.xml b/public/index.xml
index de4afec..62dab45 100644
--- a/public/index.xml
+++ b/public/index.xml
@@ -6,12 +6,12 @@
执行下面命令把 hello_thumb.c 编译成 thumb 汇编代码文件 hello_thumb.s -armv7a-linux-androideabi35-clang -S -mthumb hello_thumb.c -o hello_thumb.s --mthumb 表示使用 thumb 汇编
+执行下面命令把 hello_thumb.c 编译成 thumb 汇编代码文件 hello_thumb.s
+armv7a-linux-androideabi35-clang -S -mthumb hello_thumb.c -o hello_thumb.s
+
-mthumb 表示使用 thumb 汇编
关于ARM程序生成过程可以参考这篇文章【详解ARM64可执行程序的生成过程】
打开 hello_thumb.s 可以看到,结构上和 ARM 汇编是差不多的,多了一些 thumb 标记,如:.code 16、.thumb_func 标记为 16 位 thumb,还有使用到 thumb 指令。
.text // 指令区段开始
@@ -273,9 +273,9 @@ 编译 Thumb 汇编指令
执行下面命令把 thumb 汇编文件编译成可执行程序 hello_thumb。 -armv7a-linux-androideabi35-clang hello_thumb.s -o hello_thumb
-把 hello_thumb 推送到 android 设备并执行
+执行下面命令把 thumb 汇编文件编译成可执行程序 hello_thumb。
+armv7a-linux-androideabi35-clang hello_thumb.s -o hello_thumb
+
把 hello_thumb 推送到 android 设备并执行
adb push .\hello_thumb /data/local/tmp
adb shell chmod +x /data/local/tmp/hello_thumb
adb shell /data/local/tmp/hello_thumb
diff --git a/public/sitemap.xml b/public/sitemap.xml
index beb442a..3ba514e 100644
--- a/public/sitemap.xml
+++ b/public/sitemap.xml
@@ -3,13 +3,13 @@
xmlns:xhtml="http://www.w3.org/1999/xhtml">
https://cyrus-studio.github.io/blog/
- 2024-11-04T02:29:37+08:00
+ 2024-11-04T02:39:15+08:00
https://cyrus-studio.github.io/blog/posts/
- 2024-11-04T02:29:37+08:00
+ 2024-11-04T02:39:15+08:00
https://cyrus-studio.github.io/blog/posts/thumb-%E6%B1%87%E7%BC%96%E6%8C%87%E4%BB%A4%E9%9B%86thumb-%E6%8C%87%E4%BB%A4%E7%BC%96%E7%A0%81%E6%96%B9%E5%BC%8F%E7%BC%96%E8%AF%91-thumb-%E6%B1%87%E7%BC%96%E4%BB%A3%E7%A0%81/
- 2024-11-04T02:29:37+08:00
+ 2024-11-04T02:39:15+08:00
https://cyrus-studio.github.io/blog/posts/adb-%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95%E6%89%8B%E5%8A%A8%E4%BF%AE%E6%94%B9-adb-%E8%B0%83%E8%AF%95%E6%8E%88%E6%9D%83%E4%BF%A1%E6%81%AF/
2024-11-03T04:49:00+08:00