美文网首页
其他汇编

其他汇编

作者: 阿凡提说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