注册 登录
编程论坛 汇编论坛

王爽第二版的第九章里面为什么short的位移是8位位移,是如何求出来的?

ycxdtdz 发布于 2012-03-07 11:40, 723 次点击
为什么short的位移是8位位移,是如何求出来的?(第180页)
5 回复
#2
zklhp2012-03-07 12:32
CPU这么设计的
#3
zklhp2012-03-07 12:33
如果你再问为啥我可以给你帖intel的手册 不过是英文的 要是看不懂记住就好了
#4
zaixuexi2012-03-07 23:29
这跟CPU设计没关系,SHORT就是单字节有符号跳转+-127范围,NEAR字,FAR双字,写给编译器看的
#5
zaixuexi2012-03-07 23:45
zklhp说的是JXX->rel8?
#6
zklhp2012-03-08 11:54
Opcode      Instruction    64-Bit Mode    Compat/        Description

                                           Leg Mode



 EB cb       JMP rel8       Valid          Valid          Jump short, RIP = RIP + 8-bit displacement

                                                          sign extended to 64-bits



 E9 cw       JMP rel16      N.S.           Valid          Jump near, relative, displacement relative

                                                          to next instruction. Not supported in 64-bit

                                                          mode.



 E9 cd       JMP rel32      Valid          Valid          Jump near, relative, RIP = RIP + 32-bit

                                                          displacement sign extended to 64-bits



 FF /4       JMP r/m16      N.S.           Valid          Jump near, absolute indirect, address =

                                                          sign-extended r/m16. Not supported in 64-

                                                          bit mode.



 FF /4       JMP r/m32      N.S.           Valid          Jump near, absolute indirect, address =

                                                          sign-extended r/m32. Not supported in 64-

                                                          bit mode.



 FF /4       JMP r/m64      Valid          N.E.           Jump near, absolute indirect, RIP = 64-Bit

                                                          offset from register or memory



 EA cd       JMP ptr16:16   Inv.           Valid          Jump far, absolute, address given in

                                                          operand



 EA cp       JMP ptr16:32   Inv.           Valid          Jump far, absolute, address given in

                                                          operand



 FF /5       JMP m16:16     Valid          Valid          Jump far, absolute indirect, address given in

                                                          m16:16



 FF /5       JMP m16:32     Valid           Valid         Jump far, absolute indirect, address given in

                                                          m16:32.



 REX.W +     JMP m16:64     Valid           N.E.          Jump far, absolute indirect, address given in

 FF /5                                                    m16:64.

排版不行凑合看罢 想看好的去找pdf版

也可以说是写给编译器看的 也可以说是写给CPU看的

但short为啥是8位呢 这个没法解释 只能说CPU是这么设计的 指令集 编译器根据CPU设计
1