美文网首页
寄存器 内存

寄存器 内存

作者: 欧皇ff | 来源:发表于2020-03-26 11:34 被阅读0次

计算机中数据存储的位置
CPU 内存 硬盘


寄存器
通用寄存器对应关系
验证结果
mov eax,0xAAAAAAAA //EAX AAAAAAAA
mov ax,0xBBBB //EAX AAAABBBB
mov ah,0xCC//EAX AAAACCBB
mov al,0xDD//EAX AAAACCDD

32位 CPU 8 16 32
64位 CPU 8 16 32 64

2005年以后的电脑都是64位CPU了。

32位通用寄存器:存储数据不能超过32个01,多余被丢弃。
通用寄存器

32位 16位 8位
EAX AX AL 高8位
ECX CX CL
EDX DX DL
EBX BX BL
ESP SP AH 低8位
EBP BP CH
ESI SI DH
EDI DI BH

MOV指令 「寄存器操作」

<1>立即数到寄存器 mov eax,1
<2>寄存器到寄存器 mov eax,ecx 【注:同位赋值,否则语法错误。】

MOV指令 「内存操作」

数据宽度 byte,word,dword 8位 16位 32位
<1>存立即数到内存 mov dword ptr ds:[地址],1
<2>存寄存器的值到内存 mov dword ptr ds:[地址],eax
<3>存内存的值到寄存器 mov eax,dword ptr ds:[地址] 【注:1.数据宽度要一致,否则语法错误,同理与寄存器操作;2.汇编中绝大多数指令不支持内存到内存赋值。】

内存地址的5中表示形式

表示形式 取值方式 赋值方式
[立即数] MOV EAX,DWORD PTR DS:[0x13ffc4] MOV DWORD PTR DS:[0x13ffc4],EAX
[reg]
reg代表寄存器,可以是8个通用寄存器中任意一个
MOV ECX,0x13ffd0
MOV EAX,DWORD PTR DS:[ECX]
MOV EDX,0x13FFD8
MOV DWORD PTR DS:[EDX],0x87654321
[reg+立即数] MOV ECX,0x13FFD0
MOV EAX,DWORD PTR DS:[ECX+4]
MOV EDX,0x13FFD8
MOV DWORD PTR DS:[EDX+0xC],0x87654321
[reg+reg*{1,2,4,8}]
常见于数组类型操作
MOV EAX,13FFC4
MOV ECX,2
MOV,DWORD PTR DS:[EAX+ECX*4]
MOV EAX,13FFC4
MOV ECX,2
MOV DWORD PTR DS:[EAX+ECX*4],87654321
[reg+reg*{1,2,4,8}+立即数] MOV EAX,13FFC4
MOV ECX,2
MOV EDX,DWORD PTR DS:[EAX+ECX*4+4]
MOV EAX,13FFC4
MOV EXC,2
MOV DWORD PTR DS:[EAX+ECX*4+4],87654321

内存存储模式

4G虚拟内存
<1>MOV BTYE PTR DS:[0x00000000],0x1A
<2>MOV WORD PTR DS:[0x00000000],0x1A2B
<3>MOV DWORD PTR DS:[0x00000000],0x1A2B3C4D
大端模式:数据高位在地址低位,数据低位在地址高位.
小端模式:数据低位在地址低位,数据高位在地址高位.
顺序 大端模式(7-0) 小端模式(7-0) 地址
1A 4D [0x00000000]
... 2B 3C [0x00000001]
... 3C 2B [0x00000002]
... 4D 1A [0x00000003]
... [0x00000004]
[0x…………]
[0xFFFFFFFF]

DEBUG内存窗口使用

指令表

字节 双字
db dw dd

向内存中存入4个字节的数据,并观察存储形式(大端存储or小端存储)

示例:

mov dword ptr ds:[12ffcc],11223344
db 12ffcc
image.png

数据可以存放到哪?寄存器、内存。
数据是如何存放的?小端存储。

相关文章

  • 汇编3寄存器(访问内存)

    mov 寄存器,数据 mov 寄存器,寄存器 mov 寄存器,内存单元 如 mov ax,[0] mov 内存...

  • 我的逆向工程之路 - 汇编基础

    寄存器、内存、和栈 寄存器: 内存: 栈: 实用寄存器 详解: 指令解读 预备知识: { }表示可选项, [ ]...

  • 汇编语言

    程序的本质 寄存器与内存 通常,CPU会先将内存中的数据存储到寄存器中,然后再对寄存器中的数据进行运算 假设内存中...

  • 寻址方式

    寄存器寻址 不涉及内存,将寄存器 eax 中的内容放到寄存器 edx 中: 立即寻址 不涉及内存,将立即数放到 e...

  • JavaWeb系列读书笔记(六)JVM内存管理

    物理内存和虚拟内存 物理内存就是RAM和寄存器(用来存储计算单元执行指令的中间结果)。连接处理器和RAM或者寄存器...

  • 01-汇编语言

    1.程序的本质 1.软件\程序的执行过程 2.寄存器与内存 CPU会先将内存中的数据存储到寄存器中,然后再对寄存器...

  • 寄存器、汇编指令

    汇编初识 寄存器 与 内存 寄存器: 状态寄存器链接:https://www.jianshu.com/p/9e0d...

  • 七(1)汇编语言初探

    一、程序的本质 软件/程序的执行过程: 二、寄存器与内存 CPU将内存中的数据存储到寄存器中,然后在对...

  • 汇编语言

    寄存器的作用 EAX:accumulator,加法乘法指令的缺省寄存器 EBX:base address,内存寻址...

  • 硬件基础--i386标志寄存器

    i386寄存器主要包括 一个16位标志寄存器 4个内存管理寄存器 4个控制寄存器以及调试寄存器 下面先介绍标志寄存...

网友评论

      本文标题:寄存器 内存

      本文链接:https://www.haomeiwen.com/subject/htqfuhtx.html