Swift5.1语法学习

七(1)汇编语言初探

2019-09-28  本文已影响0人  爱玩游戏的iOS菜鸟

一、程序的本质

        软件/程序的执行过程: 

二、寄存器与内存

    CPU将内存中的数据存储到寄存器中,然后在对寄存器中的数据进行计算

    上图所示:

三、编程语言的发展

        汇编语言与机器语言一一对应,每一条机器指令都有与之对应的汇编指令

        汇编语言可以通过编译得到机器语言,机器语言可以通过反编译得到汇编语言

        高级语言可以通过编译得到汇编/机器语言,但是汇编.机器语言几乎不可能还原高级语言

四、汇编语言的种类

    汇编语言严重依赖硬件环境,iOS主要的汇编语言是

    ①AT&T汇编 ——> iOS模拟器

    ②ARM汇编 ——> iOS真机设备

五、寄存器

        ①有16个常用寄存器

        rax、rbx、rcx、rdx、rsi、rdi、rbp、rsp、

        r8、 r9、 r10、 r11、 r12、 r13、 r14、r15

        ②寄存器的具体用途

        rax、rdx常用作函数返回值

        rdi、rsi、rdx、rcx、r8、r9等常用语存放函数参数

        rsp、rbp用于栈操作

        rip作为指令指针

        【注意】

        ①rip存储着CPU下一条执行的指令的地址

        ②一旦CPU读取一条指令,rip会自动指向下一条指令

六、常见的汇编指令 AT&T汇编

七、LLDB常用指令

记住简写足够

八、内存命名规律

内存地址格式:0xbdc(%rip)    全局变量    全局区

内存地址格式:-0x78(%rbp)    局部变量    栈空间

内存地址格式:-0x10(%rax)     堆空间


Swift学习日记7(汇编)

上一篇下一篇

猜你喜欢

热点阅读