鱼C论坛

 找回密码
 立即注册
查看: 4036|回复: 3

【重金悬赏】关于mov eax offset x

[复制链接]
发表于 2011-3-27 14:46:06 | 显示全部楼层 |阅读模式
20鱼币
本帖最后由 h2995527 于 2011-3-27 15:00 编辑

.data
x byte  ?
y  word ?
mov eax  offset x是合法的?而
mov  eax  x 不合法为什么?能不能帮忙解释一下?
我觉的:mov eax,x 中的x为标号,
        被编译器编译成一个 地址。
        编译成成mov eax,[地址]。
        但事实上,mov eax,x是不合法的。因为 数据类型不符!
        为什么 数据类型不符啊。
        请详细解释一下 mov eax,x中的X 的具体含义?

2,
or eax,eax。
or 指令。取 or 2个非2进制的数。是什么意思?
的具体含义是什么,主要用途是什么?
举例说明谢谢了。
这2个问题想了 最少有 20个小时了 。有悬赏分的!~~
要详细答案!!,不要打的字比我少!:'(

最佳答案

查看完整内容

1. x是定义byte型数据,与eax宽度不同,不能发生关系 2. or eax, eax不是没事找事做哈,虽然结果还是等于本身,但他的目的主要是用于改变标志位寄存器。 or 指令影响标志位PF、SF、ZF 、CF、OF 在同一个通用寄存器自身相“或”时, 操作数虽不变, 但使CF置零。本指令主要用于置某些位为零。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-27 14:46:07 | 显示全部楼层
1. x是定义byte型数据,与eax宽度不同,不能发生关系

2. or eax, eax不是没事找事做哈,虽然结果还是等于本身,但他的目的主要是用于改变标志位寄存器。
    or 指令影响标志位PF、SF、ZF 、CF、OF
    在同一个通用寄存器自身相“或”时, 操作数虽不变, 但使CF置零。本指令主要用于置某些位为零。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2011-3-28 09:46:28 | 显示全部楼层
本帖最后由 h2995527 于 2011-3-28 11:34 编辑

回复 2# 小甲鱼

经过我20多个小时的琢磨

我会了
在数据段定义 X db ? {意思 在数据段定义一个未初始化变量的字节空间。一般定义局部变量,如果生成EXE文件的话。不占用内存空间。但运行EXE文件,使用此变量时。占用空间。结束后,释放内存空间}
mov eax,offset x
offset在编译器指令,是编译器运行时直接被 编译作 x的地址
例如: x地址为 21000b
指令:mov eax,offset x  编译后 debug查看就是 mov eax, 21000b
则 mov eax ,x
把这条指令 反汇编后,
会发现 变成了 mov eax,byte ptr [x]
指令:mov eax, word ptr [x],进行反汇编后是:mov eax, word ptr [x],
【以上都是在 数据段定义 X db ?】
【以下都是在数据段定义 X dw ?】

指令:mov eax,X在进行反汇编后是: mov eax, word ptr [X]

第二个:
or eax,eax指令与 or al,01001000是不同的》
or eax,eax指令是32位指令。此指令。不做实际运算。只影响标志位CF。一般用作查看 是否为真指令 。CF为1即为真,为0即为假。后面一般跟跳转指令。
[它不改变eax的值,但会修改标志位,所以后面常跟jz、js、jp等判断eax是否为0]
or al,01001000指令是16位指令。此指令参与运算 al=al or 01001000B。 一般用作某位 置 1!!

以上我我自己总结!!:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-16 13:06:18 | 显示全部楼层
小甲鱼老师说的很对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 12:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表