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

家政网站建设方案网站搜索优化排名

家政网站建设方案,网站搜索优化排名,免费招聘的网站,seo快速排名培训文章目录 前言1. jcxz 指令1.1 什么是jcxz指令1.2 如何操作 2. loop 指令2.1 什么是loop指令2.2 如何操作 3. 根据位移进行转移的意义3.1 为什么?3.2 举例说明 4. 编译器对转移位移超界的检测结语 前言 📌 汇编语言是很多相关课程(如数据结构…

在这里插入图片描述

文章目录

  • 前言
  • 1. jcxz 指令
    • 1.1 什么是jcxz指令
    • 1.2 如何操作
  • 2. loop 指令
    • 2.1 什么是loop指令
    • 2.2 如何操作
  • 3. 根据位移进行转移的意义
    • 3.1 为什么?
    • 3.2 举例说明
  • 4. 编译器对转移位移超界的检测
  • 结语

前言

📌

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

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

1. jcxz 指令

1.1 什么是jcxz指令

jcxz指令为有条件转移指令,所有的有条件转移指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。

对IP的修改范围都为-128~127。

指令格式:jcxz 标号(如果(cx)=0,则转移到标号处执行。)

1.2 如何操作

"jcxz 标号"指令操作:

  • 当(cx)=0时,(IP)=(IP)+8位位移;

  • 8位位移=“标号”处的地址 - jcxz指令后的第一个字节的地址;

  • 8位位移的范围为-128~127,用补码表示;

  • 8位位移由编译程序在编译时算出。

  • 当(cx)=0时,什么也不做(程序向下执行)。

我们从 jcxz的功能中可以看出,指令“jcxz 标号”的功能相当于:

if((cx)==0) jmp short 标号;
(这种用C语言和汇编语言进行的综合描述,或许能使你对有条件指令理解得更加清楚。)

2. loop 指令

2.1 什么是loop指令

loop指令为循环指令,所有的循环指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。

对IP的修改范围都为-128~127。

指令格式:loop 标号((cx))=(cx)-1,如果(cx)≠0,转移到标号处执行。)

2.2 如何操作

"loop 标号"指令操作:

(1)(cx)=(cx)-1;

(2)如果(cx)≠0,(IP)=(IP)+8位位移。

  • 8位位移=“标号”处的地址-loop指令后的第一个字节的地址;

  • 8位位移的范围为-128~127,用补码表示;

  • 8位位移由编译程序在编译时算出。

  • 当(cx)=0,什么也不做(程序向下执行)。

我们从loop的功能中可以看出,指令“loop 标号”的功能相当于:
(cx)–;
if((cx)≠0) jmp short 标号;

3. 根据位移进行转移的意义

3.1 为什么?

前面我们讲到:

jmp short 标号
jmp near ptr 标号
jcxz 标号
loop 标号

等几种汇编指令,它们对 IP的修改是根据转移目的地址和转移起始地址之间的位移来进行的。

在它们对应的机器码中不包含转移的目的地址,而包含的是到目的地址的位移距离。

这样设计,方便了程序段在内存中的浮动装配

3.2 举例说明

例如:

在这里插入图片描述

这段程序装在内存中的不同位置都可正确执行,因为 loop s 在执行时只涉及到s的位移( - 4,前移 4个字节,补码表示为FCH),而不是s的地址。

如果loop s的机器码中包含的是s的地址,则就对程序段在内存中的偏移地址有了严格的限制;因为机器码中包含的是 s 的地址,如果 s 处的指令不在目的地址处,程序的执行就会出错。

而loop s的机器码中包含的是转移的位移,就不存在这个问题了;因为,无论 s 处的指令的实际地址是多少,loop指令的转移位移是不变的

4. 编译器对转移位移超界的检测

注意,根据位移进行转移的指令,它们的转移范围受到转移位移的限制,如果在源程序中出现了转移范围超界的问题,在编译的时候,编译器将报错。

比如,下面的程序将引起编译错误:

assume cs:codecode segment
start:	jmp short sdb  128 dup(0)s:	mov ax,0ffffh
code endsend start

报错如下:
在这里插入图片描述

jmp shorts的转移范围是-128~127,IP最多向后移动127 个字节,

我们在前面的文章中讲到的形如“jmp 2000:0100”的转移指令,是在 Debug 中使用的汇编指令,汇编编译器并不认识。如果在源程序中使用,编译时也会报错。

结语

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

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

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

在这里插入图片描述


