变量的定义
char a='1';007213BEmov byte ptr ,31h
是代表eds:
a是偏移地址吗 汇编可以这样定义变量? 应该才是偏移地址。 本帖最后由 jackz007 于 2022-4-15 11:46 编辑
C 语言的语句
char a = '1'
对应于汇编语言的语句是
mov byte ptr , 31h
C 语言的变量 char a在汇编语言中被表达为 byte ptr,在这里,a 当然是一个内存地址了。
必须纠正一下,只有 16 位汇编才使用偏移的概念,因为其内存地址由 段地址 + 偏移地址 构成,而楼主所展示的反汇编代码显然不是 16 位汇编,所以,不宜使用偏移这个术语来表述内存地址。
jackz007 发表于 2022-4-15 11:30
C 语言的语句
对应于汇编语言的语句是
c反汇编后为什么,不直接用地址呢 18135437048 发表于 2022-4-15 22:20
c反汇编后为什么,不直接用地址呢
你的反汇编工具显然是使用了代码编译时所产生的变量信息,换一个反汇编工具试试,比如 W32Dasm 、C32Asm、OllyDBG、x64DBG 等,用这些工具反汇编出来的东西不会让你看到任何变量信息。 jackz007 发表于 2022-4-15 11:30
C 语言的语句
对应于汇编语言的语句是
https://img0.baidu.com/it/u=3834729340,2911058693&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=384 18135437048 发表于 2022-4-16 06:22
http://www.2cto.com/uploadfile/Collfiles/20170106/20170106092234215.jpg 18135437048 发表于 2022-4-16 06:23
http://www.2cto.com/uploadfile/Collfiles/20170106/20170106092235216.jpg jackz007 发表于 2022-4-15 11:30
C 语言的语句
对应于汇编语言的语句是
我的理解16位的段selector:32位effetiveAddresss,------->a是32的偏移地址 18135437048 发表于 2022-4-16 06:28
我的理解16位的段selector:32位effetiveAddresss,------->a是32的偏移地址
https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fwww.mianfeiwendang.com%2Fpic%2Fcdffbf078559d153d99ec1ff%2F2-643-png_6_0_0_53_43_768_772_894_1263-640-0-1965-640.jpg&refer=http%3A%2F%2Fwww.mianfeiwendang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1652653801&t=c20c2e556da07e7c277b539fcbaac996 18135437048 发表于 2022-4-16 06:30
中断的寻址
https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.zhimg.com%2Fv2-ca13360b17bb687e24993cc11eb82a2c_b.jpg&refer=http%3A%2F%2Fpic1.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1652653898&t=4bfe21be79854d88a2e7ad7b4ffa88bf
页:
[1]