当前位置: 首页 > news >正文

烟台建设集团网站国内做网站建设知名的公司

烟台建设集团网站,国内做网站建设知名的公司,免费网站推广网站破解版,什么是网站服务器名称文章目录 前言1. 修改CS、IP的指令2. 问题分析:CPU运行的流程3. 代码段小结结语 前言 📌 汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计…

在这里插入图片描述

文章目录

  • 前言
  • 1. 修改CS、IP的指令
  • 2. 问题分析:CPU运行的流程
  • 3. 代码段
  • 小结
  • 结语

前言

📌

汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计算机底层工作原理,提升代码效率,尤其在嵌入式系统和性能优化方面有重要作用。此外,它在逆向工程和安全领域不可或缺,帮助分析软件运行机制并增强漏洞修复能力。

本专栏的汇编语言学习章节主要是依据王爽老师的《汇编语言》来写的,和书中一样为了使学习的过程容易展开,我们采用以8086CPU为中央处理器的PC机来进行学习。

文章主要内容:修改CS、IP的指令以及代码段的学习

1. 修改CS、IP的指令

在CPU中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制。

CPU从何处执行指令是由CS、IP中的内容决定的,程序员可以通过改变CS、IP中的内容来控制CPU执行目标指令。

我们如何改变CS、IP的值呢?

显然,8086CPU必须提供相应的指令。我们如何修改AX中的值?可以用mov指令,如mov ax, 123将ax中的值设为 123,显然,我们也可以用同样的方法设置其他寄存器的值,如mov bx, 123mov cx, 123mov dx, 123等。其实,8086CPU大部分寄存器的值,都可以用mov指令来改变,mov指令被称为传送指令

但是,mov指令不能用于设置CS、IP的值,原因很简单,因为8086CPU没有提供这样的功能。8086CPU为CS、IP提供了另外的指令来改变它们的值。能够改变CS、IP的内容的指令被统称为转移指令(我们以后会深入研究)。我们现在介绍一个最简单的可以修改CS、IP的指令:jmp指令

✍若想同时修改 CS、IP的内容,可用形如“jmp段地址:偏移地址”的指令完成,如

在这里插入图片描述

“ imp段地址:偏移地址”指令的功能为:用指令中给出的段地址修改CS,偏移地址修改IP。

✍若想仅修改IP的内容,可用形如“jmp 某一合法寄存器”的指令完成,如

在这里插入图片描述

“jmp 某一合法寄存器”指令的功能为:用寄存器中的值修改IP。

jmp ax,在含义上好似:mov IP,ax。

❗❗❗注意,我们在适当的时候,会用已知的汇编指令的语法来描述新学的汇编指令的功能。采用一种“用汇编解释汇编”的方法来使读者更好地理解汇编指令的功能,这样做有助于读者进行知识的相互融会。要强调的是,我们是用“已知的汇编指令的语法”进行描述,并不是用“已知的汇编指令”来描述,比如,我们用mov IP,ax来描述jmp ax,并不是说真有 mov IP,ax这样的指令,而是用 mov指令的语法来说明jmp指令的功能。我们可以用同样的方法描述jmp 3:01B6的功能:jmp 3:01B6在含义上好似mov CS,3 mov IP,01B6

2. 问题分析:CPU运行的流程

内存中存放的机器码和对应的汇编指令情况如下图所示,设CPU初始状态:CS=2000H,IP=0000H,请写出指令执行序列。思考后看分析。

在这里插入图片描述

分析如下

在这里插入图片描述

3. 代码段

前面讲过,对于8086PC机,在编程时,可以根据需要,将一组内存单元定义为一个段。我们可以将长度为N(N≤64KB)的一组代码,存在一组地址连续、起始地址为16的倍数的内存单元中,我们可以认为,这段内存是用来存放代码的,从而定义了一个代码段。比如,将:

在这里插入图片描述

这段长度为10个字节的指令,存放在123B0H-123B9H的一组内存单元中,我们就可以认为,123B0H-123B9H这段内存是用来存放代码的,是一个代码段,它的段地址为123BH,长度为10个字节。

如何使得代码段中的指令被执行呢?

将一段内存当作代码段,仅仅是我们在编程时的一种安排,CPU并不会由于这种安排,就自动地将我们定义的代码段中的指令当作指令来执行。CPU 只认被CS:IP指向的内存单元中的内容为指令。所以,要让CPU执行我们放在代码段中的指令,必须要将CS:IP指向所定义的代码段中的第一条指令的首地址。对于上面的例子,我们将一段代码存放在123B0H~123B9H内存单元中,将其定义为代码段,如果要让这段代码得到执行,可设CS=123BH、IP=0000H。

小结

​ (1)段地址在8086CPU的段寄存器中存放。当8086CPU要访问内存时,由段寄存器提供内存单元的段地址。8086CPU有4个段寄存器,其中CS用来存放指令的段地址。

​ (2)CS存放指令的段地址,IP存放指令的偏移地址。

​ 8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。

​ (3)8086CPU的工作过程:

​ ①从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器
​ ②IP指向下一条指令
​ ③ 执行指令。(转到步骤①,重复这个过程)

​ (4)8086CPU提供转移指令修改CS、IP的内容。

结语

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下。

也可以点点关注,避免以后找不到我哦!

Crossoads主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的动力!

在这里插入图片描述

http://www.15wanjia.com/news/167597.html

相关文章:

  • 网站长春网站建设怎样在阿里云做网站
  • 石家庄制作网站推广wordpress+社交链接
  • 高校校园网站建设与运行公司流程建设的意义
  • 网页制作工具的选择与网站整体风格是有关系的企业网站设计网站
  • 马鞍山网站建设 明达广州网站建设哪个公司做得好些
  • 网站建设合同英文模板下载wordpress云标签
  • 人员调动在网站上怎么做php学生管理系统源码免费
  • 公司网站制作需要多少钱mysql创建WordPress
  • 网站管理后台地址苏州网站建设主页
  • wordpress游戏网站主题个人安装公司怎么注册
  • 宁波网站建站公司商务网页设计与制作干嘛的
  • 网站制作公司北京wordpress id清空
  • 怎么建设网站首页电子商务网站建设与管理相关文献
  • 网站可不可以做自己的专利广西建设厅网站资质查询
  • 无锡seo网站排名优化wordpress 开源app
  • 毕业设计代做淘宝好还是网站好西丽网站建设
  • 邢台兼职网站有哪些?学做实体店网站
  • 网站备案网站简介网络与新媒体就业方向及前景
  • 如何做试玩类网站wordpress function
  • 手机网站开发 c黄骅港务局
  • 网站整体运营思路什么是asp网站
  • 网站开发要学什么做网站如何
  • 绍兴做网站选哪家中国网站有哪些
  • 淄博市建设监理协会网站做网站的费用入什么科目
  • 人才招聘网站模板html网站建设相关文章
  • 山西建设厅网站首页怎么制作网站vi页面
  • 如何做融资网站广州申请公司注册网站
  • 企业为什么做网站优化推广百度网盘可以做网站吗?
  • 网站联系方式连接怎么做网站从哪里找的
  • 公司网站建设的作用与意义有哪些企业会找人做网站建设