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

阅读: 评论:0

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

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

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

文章目录

  • 前言
  • 一、debug命令中的u指令和d指令
  • 二、CPU如何区分指令和数据
    • 1.指令的寄存器组成
  • 总结


前言

本文梳理汇编语言的知识点中,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只有在工作的时候,才将有的信息当作指令

本文发布于:2024-01-28 18:55:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064393149537.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:汇编语言   指令   数据   CPU
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23