. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(内存访问)
主题 : :  个人认为书中的错误之处,请高手解释一下  [待解决] 回复[ 4次 ]   点击[ 493次 ]  
hhuang
[帖 主] [ 发表时间:2009-05-15 07:26 ] 
荣誉值:0
信誉值:0
注册日期:2009-05-15 07:11
王爽老师在第三章举的第一个CS、IP的例子中,在把一条机器指令读取到cpu中执行后,ip指针会跳到下一条机器指令。
可是,书上举例中,每一条汇编指令对应的内存中的机器码的长度不一样,有的2字节,有的3字节,甚至jmp是5字节(32页)。这样好像是不对的吧,理由如下:
1、我记得当时我们在学计算机原理时,80x86属于RISC精简指令体系,指令少,而且每条指令的字长都是固定。对于32位机,每条指令的长度都应该是4字节。
2、如果汇编语言在编译后对应的机器指令的长度不固定,那么ip指针怎么知道下一次要增加几个字节呢。在32位的x86体系中,每执行完一条指令,ip应该是加4,也就是向后跳4字节。

不可否认王老师的书写的很通俗和流畅,很是敬佩,也很感谢。
以上是我的一些疑问,请高手能指点一下。hhuang111@163.com
hhuang
[第4楼] [ 回复时间:2011-01-26 11:33 ] 
荣誉值:0
信誉值:0
注册日期:2009-05-15 07:11
感谢二位的解释
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved