From 13c78ab9f65081d4c7ab4b930035c6bcf663d8bb Mon Sep 17 00:00:00 2001 From: linchaolong Date: Sat, 9 Nov 2024 04:23:59 +0800 Subject: [PATCH] =?UTF-8?q?Android=20=E4=B8=8B=E5=86=85=E8=81=94=E6=B1=87?= =?UTF-8?q?=E7=BC=96=EF=BC=8CAndroid=20Studio=20=E6=B1=87=E7=BC=96?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...207\347\274\226\345\274\200\345\217\221.md" | 5 ++++- public/index.xml | 6 +++--- .../index.html" | 18 +++++++++--------- public/posts/index.xml | 6 +++--- public/sitemap.xml | 6 +++--- 5 files changed, 22 insertions(+), 19 deletions(-) diff --git "a/content/posts/Android \344\270\213\345\206\205\350\201\224\346\261\207\347\274\226\357\274\214Android Studio \346\261\207\347\274\226\345\274\200\345\217\221.md" "b/content/posts/Android \344\270\213\345\206\205\350\201\224\346\261\207\347\274\226\357\274\214Android Studio \346\261\207\347\274\226\345\274\200\345\217\221.md" index a0157c5..a843a68 100644 --- "a/content/posts/Android \344\270\213\345\206\205\350\201\224\346\261\207\347\274\226\357\274\214Android Studio \346\261\207\347\274\226\345\274\200\345\217\221.md" +++ "b/content/posts/Android \344\270\213\345\206\205\350\201\224\346\261\207\347\274\226\357\274\214Android Studio \346\261\207\347\274\226\345\274\200\345\217\221.md" @@ -1,6 +1,6 @@ +++ title = 'Android 下内联汇编,Android Studio 汇编开发' -date = 2024-11-09T02:22:47.347977+08:00 +date = 2024-11-09T04:23:34.840738+08:00 draft = false +++ @@ -15,7 +15,10 @@ Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作, 内联汇编在 C/C++ 代码中通过 asm 或 __asm__ 关键字进行声明,格式如下 + +``` asm ("汇编指令" : 输出操作数 : 输入操作数 : 破坏描述符); +``` 详细说明: diff --git a/public/index.xml b/public/index.xml index 074f405..215ad74 100644 --- a/public/index.xml +++ b/public/index.xml @@ -6,14 +6,14 @@ Recent content on CYRUS STUDIO Hugo zh-cn - Sat, 09 Nov 2024 02:22:47 +0800 + Sat, 09 Nov 2024 04:23:34 +0800 Android 下内联汇编,Android Studio 汇编开发 https://cyrus-studio.github.io/blog/posts/android-%E4%B8%8B%E5%86%85%E8%81%94%E6%B1%87%E7%BC%96android-studio-%E6%B1%87%E7%BC%96%E5%BC%80%E5%8F%91/ - Sat, 09 Nov 2024 02:22:47 +0800 + Sat, 09 Nov 2024 04:23:34 +0800 https://cyrus-studio.github.io/blog/posts/android-%E4%B8%8B%E5%86%85%E8%81%94%E6%B1%87%E7%BC%96android-studio-%E6%B1%87%E7%BC%96%E5%BC%80%E5%8F%91/ - 版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。 1. 基础语法 内联汇编在 C/C++ 代码中通过 asm 或 asm 关键字进行声明,格式如下 asm (“汇编指令” : 输出操作数 : 输入操作数 : 破坏描述符); 详细说明: 汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。 输出操作数:指定汇编代码的输出结果如何映射到 C++ 变量。 输入操作数:指定传递给汇编代码的输入。 破坏描述符:用于告诉编译器哪些寄存器或内存位置将被汇编代码修改,以避免编译器优化引起的问题。 2. 占位符 占位符用于在汇编指令中插入 C++ 变量,格式为 %0、%1 等,对应输出和输入操作数的顺序。 例如 int x = 10, y = 20, result; asm("add %0, %1, %2" : "=r"(result) : "r"(x), "r"(y)); 上面的代码将 x 和 y 相加并将结果存入 result。 3. 输出操作数和输入操作数 =r 表示输出操作数是一个通用寄存器类型。 + 版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。 1. 基础语法 内联汇编在 C/C++ 代码中通过 asm 或 asm 关键字进行声明,格式如下 asm ("汇编指令" : 输出操作数 : 输入操作数 : 破坏描述符); 详细说明: 汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。 输出操作数:指定汇编代码的输出结果如何映射到 C++ 变量。 输入操作数:指定传递给汇编代码的输入。 破坏描述符:用于告诉编译器哪些寄存器或内存位置将被汇编代码修改,以避免编译器优化引起的问题。 2. 占位符 占位符用于在汇编指令中插入 C++ 变量,格式为 %0、%1 等,对应输出和输入操作数的顺序。 例如 int x = 10, y = 20, result; asm("add %0, %1, %2" : "=r"(result) : "r"(x), "r"(y)); 上面的代码将 x 和 y 相加并将结果存入 result。 3. 输出操作数和输入操作数 =r 表示输出操作数是一个通用寄存器类型。 详解ARM汇编条件标志 diff --git "a/public/posts/android-\344\270\213\345\206\205\350\201\224\346\261\207\347\274\226android-studio-\346\261\207\347\274\226\345\274\200\345\217\221/index.html" "b/public/posts/android-\344\270\213\345\206\205\350\201\224\346\261\207\347\274\226android-studio-\346\261\207\347\274\226\345\274\200\345\217\221/index.html" index 759ddc6..42d7437 100644 --- "a/public/posts/android-\344\270\213\345\206\205\350\201\224\346\261\207\347\274\226android-studio-\346\261\207\347\274\226\345\274\200\345\217\221/index.html" +++ "b/public/posts/android-\344\270\213\345\206\205\350\201\224\346\261\207\347\274\226android-studio-\346\261\207\347\274\226\345\274\200\345\217\221/index.html" @@ -20,8 +20,8 @@ - - + + @@ -102,9 +102,9 @@

