谁有机器码和汇编的对照表??
我知道intel有一个表,可以对照。可是有些东西还是没弄出来
哪位高人能不能告诉我一下,C盘引导扇区的引导代码的汇编??
机器码00 1E 对应什么?
机器码c6 45 对应什么?
问题点数:10、回复次数:16Top
1 楼mydo(侯佩|hopy|ks)回复于 2006-03-05 11:52:37 得分 0
下载 masm32v8.2 安装完毕后,其中的 help 文件夹中有Top
2 楼zhgwbzhd()回复于 2006-03-05 15:02:46 得分 0
你说的是OPCODES.HLP吧,我看了一下,有汇编转换成机器码很不错。可是知道机器码怎么转换成汇编。我就没看出门道来。Top
3 楼fhb13(游途道标)回复于 2006-03-05 16:03:25 得分 0
机器码转成汇编代码需要直到指令的第一个字节在哪里
也就说只能挨个的转,不能和汇编一样跳着转。
一跳指令结束后紧接的第一个字节就是下一条指令的第一个字节,当然跳转语句例外。Top
4 楼zhgwbzhd()回复于 2006-03-05 22:57:08 得分 0
这个我知道,比如研究的好对象就是MBR.
或者分区的引导扇区中的机器码。
可是有些还是分析不出来,
比如:
机器码00 1E 对应什么?
机器码c6 45 对应什么?Top
5 楼DelphiGuy()回复于 2006-03-06 11:50:36 得分 10
00 1E/C6 45虽然可以勉强反汇编成指令(长度不够),但是看起来这不可能是MBR中出现的指令,甚至在任何程序中都不太可能有这样的指令。
估计这不是代码,而是数据,或者是从指令的中间截断了,比如1E就是push ds。
Top
6 楼zhgwbzhd()回复于 2006-03-06 21:30:36 得分 0
高,真想把分送给delphiguy。不知怎么送。
1e确实是push ds。00呢是前面的数。
不过c6 45应该是一个语句。
这个里面虽然不是MBR中的但是是win98 C盘的引导程序。
MBR中的东东研究的差不多了。可是这个C盘的东东还要分析分析。
c6 45 是偏移量为129处的代码。如果delphiguy兄能指点一下,在下感激不尽。Top
7 楼D0J88F()回复于 2006-03-07 06:15:10 得分 0
DTop
8 楼DelphiGuy()回复于 2006-03-07 14:23:21 得分 0
c6 45 xx yy是mov byte ptr [di+xx],yy。xx是一个signed char,所以有可能是负的。
我看了一下我的电脑的引导扇区,和你说的位置不太一样,ntfs分区的boot代码和这个差别很大,但是xp格式化的FAT32分区的boot代码和win98的应该差别很小,这条指令的位置在+81字节处。
boot代码一开始读了一下BIOS默认的diskette parameter table,也就是int 1Eh指向的位置,然后把它复制到了DOS Data Area(0050h段),并且设置新的int 1Eh指向这个位置(我看到的代码是设置到了0050:0022,不过DOS的引导代码总是使用0000:0522这种表达方式)。然后这句mov byte ptr [di-02],0f(c6 45 fe 0f)设置了diskette parameter table的head settle time为0F(15ms),其实很久以来BIOS默认的head settle time就是15ms,估计以前的老PC有所不同。
Top
9 楼zhgwbzhd()回复于 2006-03-08 21:45:10 得分 0
哇塞,高人,确实高人。我现在正在努力看这个东东。想学习NTFS的,但是看着比fat更难,所以就先找了一个简单的。
有什么简单的办法,可以能把这些代码转成汇编呢??
从intel的表一个一个扣,真的太难了。
能不能指点一下。另外您是北京的吗?我请客。呵呵真心的哦。Top
10 楼zhgwbzhd()回复于 2006-03-08 21:48:29 得分 0
另外,你说的应该和我说得一样,我说的偏移是十进制的129就是十六禁止的81。呵呵Top
11 楼zhgwbzhd()回复于 2006-03-08 22:05:07 得分 0
真是的,佩服佩服了。
我原来把fe 0f看作是dec byte[bx].
始终理解不了这个c6 45.
听君一席话,胜读十年书呀。Top
12 楼icbm(雪狼)回复于 2006-03-09 13:45:33 得分 0
汇编教程里,有机器码的含义。可以参考一下。
机器指令码一般是固定的,可以查表。
机器操作数码有8位,排列如下:7,6,5,4,3,2,1,0
2,1,0三位表示源寄存器;5,4,3三位表示目标寄存器;7,6两位表示是寄存器到寄存器寻址、立即数寻址、存储器寻址等。机器指令码后,紧跟着操作数。
根据指令部分、操作数部分,就可以写出对应的汇编语言代码了。Top
13 楼zhgwbzhd()回复于 2006-03-09 18:42:25 得分 0
问一下,在8086的代码中,寻址方式有如下三种情况,俺不能很准确的理解他的含义,请朋友解释一下。
oo : Function
00 : If mmm = 110, then a displacement follows the operation; otherwise, no displacement is used
01 : An 8-bit signed displacement follows the opcode
10 : A 16-bit signed displacement follows the opcode
11 : mmm specifies a register, instead of an addressing modeTop
14 楼zhgwbzhd()回复于 2006-03-10 21:24:06 得分 0
高人呀,给详细的解释一下吧Top
15 楼icbm(雪狼)回复于 2006-03-11 14:08:44 得分 0
00 : If mmm = 110, then a displacement follows the operation; otherwise, no displacement is used
01 : An 8-bit signed displacement follows the opcode
10 : A 16-bit signed displacement follows the opcode
11 : mmm specifies a register, instead of an addressing mode
大哥,这不都已经告诉你了啊。莫非要帮你翻译不成?
Top
16 楼tfrist(tfrist)回复于 2006-03-11 16:02:46 得分 0
打开一个ollydbg,然回随便打开一个文件,你去修改就好了!非常的方便,
可以将指令转换成机器吗,也可以将机器码转换成指令!对应的非常的方便!Top




