美文网首页Swift5.1语法学习
七(1)汇编语言初探

七(1)汇编语言初探

作者: 爱玩游戏的iOS菜鸟 | 来源:发表于2019-09-28 17:41 被阅读0次

    一、程序的本质

            软件/程序的执行过程: 

    二、寄存器与内存

        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(汇编)

    相关文章

      网友评论

        本文标题:七(1)汇编语言初探

        本文链接:https://www.haomeiwen.com/subject/hrdjuctx.html