能力值:
( LV3,RANK:20 )
2 楼
好文章啊,近几天看雪出来了很多精品的文章啊,谢谢牛人们分享技术
能力值:
( LV2,RANK:10 )
3 楼
晕,那个论坛下载还要注册啊。
能力值:
( LV9,RANK:280 )
4 楼
那两个资源很好找的:
一个是《处理器指令集参考手册》x86eas.hlp
另一个是《Intel手册》的24319102.PDF
以上资料在看雪的大礼包里都有
。
能力值:
(RANK:10 )
5 楼
开眼界了。。。
能力值:
( LV2,RANK:10 )
6 楼
看不懂的说,不过强贴留名
能力值:
( LV2,RANK:10 )
7 楼
学习一下,谢谢楼主!!!
能力值:
( LV9,RANK:250 )
8 楼
支持下 期待更多的精品文章 ~~
能力值:
( LV2,RANK:10 )
9 楼
前缀(最多4个前缀,每个1字节,并不是必需的)
这个很迷糊呀……
什么时候会用到两个前缀?排列有没有什么要求?
能力值:
( LV9,RANK:280 )
10 楼
其实OpCode的前缀就是一个开关,你需要什么养的功能,就打开什么开关。
而对于它们之间的排列顺序则没有任何要求。
能力值:
( LV2,RANK:10 )
11 楼
研究了一阵子,很感谢!!
能力值:
( LV11,RANK:180 )
12 楼
强帖留名~
能力值:
( LV4,RANK:40 )
13 楼
在上一节我仅告诉各位“/0”是代表此OpCode里存在ModR/M结构,但并没有多说什么,其实这里的“/0”就是代表此表中竖排(列)中第一排,其内容如下:
感觉这句根据inel手册上的说法好像有问题吧
inel上说的是“/digit digit between 0 and 7 indicates that the ModR/M byte of the instruction uses only the r/m (register or memory) operand. The reg field contains the digit that provides an extension to the instruction's opcode.
”
这个0也就是modr/m这个字节中的reg/opcode字段 是作为操作码的扩展来表示的
好像并不是大牛说的表示的第一排。。。。
经过我试验也的确如此 比如:
add eax ,1 83 /0 ib 83c001
sub eax ,1 83 /5 ib 83e801
add 和sub的操作码是一样的 这个时候 /0和/5就是对操作码opcode的扩充 操作数eax寄存器的确定按照inel手册上的说法是 mod和r/m确定的
原文如下:
The mod field combines with the r/m field to form 32 possible values: eight registers and
24 addressing modes.
小菜刚研究inel手册有什么错误地方大牛一定要指出来啊
能力值:
( LV9,RANK:280 )
14 楼
这位朋友说的没错 ,本文在这里表述的确实不够准确,但是这确实是读者精心构造 的一个描述方法,按照文中的逻辑,如果我们遇到“/2”怎么办?肯定就去对应第三列了。
本文是针对入门者的一篇文章,因此作者在里面偷换了一些概念,毕竟将更复杂的知识转化为简单的知识势必会伴随着精度的丢失,这是不可避免的,就像将double型装换为int型一样。
===================================================
为了更加精准的阐述着一块,笔者在此给出一个Intel推荐的计算方法,感兴趣的读者可以借鉴一下:
1、 Mod 11
2、 RM 000
3、 REG 001
----------------------
C8H=11 001 000
解释:
1、表格第2列MOD
2、表格第3列RM
3、表格第6排/digit
能力值:
( LV13,RANK:283 )
15 楼
跟着漏搂主学习了
能力值:
( LV2,RANK:10 )
16 楼
能力值:
( LV12,RANK:360 )
17 楼
以前好像在哪见过
能力值:
( LV10,RANK:170 )
18 楼
搜贼斯馁.....
能力值:
( LV2,RANK:10 )
19 楼
有些疑问:
其一
文中
/digit REG Mod R/M
0 000 11 000 = 000011000 = C0h
不明白 000011000=18h才对
其二
31页的表ModR/M的解释是
mod reg/Opcode R/M
也就是说应该是
mod = 11 reg/Opcode = 000 R/M = 000
因此为:11000000 = C0h才对
其三
这值都无需算,表上可以查到
EAX/AX/AL/MM0/XMM0 11 000 C0 C8 ……
这里的C0就是/digit (Opcode) = 0列的
C8就是/digit (Opcode) = 1列的
以此类推
能力值:
( LV2,RANK:10 )
20 楼
一个是《处理器指令集参考手册》x86eas.hlp
另一个是《Intel手册》的24319102.PDF
能力值:
( LV2,RANK:10 )
21 楼
矛与盾的激情
能力值:
( LV3,RANK:20 )
22 楼
好文章 收藏
能力值:
( LV2,RANK:10 )
23 楼
开了眼!才知学好汇编不是那么简单