美文网首页
寄存器 内存

寄存器 内存

作者: 欧皇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

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

    相关文章

      网友评论

          本文标题:寄存器 内存

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