C++学习 <四> 汇编入门

一、汇编难或不难?

  1. 学习汇编主要学习两大知识点
    1> 寄存器
    2> 汇编指令

  2. 不同的平台下,x64汇编有2种。
    1> 目前大部分Windows平台:Intel
    2> Mac平台:AT & T

  3. 汇编的种类
    8086 (16bit)
    x86 (32bit)
    x64 (63bit)
    ARM (嵌入式、移动设备)

  4. 汇编不区分大小写

二、计算机原理图

在这里插入图片描述
在这里插入图片描述

三、寄存器

  1. x64环境,64bit:
    RAX\RBX\RCX\RDX:通用寄存器
  2. x86环境,32bit:
    EAX\EBX\ECX\EDX:通用寄存器
  3. 16bit:
    AX\BX\CX\DX:通用寄存器
  • 把RAX对半分,就兼容EAX,同理,兼容AX

一般规律:
R开头,64bit
E开头,32bit

四、汇编指令

1. mov dest, src

说明: mov dest, src : 把来源src移动到目标位置dest
// 把10 移动到寄存器eax中
mov eax, 10

2. [地址值]

中括号[ ]里面放的都是内存地址

3.word:2字节;dword:4字节(double word);qword:8字节(quad word)

例如:int a = 3;
转成汇编:mov dword ptr [ebp-8],3
解释:把3赋值给变量a的地址值,使用4个字节空间

4.call 函数地址

函数调用

5.其他
  • lea dest, [地址值]
    load effect address : 装载一个有效的地址值

lea eax, [1122H]
结果=> eax == 1122h

mov eax, dword ptr [1122H] (假设这里的内容值为3)
结果=> eax == 3

  • 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 内存地址
    表示:

  • cmp
    表示:比较 compare

  • jne 01202683
    在这里插入图片描述

表示: jump not equal,如果不相等,就跳转,否则正常往下走

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值