Skip to content

Commit

Permalink
Android 下内联汇编,Android Studio 汇编开发
Browse files Browse the repository at this point in the history
  • Loading branch information
CYRUS-STUDIO committed Nov 8, 2024
1 parent 582f460 commit 13c78ab
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -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
+++

Expand All @@ -15,7 +15,10 @@ Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,


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

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

详细说明:

Expand Down
6 changes: 3 additions & 3 deletions public/index.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
<description>Recent content on CYRUS STUDIO</description>
<generator>Hugo</generator>
<language>zh-cn</language>
<lastBuildDate>Sat, 09 Nov 2024 02:22:47 +0800</lastBuildDate>
<lastBuildDate>Sat, 09 Nov 2024 04:23:34 +0800</lastBuildDate>
<atom:link href="https://cyrus-studio.github.io/blog/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Android 下内联汇编,Android Studio 汇编开发</title>
<link>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/</link>
<pubDate>Sat, 09 Nov 2024 02:22:47 +0800</pubDate>
<pubDate>Sat, 09 Nov 2024 04:23:34 +0800</pubDate>
<guid>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/</guid>
<description>版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/&#xA;内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。&#xA;1. 基础语法 内联汇编在 C/C++ 代码中通过 asm 或 asm 关键字进行声明,格式如下 asm (&amp;ldquo;汇编指令&amp;rdquo; : 输出操作数 : 输入操作数 : 破坏描述符);&#xA;详细说明:&#xA;汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。&#xA;输出操作数:指定汇编代码的输出结果如何映射到 C++ 变量。&#xA;输入操作数:指定传递给汇编代码的输入。&#xA;破坏描述符:用于告诉编译器哪些寄存器或内存位置将被汇编代码修改,以避免编译器优化引起的问题。&#xA;2. 占位符 占位符用于在汇编指令中插入 C++ 变量,格式为 %0、%1 等,对应输出和输入操作数的顺序。&#xA;例如&#xA;int x = 10, y = 20, result;&#xD;asm(&amp;#34;add %0, %1, %2&amp;#34; : &amp;#34;=r&amp;#34;(result) : &amp;#34;r&amp;#34;(x), &amp;#34;r&amp;#34;(y)); 上面的代码将 x 和 y 相加并将结果存入 result。&#xA;3. 输出操作数和输入操作数 =r 表示输出操作数是一个通用寄存器类型。</description>
<description>版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/&#xA;内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。&#xA;1. 基础语法 内联汇编在 C/C++ 代码中通过 asm 或 asm 关键字进行声明,格式如下&#xA;asm (&amp;#34;汇编指令&amp;#34; : 输出操作数 : 输入操作数 : 破坏描述符); 详细说明:&#xA;汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。&#xA;输出操作数:指定汇编代码的输出结果如何映射到 C++ 变量。&#xA;输入操作数:指定传递给汇编代码的输入。&#xA;破坏描述符:用于告诉编译器哪些寄存器或内存位置将被汇编代码修改,以避免编译器优化引起的问题。&#xA;2. 占位符 占位符用于在汇编指令中插入 C++ 变量,格式为 %0、%1 等,对应输出和输入操作数的顺序。&#xA;例如&#xA;int x = 10, y = 20, result;&#xD;asm(&amp;#34;add %0, %1, %2&amp;#34; : &amp;#34;=r&amp;#34;(result) : &amp;#34;r&amp;#34;(x), &amp;#34;r&amp;#34;(y)); 上面的代码将 x 和 y 相加并将结果存入 result。&#xA;3. 输出操作数和输入操作数 =r 表示输出操作数是一个通用寄存器类型。</description>
</item>
<item>
<title>详解ARM汇编条件标志</title>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
<meta name="twitter:title" content="Android 下内联汇编,Android Studio 汇编开发">
<meta name="twitter:description" content="版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/
内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。
1. 基础语法 内联汇编在 C/C&#43;&#43; 代码中通过 asm 或 asm 关键字进行声明,格式如下 asm (“汇编指令” : 输出操作数 : 输入操作数 : 破坏描述符);
详细说明:
1. 基础语法 内联汇编在 C/C&#43;&#43; 代码中通过 asm 或 asm 关键字进行声明,格式如下
asm (&#34;汇编指令&#34; : 输出操作数 : 输入操作数 : 破坏描述符); 详细说明:
汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。
输出操作数:指定汇编代码的输出结果如何映射到 C&#43;&#43; 变量。
输入操作数:指定传递给汇编代码的输入。
Expand All @@ -36,8 +36,8 @@
<meta property="og:title" content="Android 下内联汇编,Android Studio 汇编开发">
<meta property="og:description" content="版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/
内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。
1. 基础语法 内联汇编在 C/C&#43;&#43; 代码中通过 asm 或 asm 关键字进行声明,格式如下 asm (“汇编指令” : 输出操作数 : 输入操作数 : 破坏描述符);
详细说明:
1. 基础语法 内联汇编在 C/C&#43;&#43; 代码中通过 asm 或 asm 关键字进行声明,格式如下
asm (&#34;汇编指令&#34; : 输出操作数 : 输入操作数 : 破坏描述符); 详细说明:
汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。
输出操作数:指定汇编代码的输出结果如何映射到 C&#43;&#43; 变量。
输入操作数:指定传递给汇编代码的输入。
Expand All @@ -49,8 +49,8 @@
<meta property="og:locale" content="zh_cn">
<meta property="og:type" content="article">
<meta property="article:section" content="posts">
<meta property="article:published_time" content="2024-11-09T02:22:47+08:00">
<meta property="article:modified_time" content="2024-11-09T02:22:47+08:00">
<meta property="article:published_time" content="2024-11-09T04:23:34+08:00">
<meta property="article:modified_time" content="2024-11-09T04:23:34+08:00">


</head>
Expand Down Expand Up @@ -102,9 +102,9 @@ <h1 class ="post-title">Android 下内联汇编,Android Studio 汇编开发</h
<h1 id="__内联汇编__"><strong>内联汇编</strong></h1>
<p>Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。</p>
<h2 id="__1-基础语法__"><strong>1. 基础语法</strong></h2>
<p>内联汇编在 C/C++ 代码中通过 asm 或 <strong>asm</strong> 关键字进行声明,格式如下
asm (&ldquo;汇编指令&rdquo; : 输出操作数 : 输入操作数 : 破坏描述符);</p>
<p>详细说明:</p>
<p>内联汇编在 C/C++ 代码中通过 asm 或 <strong>asm</strong> 关键字进行声明,格式如下</p>
<pre tabindex="0"><code>asm (&#34;汇编指令&#34; : 输出操作数 : 输入操作数 : 破坏描述符);
</code></pre><p>详细说明:</p>
<ul>
<li>
<p>汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。</p>
Expand Down
6 changes: 3 additions & 3 deletions public/posts/index.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
<description>Recent content in Posts on CYRUS STUDIO</description>
<generator>Hugo</generator>
<language>zh-cn</language>
<lastBuildDate>Sat, 09 Nov 2024 02:22:47 +0800</lastBuildDate>
<lastBuildDate>Sat, 09 Nov 2024 04:23:34 +0800</lastBuildDate>
<atom:link href="https://cyrus-studio.github.io/blog/posts/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Android 下内联汇编,Android Studio 汇编开发</title>
<link>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/</link>
<pubDate>Sat, 09 Nov 2024 02:22:47 +0800</pubDate>
<pubDate>Sat, 09 Nov 2024 04:23:34 +0800</pubDate>
<guid>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/</guid>
<description>版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/&#xA;内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。&#xA;1. 基础语法 内联汇编在 C/C++ 代码中通过 asm 或 asm 关键字进行声明,格式如下 asm (&amp;ldquo;汇编指令&amp;rdquo; : 输出操作数 : 输入操作数 : 破坏描述符);&#xA;详细说明:&#xA;汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。&#xA;输出操作数:指定汇编代码的输出结果如何映射到 C++ 变量。&#xA;输入操作数:指定传递给汇编代码的输入。&#xA;破坏描述符:用于告诉编译器哪些寄存器或内存位置将被汇编代码修改,以避免编译器优化引起的问题。&#xA;2. 占位符 占位符用于在汇编指令中插入 C++ 变量,格式为 %0、%1 等,对应输出和输入操作数的顺序。&#xA;例如&#xA;int x = 10, y = 20, result;&#xD;asm(&amp;#34;add %0, %1, %2&amp;#34; : &amp;#34;=r&amp;#34;(result) : &amp;#34;r&amp;#34;(x), &amp;#34;r&amp;#34;(y)); 上面的代码将 x 和 y 相加并将结果存入 result。&#xA;3. 输出操作数和输入操作数 =r 表示输出操作数是一个通用寄存器类型。</description>
<description>版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/&#xA;内联汇编 Android 内联汇编非常适用于 ARM 架构的性能优化和底层操作,通常用于加密、解密、特定指令优化等领域。&#xA;1. 基础语法 内联汇编在 C/C++ 代码中通过 asm 或 asm 关键字进行声明,格式如下&#xA;asm (&amp;#34;汇编指令&amp;#34; : 输出操作数 : 输入操作数 : 破坏描述符); 详细说明:&#xA;汇编指令:这是我们想要执行的汇编代码,通常是 ARM 或 ARM64 指令。&#xA;输出操作数:指定汇编代码的输出结果如何映射到 C++ 变量。&#xA;输入操作数:指定传递给汇编代码的输入。&#xA;破坏描述符:用于告诉编译器哪些寄存器或内存位置将被汇编代码修改,以避免编译器优化引起的问题。&#xA;2. 占位符 占位符用于在汇编指令中插入 C++ 变量,格式为 %0、%1 等,对应输出和输入操作数的顺序。&#xA;例如&#xA;int x = 10, y = 20, result;&#xD;asm(&amp;#34;add %0, %1, %2&amp;#34; : &amp;#34;=r&amp;#34;(result) : &amp;#34;r&amp;#34;(x), &amp;#34;r&amp;#34;(y)); 上面的代码将 x 和 y 相加并将结果存入 result。&#xA;3. 输出操作数和输入操作数 =r 表示输出操作数是一个通用寄存器类型。</description>
</item>
<item>
<title>详解ARM汇编条件标志</title>
Expand Down
6 changes: 3 additions & 3 deletions public/sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>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/</loc>
<lastmod>2024-11-09T02:22:47+08:00</lastmod>
<lastmod>2024-11-09T04:23:34+08:00</lastmod>
</url><url>
<loc>https://cyrus-studio.github.io/blog/</loc>
<lastmod>2024-11-09T02:22:47+08:00</lastmod>
<lastmod>2024-11-09T04:23:34+08:00</lastmod>
</url><url>
<loc>https://cyrus-studio.github.io/blog/posts/</loc>
<lastmod>2024-11-09T02:22:47+08:00</lastmod>
<lastmod>2024-11-09T04:23:34+08:00</lastmod>
</url><url>
<loc>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/</loc>
<lastmod>2024-11-05T21:06:33+08:00</lastmod>
Expand Down

0 comments on commit 13c78ab

Please sign in to comment.