IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 使用xcode在ios项目中手写汇编代码函数并且调用汇编函数的方法 -> 正文阅读

[移动开发]使用xcode在ios项目中手写汇编代码函数并且调用汇编函数的方法

在项目中新建空白文件empty重命名为.s文件

如下图在ios app项目中新建文件->other->empty->名字改成test.s
请添加图片描述
下面是2个方法:

  • text和 add,text方法不带入参只简单测试几条mov指令
  • add带入参,测试带2个入参的加法
  • .text的意思是把西面代码放进代码段.因为macho文件,里面的text段就是代码段
  • .global 是声明后面的方法名全局可用,否则调用add(int int)方法的时候回报错链接错误:Undefined symbol: _add
  • 传递进来的参数前8个都放在x0到x7中,超过8个放在栈中,返回值在x0中
.text
.global _test,_add


_test:
mov x0,#0x1 ;立即数以#井号开头,0x是16进制
mov x1,x0
;mov x2,x0+0x12 ;不合法mov右边不能运算
;ldr w12, [x1, #0x1]
add x2,x1,x0
sub x3,x2,x1
ret

_add:
add x0,x0,x1;传递进来的参数前8个都放在x0到x7中,超过8个放在栈中,返回值在x0中
ret

新建.h头文件声明方法给别的文件使用

test.h文件中只有2行代码,就是声明2个方法

void test();
int add(int,int);

在oc代码中调用方法

需要包含.h文件

#import "test.h"

然后调用方法

test();
int result = add(3, 5);
NSLog(@"result=%d",result);

通过lldb 断点调试验证寄存器结果

下面是在add 方法加了断点,然后使用 si指令调试汇编代码,再用 re read读取寄存器的值验证传入参数是在x0,x1中,返回值在x0中

(lldb) re read x0
      x0 = 0x0000000000000003
(lldb) re read x1
      x1 = 0x0000000000000005
(lldb) si 
(执行完add指令add x0,x0,x1后)
(lldb) re read x0
      x0 = 0x0000000000000008
(lldb) c

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:12:56  更:2022-03-06 13:16:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 16:54:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码