Chinaunix首页 | 论坛 | 博客
  • 博客访问: 520640
  • 博文数量: 85
  • 博客积分: 1797
  • 博客等级: 上尉
  • 技术积分: 1236
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-02 08:53
个人简介

职位:技术总监 1、精通c++(linux平台、vc++Mfc、qt)、java、php、unity3d,略懂python 2、用c++开发过嵌入式产品,用c++开发过大型银行运维产品 3、用java开发大型银行运维产品,学校教务系统 4、用php开发进销存系统(在销售中),用php开发淘宝小程序 5、用unity3d开发衣柜设计软件,在运营中

文章分类

全部博文(85)

分类: 嵌入式

2011-09-21 23:01:04

   一直知道nasm能够反汇编,但不知道怎样用命令,

     命令帮助中,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!

阅读(4300) | 评论(0) | 转发(0) |
1

上一篇:gdt 的作用

下一篇:Linux/unix程序静态编译

给主人留下些什么吧!~~