• 03.通用寄存器_内存读写


    32位通用寄存器
    寄存器 主要用途 编号
    EAX 累加器 0
    ECX 计数 1
    EDX I/O指针 2
    EBX DS段的数据指针 3
    ESP 堆栈指针 4
    EBP SS段的数据指针 5
    ESI 字符串操作的源指针, SS段的数据指针 6
    EDI 字符串操作的目标指针, ES段的数据指针 7

    EIP
    指向当前将要执行的代码

    16位通用寄存器
    AX
    CX
    DX
    BX
    SP
    BP
    SI
    DI

    8位通用寄存器
    AL
    CL
    DL
    BL
    AH
    CH
    DH
    BH

    EAX寄存器经过下列运算结果
    MOV EAX, 0xAAAAAAAA
    MOV AX, 0xBBBB
    MOV AH, 0xCC
    MOV AL, 0xDD

    0xAABBCCDD

    OD快捷键
    打开程序
    F3

    单步步过
    F8

    汇编指令
    MOV
    移动"源"到"目的"
    MOV指令特殊注意: 两个操作数不能都是内存

    汇编练习(深刻理解寄存器、内存、数据的宽度)
    r 通用寄存器, m 代表内存, imm 代表立即数, r8 代表8位通用寄存器, m8 代表8位内存, imm8 代表8位立即数
    MOV指令
    MOV r/m8, r8
    MOV r/m16, r16
    MOV r/m32, r32
    MOV r8, r/m8
    MOV r16, r/m16
    MOV r32, r/m32
    MOV r8, imm8
    MOV r16, imm16
    MOV r32, imm32
    ADD指令
    将源操作的值加到目标操作数上
    ADD r/m8, imm8
    ADD r/m16, imm16
    ADD r/m32, imm32
    ADD r/m16, imm8
    ADD r/m32, imm8
    ADD r/m8, r8
    ADD r/m16, r16
    ADD r/m32, r32
    ADD r8, r/m8
    ADD r16, r/m16
    ADD r32, r/m32

    SUB指令
    将目标操作数减去源操作的值
    SUB AL, imm8
    SUB AX, imm16
    SUB EAX, imm32
    SUB r/m8, imm8
    SUB r/m16, imm16
    SUB r/m32, imm32
    SUB r/m16, imm8
    SUB r/m32, imm8
    SUB r/m8, r8
    SUB r/m16, r16
    SUB r/m32, r32
    SUB

    AND指令
    将目标操作数按位与源操作的值
    AND AL, imm8
    AND AX, imm16
    AND EAX, imm32
    AND r/m8, imm8
    AND r/m16, imm16
    AND r/m32, imm32
    AND r/m16, imm8
    AND r/m32, imm8
    AND r/m8, r8
    AND r/m16, r16
    AND r/m32, r32
    AND r8, r/m8
    AND r16, r/m16
    AND r32, r/m32

    OR
    将目标操作数按位与源操作的值
    OR AL, imm8
    OR AX, imm16
    OR EAX, imm32
    OR r/m8, imm8
    OR r/m16, imm16
    OR r/m32, imm32
    OR r/m16, imm8
    OR r/m32, imm8
    OR r/m8, r8
    OR r/m16, r16
    OR r/m32, r32
    OR r8, r/m8
    OR r16, r/m16
    OR r32, r/m32

    XOR
    将目标操作数按位异或源操作的值
    XOR AL, imm8
    XOR AX, imm16
    XOR EAX, imm32
    XOR r/m8, imm8
    XOR r/m16, imm16
    XOR r/m32, imm32
    XOR r/m16, imm8
    XOR r/m32, imm8
    XOR r/m8, r8
    XOR r/m16, r16
    XOR r/m32, r32
    XOR r8, r/m8
    XOR r16, r/m16
    XOR r32, r/m32

    NOT
    将操作数按位取反
    NOT r/m8
    NOT r/m16
    NOT r/m32

    内存编号的单位
    字节(8位)

    32位计算机
    正常情况寻址宽度是32位(2^32--> 2^2 * 2^10 * 2^10 * 2^10 --> 4G), 可以修改

    内存编号的格式(加[]区分立即数)
    [0x00000000 - 0xFFFFFFFF]

    mov word ptr ds: [0x12345678], 0xFFFF
    指令 大小 指针 数据段 操作内存编号 值

    每个应用程序都有
    4G的独立内存空间使用

  • 相关阅读:
    哈尔滨工业大学计算机学院-模式识别-课程总结(前言)
    吴恩达深度学习笔记(deeplearning.ai)之循环神经网络(RNN)(三)
    吴恩达深度学习笔记(deeplearning.ai)之循环神经网络(RNN)(二)
    吴恩达深度学习笔记(deeplearning.ai)之循环神经网络(RNN)(一)
    卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解
    吴恩达深度学习笔记(deeplearning.ai)之卷积神经网络(CNN)(下)
    MATLAB常用字符串函数之二
    matlab常用的字符串操作函数之一
    解决ppt中视频不能播放的问题
    GHOST急速安装win10或win7
  • 原文地址:https://www.cnblogs.com/ret688/p/12827231.html
Copyright © 2020-2023  润新知