Dark意识 2023-08-09 16:43 采纳率: 0%
浏览 2

cpu指令的相关问题

就是不懂原理,指令包括操作码和操作数,cpu在没有读取下一条指令的时候是不知道指令的长度的,因为操作数可能是8位、16位、32位,那么怎么知道读取多少个字节作为一整条指令,难道是分步来先读前面的操作码,然后译码了之后接着读取后面的操作数吗?
比如move ax 56431536h
和jmp 00000010
这两个指令的长度不一样吧

  • 写回答

3条回答 默认 最新

  • Tech Embedded 2023-08-09 16:55
    关注

    CPU在执行指令时,确实是在读取下一条指令之前不知道当前指令的长度。这是因为指令的长度是根据操作码(Opcode)决定的,而不同的指令可能具有不同的操作码长度和不同的操作数长度。

    在现代计算机体系结构中,通常使用的方式是在指令集架构中定义指令的长度。指令集架构是处理器的设计规范,规定了指令的格式和编码方式。在指令集架构中,每个指令的长度都是固定的或者有规律可循。

    处理器通过读取指令的操作码来确定指令的类型和长度。一旦处理器读取了指令的操作码,它就可以确定指令的长度,并且根据指令的要求读取相应的操作数。通常,在指令的操作码中,会包含指令的长度信息或者其他标记,以便CPU能够正确解析指令。

    总结一下,CPU通过处理器设计规范中定义的指令集架构来确定指令的长度。指令的长度是固定的或者由操作码决定的,并且处理器会读取指令的操作码来识别指令的类型和长度,然后根据指令的要求读取相应的操作数。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月9日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改