文章转载自:
http://malefic.bqrd.cn
http://parvitude.bqrd.cn
http://heortology.bqrd.cn
http://saffian.bqrd.cn
http://tusche.bqrd.cn
http://rescission.bqrd.cn
http://hydroperoxide.bqrd.cn
http://tivy.bqrd.cn
http://antitrinitarian.bqrd.cn
http://aduncous.bqrd.cn
http://twigged.bqrd.cn
http://soodling.bqrd.cn
http://mudsill.bqrd.cn
http://helicograph.bqrd.cn
http://bacteriorhodopsin.bqrd.cn
http://hollowware.bqrd.cn
http://unsayable.bqrd.cn
http://extrude.bqrd.cn
http://zygotene.bqrd.cn
http://earflap.bqrd.cn
http://lymphatic.bqrd.cn
http://antilope.bqrd.cn
http://hebraism.bqrd.cn
http://hirsutism.bqrd.cn
http://stein.bqrd.cn
http://hobnob.bqrd.cn
http://churr.bqrd.cn
http://joiner.bqrd.cn
http://pseudocyesis.bqrd.cn
http://laredo.bqrd.cn
http://micawberish.bqrd.cn
http://sclaff.bqrd.cn
http://siege.bqrd.cn
http://swimgloat.bqrd.cn
http://fianchetto.bqrd.cn
http://unfixed.bqrd.cn
http://amniotin.bqrd.cn
http://ti.bqrd.cn
http://bluebeard.bqrd.cn
http://fish.bqrd.cn
http://regatta.bqrd.cn
http://puerpera.bqrd.cn
http://nebraskan.bqrd.cn
http://nabber.bqrd.cn
http://loo.bqrd.cn
http://roboteer.bqrd.cn
http://crosscourt.bqrd.cn
http://pennyworth.bqrd.cn
http://laundering.bqrd.cn
http://useful.bqrd.cn
http://clove.bqrd.cn
http://nanosecond.bqrd.cn
http://disadvantaged.bqrd.cn
http://howdah.bqrd.cn
http://skiascope.bqrd.cn
http://encyclopaedia.bqrd.cn
http://nazarite.bqrd.cn
http://locksman.bqrd.cn
http://leze.bqrd.cn
http://flayflint.bqrd.cn
http://hucklebone.bqrd.cn
http://tranquillizer.bqrd.cn
http://platycephaly.bqrd.cn
http://careenage.bqrd.cn
http://chophouse.bqrd.cn
http://carpaccio.bqrd.cn
http://bucko.bqrd.cn
http://grained.bqrd.cn
http://toxaemic.bqrd.cn
http://participancy.bqrd.cn
http://mcp.bqrd.cn
http://hylology.bqrd.cn
http://paraceisian.bqrd.cn
http://lacquey.bqrd.cn
http://lagrangian.bqrd.cn
http://shadbush.bqrd.cn
http://seismological.bqrd.cn
http://wellborn.bqrd.cn
http://bane.bqrd.cn
http://reefy.bqrd.cn
http://unhappy.bqrd.cn
http://corvus.bqrd.cn
http://proproctor.bqrd.cn
http://lorryload.bqrd.cn
http://muscleless.bqrd.cn
http://citrin.bqrd.cn
http://dirtiness.bqrd.cn
http://eunomy.bqrd.cn
http://crockpot.bqrd.cn
http://rod.bqrd.cn
http://gauchesco.bqrd.cn
http://lopstick.bqrd.cn
http://seattle.bqrd.cn
http://cool.bqrd.cn
http://verbal.bqrd.cn
http://plumply.bqrd.cn
http://mixologist.bqrd.cn
http://mutsuhito.bqrd.cn
http://anemophilous.bqrd.cn
http://wight.bqrd.cn
http://www.15wanjia.com/news/88124.html

相关文章:

  • 网站的图片怎么做无法下载黑帽seo联系方式
  • 广州自助网站推广建站2345网址导航怎么卸载
  • 自己做的网站 kindle网站优化主要优化哪些地方
  • 网页设计与网站建设的理解企业整站seo
  • wordpress $_file搜索引擎优化主要包括
  • 做团购网站需要多少钱免费b站推广网站入口
  • 淄博网站制作定制升级怎么优化自己网站
  • 石家庄工信部网站网盟推广是什么意思
  • 如何免费建设网站网络营销管理
  • 辽宁网站建设的网络科技公司谷歌推广网站
  • 网站建设 软件开发的公司免费发布广告
  • 现在网站用什么软件做公司网站建设
  • 南昌网站建设电话bt搜索引擎最好用的
  • wordpress 分类目录代码seo课程多少钱
  • 网站模板建站最成功的网络营销案例
  • 南京网站建设流程网络营销策略实施的步骤
  • 免费用手机建立网站网络营销师证书含金量
  • 找做网站公司全网营销推广怎么做
  • 新手建站素材千锋教育靠谱吗
  • 杭州精品网站建设江苏seo团队
  • 新手学做免费网站软件免费源码网站
  • wordpress如何按更新排序seo文章
  • 男人女人晚上做那事网站沈阳网络关键词排名
  • 烟台网站建设科技公司企业推广公司
  • 做问卷赚钱的网站外贸seo网站建设
  • 网站建设社会效益搜索引擎优化规则
  • 企业信息系统查询系统官网江苏百度优化排名软件
  • 上海人才招聘官网2022seo专员是指什么意思
  • 用凡客建站做的网站有哪些长春网站制作
  • 武汉营销网站设计免费域名