社区
汇编语言
帖子详情
请问 mov eax esi 和 mov eax [esi] 有什么不同?
xisat
2002-04-22 02:56:38
如标题
...全文
2205
9
打赏
收藏
请问 mov eax esi 和 mov eax [esi] 有什么不同?
如标题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
类库
2002-04-23
打赏
举报
回复
假如esi=1234,然后内存地址为1234处为5678,那么mov eax,esi后eax=1234, mov eax,[esi]后eax=5678
TeddyWing
2002-04-22
打赏
举报
回复
eax的值和eax指向的内存就好比普通变量和指针变量的关系一样。
xisat
2002-04-22
打赏
举报
回复
谢谢 大家的指点 我还是有点疑问:
eax 的值 和 eax 指向内存的内容又有什么不同呢?
比如我要 把一个 值 123456 赋给变量 TEST_M (TEST_M=12345)
这个在汇编里面是如何表示的呢?
又如果我从文本框取得一个INT值 123456 (GETDLGITEMINT_)
又是如何表示的呢? 是表示在EAX的值中 还是表示在EAX指向内存的内容中?
我是汇编的初学者,也不知道是否该这样表示. 大家能不能介绍点相关的基础书,最好是网上的:).. (能有高级语言作比较的最好了) 呵呵 走捷径了.
再次感谢!
dycdyc123
2002-04-22
打赏
举报
回复
eax = p;
同
eax = *p;
翻译过来就是
eax
[eax]
mathe
2002-04-22
打赏
举报
回复
象当于c里面
eax = p;
同
eax = *p;
kimryo
2002-04-22
打赏
举报
回复
看寻址方式。
unix_socket
2002-04-22
打赏
举报
回复
up
ttzzgg_80713
2002-04-22
打赏
举报
回复
前一个是将esi中的值送入到eax
后一个是将esi所指向的内存地址中的值送到eax
awinder
2002-04-22
打赏
举报
回复
mov eax,esi是将esi中的内容给eax
mov eax,[esi]是将esi指向的内存中的内容给eax
mov
eax
, dword ptr [
esi
]指令区别
mov
eax
,
esi
将
esi
中的数据传送到
eax
中
mov
eax
,[
esi
]
esi
中是地址,将内存中该地址的数据传送到
eax
中,也就是间接寻址
mov
eax
, dword ptr [
esi
] dword表示的是双字,四字节。
esi
中保存的是为内存中的地址。将该地址处的4字节数据传送到
eax
中。
汇编指令
lodsb指令,将
esi
指向的地址处的数据取出来赋给AL寄存器,
esi
=
esi
+1; lodsw指令则取得是一个字。 lodsd指令,取得是双字节,即
mov
eax
,[
esi
],
esi
=
esi
+4; stosb指令,将AL寄存器的值取出来赋给edi所指向的地址处。
mov
[edi],AL;edi=edi+1; stosw指令去的是一个字。 stosd指令,取得是双字节,
mov
[edi],
eax
...
高级静态分析技能基础:X86汇编语言运算指令说明
本节我们看看X86指令集以及X86的硬件体系架构。在汇编语言中最常见的指令就是
mov
,他将数据从一个地方转移到指定位置,该指令能将数据转移到特定位置的内存或是给定寄存器。
mov
指令的格式为(
mov
目的,源头),源头指的是要被挪到的数据,目的是数据被挪动的目的地, 我们看几个具体例子:
mov
eax
, ebx (把寄存器ebx中的数据拷贝到
eax
寄存器)
mov
eax
, 0x42 (把数值0x42赋值给
eax
寄存器)
mov
eax
, [0x4037c4](把地址为0x4037c4的4字节数据拷贝到e
MOV
EAX
,DWORD PTR SS:[EBP+8]
nasm来写可以写成
mov
eax
,dword ptr [ebp + 8]理由:ebp和esp默认是ss段,所以根本不用显式说明。
eax
,ebx,ecx,edx,edi,
esi
默认是ds段, eip默认是cs段。 补充:上面给的是masm用法nasm是
mov
eax
,dword [ebp + 8]我自己用的nasm,经常说nasm语法说习惯了。...
汇编语言里
eax
, ebx, ecx, edx,
esi
, edi, ebp, esp这些都是什么意思啊?
eax
, ebx, ecx, edx,
esi
, edi, ebp, esp等都是X86 汇编语言中CPU上的通用寄存器的名称,是32位的寄存器。如果用C语言来解释,可以把这些寄存器当作变量看待。 比方说:add
eax
,-2 ; //可以认为是给变量
eax
加上-2这样的一个值。 这些32位寄存器有多种用途,但每一个都有“专长”,有各自的特别之处。
EAX
是"累加器"(ac
汇编语言
21,496
社区成员
41,618
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章