鱼C论坛

 找回密码
 立即注册
查看: 3575|回复: 11

[已解决]变量的定义

[复制链接]
发表于 2022-4-15 07:40:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
char a='1';
007213BE  mov         byte ptr [a],31h  

[a]是代表eds:[a]
a是偏移地址吗
最佳答案
2022-4-15 23:06:57
18135437048 发表于 2022-4-15 22:20
c反汇编后为什么[a],不直接用地址呢


        你的反汇编工具显然是使用了代码编译时所产生的变量信息,换一个反汇编工具试试,比如 W32Dasm 、C32Asm、OllyDBG、x64DBG 等,用这些工具反汇编出来的东西不会让你看到任何变量信息。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-15 07:46:38 From FishC Mobile | 显示全部楼层
汇编可以这样定义变量?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 08:14:19 From FishC Mobile | 显示全部楼层
[a]应该才是偏移地址。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 11:30:48 | 显示全部楼层
本帖最后由 jackz007 于 2022-4-15 11:46 编辑

        C 语言的语句
        char a = '1'
        对应于汇编语言的语句是
        mov byte ptr[a] , 31h
        C 语言的变量 char a  在汇编语言中被表达为 byte ptr[a],在这里,a 当然是一个内存地址了。
        必须纠正一下,只有 16 位汇编才使用偏移的概念,因为其内存地址由 段地址 + 偏移地址 构成,而楼主所展示的反汇编代码显然不是 16 位汇编,所以,不宜使用偏移这个术语来表述内存地址。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-15 22:20:32 | 显示全部楼层
jackz007 发表于 2022-4-15 11:30
C 语言的语句

        对应于汇编语言的语句是

c反汇编后为什么[a],不直接用地址呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 23:06:57 | 显示全部楼层    本楼为最佳答案   
18135437048 发表于 2022-4-15 22:20
c反汇编后为什么[a],不直接用地址呢


        你的反汇编工具显然是使用了代码编译时所产生的变量信息,换一个反汇编工具试试,比如 W32Dasm 、C32Asm、OllyDBG、x64DBG 等,用这些工具反汇编出来的东西不会让你看到任何变量信息。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-16 06:22:30 | 显示全部楼层
jackz007 发表于 2022-4-15 11:30
C 语言的语句

        对应于汇编语言的语句是


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-16 06:23:37 | 显示全部楼层


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-16 06:24:10 | 显示全部楼层


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-16 06:28:09 | 显示全部楼层
jackz007 发表于 2022-4-15 11:30
C 语言的语句

        对应于汇编语言的语句是

我的理解16位的段selector:32位effetiveAddresss,[a]------->a是32的偏移地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-16 06:30:59 | 显示全部楼层
18135437048 发表于 2022-4-16 06:28
我的理解16位的段selector:32位effetiveAddresss,[a]------->a是32的偏移地址


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-16 06:33:01 | 显示全部楼层

中断的寻址

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 15:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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