汇编语言入门--寄存器,内存

汇编语言

通过指令来代替二进制代码

通过汇编指令可以给计算机发一些操作,然后让计算机执行

32位的系统和64位的系统本质架构区别不大,只是64位的寻址能力增加

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EZNRkW1V-1663770196260)(D:/%E7%AC%94%E8%AE%B0/%E6%B1%87%E7%BC%96/%E6%B1%87%E7%BC%96.assets/QQ%E5%9B%BE%E7%89%8720220921205644.png)]

通用寄存器

寄存器:

存储数据:CPU > 内存 > 硬盘

32位CPU 8 16 32

64位CPU 8 16 32 64

通用寄存器,可以存储任意的东西

32位的通用寄存器只有8个

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nnjiazCr-1663770196261)(D:/%E7%AC%94%E8%AE%B0/%E6%B1%87%E7%BC%96/%E6%B1%87%E7%BC%96.assets/image-20220921211948876.png)]

存储的范围:0~FFFFFFFF

#计算机如何向寄存器中存值
对于二进制来说:	直接修改值

不同的寄存器

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

8位:L表示低8位,H表示高8位

除了这些通用寄存器之外,其他的寄存器每一位都有自己特定的功能

内存

寄存器很小,不够用,所以数据存到内存中

1B = 8bit

1KB = 1024B

1MB = 1024 KB

1GB = 1024MB

每个应用程序都有4GB的内存空间,真正用的时候没有这么大,真正运行的时候,才会使用物理内存

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bK6cyOXM-1663770196261)(D:/%E7%AC%94%E8%AE%B0/%E6%B1%87%E7%BC%96/%E6%B1%87%E7%BC%96.assets/image-20220921214000535.png)]

内存地址

计算机中的内存地址很多,空间很大,每个空间分配一个地址。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nTdi7AbY-1663770196262)(D:/%E7%AC%94%E8%AE%B0/%E6%B1%87%E7%BC%96/%E6%B1%87%E7%BC%96.assets/image-20220921214459653.png)]

这些给内存起的编号,就是我们的内存地址。32位是8个16进制的值

32位:最多支持4G内存

FFFFFFFF + 1 = 100000000,最大的值

位是怎么限制内存大小的

100000000内存地址 * 8 = 800000000位

转化为10进制/8:4294967296个字节

按照规则除以1024之后,最终发现是4GB

所以每个内存地址都有一个编号,可以通过这些编号向里面存值

内存如何存值

  • 数据宽度:占多大的地址:byte word dword

  • 地址的位置:0xFFFFFFFF

    • 不是任意的地址都可以写东西的,需要先申请空间,只有程序申请过的空间才能使用
    汇编如何向内存中写值
    
    mov 数据宽度 内存地址,1
    
    传递的值的大小一定要和数据宽度相等
    

    例:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IprjXNja-1663770196263)(D:/%E7%AC%94%E8%AE%B0/%E6%B1%87%E7%BC%96/%E6%B1%87%E7%BC%96.assets/image-20220921220952380.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Of32GDNh-1663770196264)(D:/%E7%AC%94%E8%AE%B0/%E6%B1%87%E7%BC%96/%E6%B1%87%E7%BC%96.assets/image-20220921221001293.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i14B0OwA-1663770196264)(D:/%E7%AC%94%E8%AE%B0/%E6%B1%87%E7%BC%96/%E6%B1%87%E7%BC%96.assets/image-20220921221017572.png)]

    运行后000DFF74这个位置的后两位发生了变化,因为byte是8位,所以会修改后两位的数,同理,word是16位,会修改后四位的数,dword是32位,会修改8位数
    

内存有多种写法

ds:[0x19FF70+4]				# +4 是加的地址偏移
ds:[eax]					#也可以写入寄存器中的值
ds:[eax + 4]				#寄存器偏移
ds:[reg + reg * {1,2,4,8} + 4]		#数组,偏移

汇编指令

mov指令

mov	存的地址,存的数
mov 存的地址1,存的地址2

可以将数字写入寄存器,也可以将寄存器中的值写到寄存器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值