文章目录
一、Win32汇编 - 寄存器
如eax、ebx、ecx、edx、eip、esp、ebp、esi、edi等都是32位的寄存器
段寄存器
CPU有两个不同的工作方式:实模式、保护模式
1、实模式:使用“段地址:偏移地址”的方式访问内存数据。
2、保护模式:装入段寄存器的不再是段地址,而是段选择符(Segment Selector),在编程过程中,使用偏移地址直接寻址即可。
二、Win64汇编 - 寄存器
有16个常用64位寄存器:
%rax、%rbx、%rcx 、%rdx、%rsi、%rdi、%rbp、%rsp
%r8、%r9、%r10、%r11、%r12、%r13、%r14、%r15
寄存器的具体用途:
1、%rax作为函数返回值使用
2、%rsp指向栈顶
3、%rdi、%rsi、%rdx、%rcx、%r8、%r9、%r10等寄存器用于存放函数参数
三、64位AT&T汇编 - 寄存器
四、ARM汇编 - 寄存器
五、AT&T汇编 vs Intel汇编
1、派系
基于x86架构的处理器所使用的汇编指令一般由2种格式
-
Intel汇编
DOS(8086处理器)、Windows
Windows派系 --> VC编译器 -
AT&T汇编:读作“AT and T”,是 American Telephone & Telegraph 的缩写
Linux、Unix、Max OS、iOS(模拟器)
Unix派系 --> GCC编译器
作为iOS开发工程师,最主要的汇编语言是
1、AT&T 汇编 --> iOS 模拟器
2、ARM 汇编 --> iOS 真机设备