- [rotapple] 这是你的汇编作业?? 08/30 23:13
- [游客] 高手哦 05/24 16:11
- [游客] 毕业论文还是认真地、好好地写一下的好,你这四年上完了连个论文都写不出来,你杂好意思回家见你的爹娘,回 03/01 02:32
- [游客] 这反映可孔子提倡一种什么样的教学方法? 12/21 12:42
- [mouse] 经济形式不容乐观啊,暴跌可不是什么好事~ 11/23 18:03
- [huige] 世界很精彩 世界也很无奈 06/21 13:03
- [游客] 连普通的市民都自愿组织起来不去家乐福了,我们的红黑客再不有所作为,岂不都成了汉奸! 04/22 11:36
- [gouxiong777] 沧桑 01/15 21:19
- [sysnap] 一个毕业论文就能检查出大学四年的学习程度吗?笑话 01/15 12:30
- [dave] 教育最基本的是教人如何去做人~~ 现在的教育都废了~~ 01/11 18:15
- [huibian] o(∩_∩)o... 02/17 09:11
- [dave] huibian兄好久没来了, 扫灰 02/05 18:50
- [游客] 从键盘输入两个数字字符,存入缓冲区。 把sh1内的字符转换为十六进制,存入sh2.从sh2读 01/11 20:31
- [huibian] 好东东,还是动画好看 ;-) 01/04 17:00
- [mouse] huibian 发表于 2008-01-02 17:50 ] 图像的动画不错啊~~ 01/03 08:55
- [huibian] 大家相互交流;-) 12/23 15:57
- [wuerlang] 谢谢你对我的作业的细心指正. 12/18 11:49
[2007-11-20 10:59] C语言的关键字在tcc.exe中的位置
一个c程序首先需要用tcc.exe进行编译,也就是说c检测语法是由tcc完成的,那么关键字一定在tcc.exe中。
debug tcc.exe
用s命令搜索到关键字的位置并显示。
位置如下:
-d
2AF0:BB80 93 49 D6 47 20 24 0B 00-02 48 20 24 03 00 0E 48 .I.G $...H $...H
2AF0:BB90 20 24 02 00 16 48 20 24-1B 00 5F 63 73 00 5F 64 $...H $.._cs._d
2AF0:BBA0 73 00 5F 65 73 00 5F 73-73 00 61 73 6D 00 63 64 s._es._ss.asm.cd
2AF0:BBB0 65 63 6C 00 66 61 72 00-68 75 67 65 00 69 6E 74 ecl.far.huge.int
2AF0:BBC0 65 72 72 75 70 74 00 6E-65 61 72 00 70 61 73 63 errupt.near.pasc
2AF0:BBD0 61 6C 00 63 6F 6E 73 74-00 73 69 67 6E 65 64 00 al.const.signed.
2AF0:BBE0 76 6F 6C 61 74 69 6C 65-00 65 6E 75 6D 00 76 6F volatile.enum.vo
2AF0:BBF0 69 64 00 61 75 74 6F 00-62 72 65 61 6B 00 63 61 id.auto.break.ca
-d
2AF0:BC00 73 65 00 63 68 61 72 00-63 6F 6E 74 69 6E 75 65 se.char.continue
2AF0:BC10 00 64 65 66 61 75 6C 74-00 64 6F 00 64 6F 75 62 .default.do.doub
2AF0:BC20 6C 65 00 65 6C 73 65 00-65 78 74 65 72 6E 00 66 le.else.extern.f
2AF0:BC30 6C 6F 61 64 00 66 6F 72-00 67 6F 74 6F 00 69 66 loat.for.goto.if
2AF0:BC40 00 61 63 63 00 6C 6F 6E-67 00 72 65 67 69 73 74 .int.long.regist
2AF0:BC50 65 72 00 72 65 74 75 72-6E 00 73 68 6F 72 74 00 er.return.short.
2AF0:BC60 73 69 7A 65 6F 66 00 73-74 61 74 69 63 00 73 74 sizeof.static.st
2AF0:BC70 72 75 63 74 00 73 77 69-74 63 68 00 74 79 70 65 ruct.switch.type
-d
2AF0:BC80 64 65 66 00 75 6E 69 6F-6E 00 75 6E 73 69 67 6E def.union.unsign
2AF0:BC90 65 64 00 77 68 69 6C 65-00 00 70 63 6D 70 40 00 ed.while..pcmp@.
2AF0:BCA0 FF FF 49 66 00 46 6F 72-00 44 6F 2D 77 68 69 6C ..If.For.Do-whil
2AF0:BCB0 65 00 57 68 69 6C 65 00-53 77 69 74 63 68 00 42 e.While.Switch.B
2AF0:BCC0 72 65 61 6B 00 43 6F 6E-74 69 6E 75 65 00 52 65 reak.Continue.Re
2AF0:BCD0 74 75 72 6E 00 47 6F 74-6F 00 18 19 00 00 00 00 turn.Goto.......
2AF0:BCE0 00 00 00 00 01 02 02 02-02 02 02 02 02 02 02 02 ................
2AF0:BCF0 0D 0D 0E 0E 0E 09 07 08-0C 0C 03 00 05 06 0A 0A ................
把关键字int改成acc的话,那么你在c下编程定义整形变量的时候就得用了 int a = 0 <--> acc a = 0; ~_~"
[ Wednesday 发表于 2007-11-20 11:13 ]
洞察。
[ fishboy 发表于 2007-11-20 12:07 ]
you are right !
[ cxn 发表于 2007-11-20 12:27 ]
呵呵,c语言中隐藏的秘密.
[ 游客 发表于 2007-11-20 15:48 ]
怎么用阿,我怎么查不到这些数据?
s命令怎么用阿?
[ 游客 发表于 2007-11-20 17:34 ]
秘密?哦了解了
[ mouse 发表于 2007-11-21 09:20 ]
假设DS=0AF0。
s命令:
s 0AF0:0 ffff "int"
[ 游客 发表于 2007-11-21 12:39 ]
利害阿,把人家tc都反汇编了!
[ lion 发表于 2007-11-21 14:40 ]
“一个c程序首先需要用tcc.exe进行编译,也就是说c检测语法是由tcc完成的,那么关键字一定在tcc.exe中”--思考的过程。学习过程中要思考。加油!
[ 游客 发表于 2007-11-21 15:09 ]
用s命令查"int"太多了,我都不知道是哪个,还好有同学说找"float",只有三个,很快找到,但是不能保存,用"w"指令也不行,提示不能保存,郁闷...
[ mouse 发表于 2007-11-22 09:02 ]
多谢楼上提醒我才找到关键字的位置~
我查了一下,exe文件是不能保存的,可以先把扩展名.exe去掉再debug就可以保存了,保存完了再把名字改回来~_~"
[ 游客 发表于 2007-11-23 18:13 ]
改的过程不困难,但是能想到这点很利害。为什么非得用int定义整形呢?造反有理!
顶一下博主
[ 游客 发表于 2007-11-25 14:28 ]
造反有理~
[ dreamhk 发表于 2007-12-04 12:05 ]
试了下,效果不错...
[ huibian 发表于 2007-12-12 09:39 ]
一个反汇编的小技巧,大家可以都试试~
没准你哪天用汇编反出来一个“绿色软件”呢
[ 游客 发表于 2007-12-17 17:56 ]
顶下,给我开了一扇反汇编的门~
[ 游客 发表于 2010-05-24 16:11 ]
高手哦