美文网首页
其他汇编

其他汇编

作者: 阿凡提说AI | 来源:发表于2018-02-17 22:47 被阅读22次

    Win32汇编-寄存器

    • 如eax、ebx、ecx、edx、eip、esp、ebp、esi、edi等都是32位的寄存器


      图片 1.png
    • 段寄存器
      CPU有两个不同的工作方式:实模式、保护模式
      实模式:使用“段地址:偏移地址”的方式访问内存数据
      保护模式:装入段寄存器的不再是段地址,而是段选择符(Segment Selector),在编程过程中,使用偏移地址直接寻址即可

    Win64汇编 - 寄存器

    屏幕快照 2018-02-17 下午10.31.05.png

    AT&T汇编 vs Intel汇编

    • 基于x86架构的处理器所使用的汇编指令一般有2种格式
      (1)Intel汇编
      DOS(8086处理器)、Windows
      Windows派系 -> VC编译器
      (2)AT&T汇编
      Linux、Unix、Mac OS、iOS(模拟器)
      Unix派系 -> GCC编译器

    • AT&T 读作 “AT and T”(American Telephone & Telegraph的缩写)

    • 作为iOS开发工程师,最主要的汇编语言是
      64位AT&T汇编 -> iOS模拟器
      64位ARM汇编 -> iOS真机设备

    AT&T汇编 vs Intel汇编

    屏幕快照 2018-02-17 下午10.34.54.png

    AT&T汇编 vs Intel汇编 寻址方式

    屏幕快照 2018-02-17 下午10.36.08.png

    64位AT&T汇编的寄存器

    图片 1.png
    • x86-64bit有16个64位寄存器
      rax、rbx、rcx 、rdx、rsi、rdi、rap、rsp
      r8、r9、r10、r11、r12、r13、r14、r15

    • 寄存器的具体用途
      rax作为函数返回值使用
      rsp指向栈顶
      rdi、rsi、rdx、rcx、r8、r9存储函数参数,其余参数用栈存储(从rsp开始第7个参数,rsp+8开始第8个,以此类推)

    64位AT&T汇编 – 栈帧

    栈帧(Stack Frame Layout)
    就是一个函数执行的环境
    包括:参数、局部变量、返回地址等


    图片 1.png

    相关文章

      网友评论

          本文标题:其他汇编

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