汇编语言:CPU是如何区分指令和数据的

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文梳理汇编语言的知识点中,CPU是如何区分指令和数据相关知识点

一、debug命令中的u指令和d指令

在了解CPU如何区分指令和数据相关知识点之前,我们先看相关的debug命令

  • debug -u指令
    在这里插入图片描述

  • debug -d指令
    在这里插入图片描述

二、CPU如何区分指令和数据

1.指令的寄存器组成

欲搞懂CPU是如何区分指令和数据的,我们借助dosbox进行实验即可发现
我们都知道指令内容是存储在一个真实地址,也就是物理地址上的,而物理地址由段机构寄存器和偏移地址寄存器的数值内容确定,我们借助doxbox -r命令修改相关寄存器的数据进行查看,从而确定究竟是由哪两个寄存器的数值最终确定指令的物理地址

在这里插入图片描述

在debug命令中,输入-r查看寄存器相关数值
再输入-t执行一条指令,发现其他的寄存器数值均未发生改变(除了主动要变化的AX),但是IP寄存器的数值发生了相关改变,那么也就是说,与命令有关的偏移地址寄存器为IP地址寄存器

那么我们再确定相关影响指令指向的段地址寄存器

观察可得,DS、ES、SS和CS的数值均为073F,和指令指向的段地址相同,那么我们便一个一个进行修改查看到底是哪个段地址寄存器在影响指令指向的地址

在这里插入图片描述

在这里插入图片描述

经过尝试可得,当修改CS寄存器时,对应的指令指向会发生变化,那么也就是说,决定指令指向地址的寄存器为CS和IP寄存器

总结

关于数据和指令区分整理如下:

  • 8086CPU中,在任意时刻,CPU将CS:IP所指向的内容,全部当作指令来执行
  • 在内存中,指令和数据是没有任何区别的,都是二进制信息,CPU只有在工作的时候,才将有的信息当作指令
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值