C++ 从入门到放弃 (Day-03)

引用的本质

◼ 引用的本质就是指针,只是编译器削弱了它的功能,所以引用就是弱化了的指针
◼ 一个引用占用一个指针的大小

汇编语言

◼ 汇编语言的种类 8086汇编(16bit) x86汇编(32bit) x64汇编(64bit) ARM汇编(嵌入式、移动设备) ......
◼ x64汇编根据编译器的不同,有2种书写格式 Intel
AT&T
◼ 汇编语言不区分大小写

x64汇编 – 寄存器

image.png

x64汇编 – 寄存器

image.png

x64汇编要点总结

◼mov dest, src
将src的内容赋值给dest,类似于dest = src
◼[ 地址值 ]
中括号[ ]里面放的都是内存地址
◼word是2字节,dword是4字节(double word),qword是8字节(quad word) ◼call 函数地址
调用函数
◼lea dest, [ 地址值 ]
将地址值赋值给dest,类似于dest = 地址值
◼ret
函数返回
◼xor op1, op2
将op1和op2异或的结果赋值给op1,类似于op1 = op1 ^ op2
◼add op1, op2
类似于op1 = op1 + op2
◼sub op1, op2
类似于op1 = op1 - op2
◼inc op
自增,类似于op = op + 1
◼dec op
自减,类似于op = op – 1
◼jmp 内存地址
跳转到某个内存地址去执行代码 j开头的一般都是跳转,大多数是带条件的跳转,一般跟test、cmp等指令配合使用
◼ 权威参考:Intel白皮书 https://software.intel.com/en-us/articles/intel-sdm

变量地址总结

◼ 一个变量的地址值,是它所有字节地址中的最小的那个地址值

引用的本质就是指针
汇编会以16进制展示代码
汇编代码不区分大小写
寄存器是存在CPU里面 (CUP是运行程序的)


image.png

R开头都是8个字节
E开头是4个字节

你可能感兴趣的:(C++ 从入门到放弃 (Day-03))