. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  CPU怎么判断要读取的指令有多长,求大神指点。  [待解决] 回复[ 1次 ]   点击[ 454次 ]  
502001334
[帖 主]   [ 发表时间:2016-06-28 11:36 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2016-06-25 09:24
书上2.10节说CPU会从CS:IP指向的内存单元读取指令,然后IP会自动加上所读取的指令长度。那么CPU是怎么判断要读取的指令有多长的呢?就是说cpu是怎么判断IP要加上多少呢?
13782727312
[第1楼]   [ 回复时间:2016-12-27 21:36 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2016-12-27 21:26
这涉及到指令系统的格式(操作码+地址码),如书上28页 mov ax,0123H 的机器码为 B82301
                                                    mov ax,bx    的机器码为 89D8
指令格式是设计好的,操作码确定时,这条指令的长度就确定了,比如上面的指令前两位都是10 可能就是mov操作 后边的是标志位 确定是寄存器与寄存器组合还是寄存器与内存地址组合 后边就是寄存器编号 和 寄存器或者内存单元地址 操作码确定后,后边就可以确定为一地址或二地址或。。。。这条指令的长度就确定了。
本人的一点拙见,去年大二的计算机硬件综合实验时看到的,在机器指令和微指令有详细设计方法,感兴趣可以去了解一下
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved