职位:技术总监 1、精通c++(linux平台、vc++Mfc、qt)、java、php、unity3d,略懂python 2、用c++开发过嵌入式产品,用c++开发过大型银行运维产品 3、用java开发大型银行运维产品,学校教务系统 4、用php开发进销存系统(在销售中),用php开发淘宝小程序 5、用unity3d开发衣柜设计软件,在运营中
分类: 嵌入式
2011-09-21 23:01:04
命令帮助中,ndisasm -o filename后面就没了,应该有个输出文件。怎么后面没参数了。
今天查add [bx+si],al的时候突然查到了,后面接>>outfilename。
反汇编出来,又是一片茫然,反汇编的代码怎么跟自己写的代码有这么大的不同。仔细分析了反汇编代码的结果,乱七八糟。其中,最让我迷惑的还是add [bx+si],al。另外中间还有很多代码,感觉牛头不对马嘴。
对汇编指令还是不熟,重新看了一遍指令,只是扫了一遍,没有细究。再看add [bx+si],al时,脑中突然亮光闪现,这一条是由0000反汇编出来的,0000只是数据,并不是指令。add [bx+si],al所对应的二进制代码应该是0000吧。顿时明白了反汇编的真正意思。
明白中间那堆牛头不对马嘴的反汇编代码什么意思了
00007C1E 48 dec ax
00007C1F 656C gs insb
00007C21 6C insb
00007C22 6F outsw
00007C23 2C20 sub al,0x20
00007C25 4F dec di
00007C26 53 push bx
00007C27 20776F and [bx+0x6f],dh
00007C2A 726C jc 0x7c98
00007C2C 642100 and [fs:bx+si],ax
查看二进制数48656C6C6F2C204F5320776F726C6421(曾经以为是所谓的指令),所对应的ASCII码是Hello, OS world!