Android 下内联汇编,Android Studio 汇编开发内联汇编

Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。

1. 基础语法

-

内联汇编在 C/C++ 代码中通过 asm 或 asm 关键字进行声明,格式如下 -asm (“汇编指令” : 输出操作数 : 输入操作数 : 破坏描述符);

-

详细说明:

+

内联汇编在 C/C++ 代码中通过 asm 或 asm 关键字进行声明,格式如下

+
asm ("汇编指令" : 输出操作数 : 输入操作数 : 破坏描述符);
+

详细说明:

  • 汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。

    diff --git a/public/posts/index.xml b/public/posts/index.xml index 46bbb13..cd17fc9 100644 --- a/public/posts/index.xml +++ b/public/posts/index.xml @@ -6,14 +6,14 @@ Recent content in Posts on CYRUS STUDIO Hugo zh-cn - Sat, 09 Nov 2024 02:22:47 +0800 + Sat, 09 Nov 2024 04:23:34 +0800 Android 下内联汇编,Android Studio 汇编开发 https://cyrus-studio.github.io/blog/posts/android-%E4%B8%8B%E5%86%85%E8%81%94%E6%B1%87%E7%BC%96android-studio-%E6%B1%87%E7%BC%96%E5%BC%80%E5%8F%91/ - Sat, 09 Nov 2024 02:22:47 +0800 + Sat, 09 Nov 2024 04:23:34 +0800 https://cyrus-studio.github.io/blog/posts/android-%E4%B8%8B%E5%86%85%E8%81%94%E6%B1%87%E7%BC%96android-studio-%E6%B1%87%E7%BC%96%E5%BC%80%E5%8F%91/ - 版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。 1. 基础语法 内联汇编在 C/C++ 代码中通过 asm 或 asm 关键字进行声明,格式如下 asm (“汇编指令” : 输出操作数 : 输入操作数 : 破坏描述符); 详细说明: 汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。 输出操作数:指定汇编代码的输出结果如何映射到 C++ 变量。 输入操作数:指定传递给汇编代码的输入。 破坏描述符:用于告诉编译器哪些寄存器或内存位置将被汇编代码修改,以避免编译器优化引起的问题。 2. 占位符 占位符用于在汇编指令中插入 C++ 变量,格式为 %0、%1 等,对应输出和输入操作数的顺序。 例如 int x = 10, y = 20, result; asm("add %0, %1, %2" : "=r"(result) : "r"(x), "r"(y)); 上面的代码将 x 和 y 相加并将结果存入 result。 3. 输出操作数和输入操作数 =r 表示输出操作数是一个通用寄存器类型。 + 版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。 1. 基础语法 内联汇编在 C/C++ 代码中通过 asm 或 asm 关键字进行声明,格式如下 asm ("汇编指令" : 输出操作数 : 输入操作数 : 破坏描述符); 详细说明: 汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。 输出操作数:指定汇编代码的输出结果如何映射到 C++ 变量。 输入操作数:指定传递给汇编代码的输入。 破坏描述符:用于告诉编译器哪些寄存器或内存位置将被汇编代码修改,以避免编译器优化引起的问题。 2. 占位符 占位符用于在汇编指令中插入 C++ 变量,格式为 %0、%1 等,对应输出和输入操作数的顺序。 例如 int x = 10, y = 20, result; asm("add %0, %1, %2" : "=r"(result) : "r"(x), "r"(y)); 上面的代码将 x 和 y 相加并将结果存入 result。 3. 输出操作数和输入操作数 =r 表示输出操作数是一个通用寄存器类型。 详解ARM汇编条件标志 diff --git a/public/sitemap.xml b/public/sitemap.xml index c1d3a36..61dfb16 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/posts/android-%E4%B8%8B%E5%86%85%E8%81%94%E6%B1%87%E7%BC%96android-studio-%E6%B1%87%E7%BC%96%E5%BC%80%E5%8F%91/ - 2024-11-09T02:22:47+08:00 + 2024-11-09T04:23:34+08:00 https://cyrus-studio.github.io/blog/ - 2024-11-09T02:22:47+08:00 + 2024-11-09T04:23:34+08:00 https://cyrus-studio.github.io/blog/posts/ - 2024-11-09T02:22:47+08:00 + 2024-11-09T04:23:34+08:00 https://cyrus-studio.github.io/blog/posts/%E8%AF%A6%E8%A7%A3arm%E6%B1%87%E7%BC%96%E6%9D%A1%E4%BB%B6%E6%A0%87%E5%BF%97/ 2024-11-05T21:06:33+08:00