csapp:为什么需要 3bytes 和 7bytes? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lgqfhwy
V2EX    问与答

csapp:为什么需要 3bytes 和 7bytes?

  •  
  •   lgqfhwy 2018-02-06 14:34:53 +08:00 2219 次点击
    这是一个创建于 2836 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题答案见图片:

    https://weibo.com/u/2904335594?refer_flag=0000015010_&from=feed&loc=nickname&is_all=1

    我想知道第三问,即问题 C,为什么需要 3bytes 呢,7bytes 那个也没法理解,感觉自己好笨,希望大家帮忙回答一下,谢谢

    8 条回复    2018-02-06 17:22:12 +08:00
    hxndg
        1
    hxndg  
       2018-02-06 14:54:17 +08:00
    我还是很久之前看的 csapp 不是很确定这个题的答案了。
    我记得 0 是立即数,你用 movq 自然就会比较长。书上应该给了具体指令不同形式的长度吧。

    ps  问问题之前最好先查询一下
    https://www.zhihu.com/question/53278372
    lcdtyph
        2
    lcdtyph  
       2018-02-06 15:05:46 +08:00
    指令长度是根据手册规定推算出来的啊,amd 当然也可以把 xor 规定成 4byte 长的指令
    lgqfhwy
        3
    lgqfhwy  
    OP
       2018-02-06 15:07:21 +08:00
    @hxndg 好的,谢谢你。我之前谷歌搜一直没搜到类似的。看链接里说不同指令占用不同大小,然而奇怪的是在这个题之前 csapp 这本书丝毫没提过还和指令有关,仅指出了寄存器大小,还说了指令要和寄存器大小匹配(即通过寄存器就能判断大小,而按这个规则上面我问的题则需要 8   bytes ),我再查查看看吧
    lgqfhwy
        4
    lgqfhwy  
    OP
       2018-02-06 15:08:33 +08:00
    @lcdtyph 奇怪的是 csapp 在这个题之前一直没有说过,仅说了指令要和寄存器大小匹配,所以我才不懂
    hxndg
        5
    hxndg  
       2018-02-06 15:55:58 +08:00
    @lgqfhwy
    我记得书上是不是有附着的表格,上面是不是有数据。
    lgqfhwy
        6
    lgqfhwy  
    OP
       2018-02-06 16:07:14 +08:00
    @hxndg 有,是寄存器的,按那张表是 8bytes
    feather12315
        7
    feather12315  
       2018-02-06 16:49:22 +08:00 via Android   1
    指令分为俩部分,一部分是 mov 这样的,一部分是所要操作的数据地址(术语给忘了)。
    其实他想多长就多长( x86 上,最短 1byte,最长给忘了),变长指令而已,反正都会翻译成硬件信号。
    具体怎么翻译,三八译码器、三态门啥的组装呗。
    lgqfhwy
        8
    lgqfhwy  
    OP
       2018-02-06 17:22:12 +08:00
    @feather12315 我之前不太懂,看的 csapp 上的感觉弄的我好像理解偏了,因为 csapp 之前一直在介绍寄存器对应的长度以及不同长度还要变换一下指令(后缀),所以这个题说指令本身长度,而且书上没有说,所以把题放在介绍寄存器长度后面,就让我往寄存器上想了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4912 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 09:43 PVG 17:43 LAX 01:43 JFK 04:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86