马沸腾 发表于 2015-1-20 22:03:04

给我一点帮助,我可以瞬间掌控整个世界。

CPU寄存器的宽度是有限的,那么它可以存放的机器码也是有限的。对不对?拿8086CPU来说,一个寄存器可以放16种机器码。就是从十六个零开始到十六个一。IP也是有限的。其他的都是有限的。
如果我把这十四个寄存器看做十四个相同而且独立的集合,然后把这些机器码两两组合,然后三三组合,然后四四组合,五五组合。这样的组合起来是不是就能包含所有的用汇编写出来的程序。
然后再用一个特殊的软件,帅选出来那些出错的和没有意义的程序,剩下来的就是高效的汇编代码了吧?只要我看懂了这些代码,是不是就算精通汇编了?

傲天 发表于 2015-1-20 22:13:15

呵呵,建议你从基础学起,举个例子,英语只有26个字母,那你学会了26个字母,是不是就会英文了呢?那读一篇英文的文章,你就只读字母,别人还是很难听懂。

zlknife 发表于 2015-1-21 17:49:01

每个寄存器16位,2的16次组合,是64K种组合,还差的远呢。

马沸腾 发表于 2015-1-22 13:08:23

zlknife 发表于 2015-1-21 17:49
每个寄存器16位,2的16次组合,是64K种组合,还差的远呢。

对呀!两两组合是第一次组合,然后把组合好的看做一个大集合,再跟原来的来一次组合,就是三三的组合。然后再看做一个大集合,再跟原来的组合。也就是说把十四个寄存器乘以十四个寄存器。
这个动动手是不能做到的。问题是如何打捞?因为数据非常多,怎么打捞呢?

马沸腾 发表于 2015-1-23 13:26:08

我以为十六位寄存器顶多能放十六种数字,可是当我把二进制数1111111111111111转化成十进制时发现,对应的十进制数居然是65535.为什么会这样?
这么说,一个寄存器就能放六万多种数字。那十四个寄存器就是14*六万了,我的天,这些数字太庞大了。

Lyk 发表于 2015-1-23 22:18:04

楼主,强烈建议你认真从头好好学,如果你真的想从事这行,光靠看这些视频我觉得是远远不够的
买几本基础的书,研究研究:
C语言: C和指针    UNIX环境高级编程   网络高级编程
数据结构和算法 sql很多东西都是要学的。。。。
应用层: C++ 到 数据库 到QT 到MFC 楼主 好好学吧

zjc7836 发表于 2015-1-25 19:44:01

好任性!!

希望破壳的蛋蛋 发表于 2015-1-30 21:24:57

我觉得你只要看懂汇编程序明白地址跳转   数据转换    代码目的   就可以算是精通汇编了
页: [1]
查看完整版本: 给我一点帮助,我可以瞬间掌控整个世界。