欢迎您!
当前位置:www.7338.com > www.7338.com > 正文

且法式形态字 PSW(Program State Word) 中的D0 位

发布时间: 2019-10-15   浏览次数:

  标签:无标签 准确区分LJMP、AJMP、SJMP、JMP 指令 MCS-51 的节制转移类指令,共 17 条,分为无前提转移指令、前提转移指令、子法式挪用和 前往指令、空操做指令等四类。 无前提转移指令(共4 LJMPaddr16 PC〈——addr16 AJMP addr11 PC〈——PC+2 PC10-0〈——addr11 SJMP rel PC〈——PC+2 PC+relJMP @A+DPTR PC〈——A+DPTR 第一条指令称为长转移指令(Long Jump); 第二条指令叫做绝对转移指令(Absolute Jump); 第指令称做短转移指令(Short Jump); 第四条指令是变址寻址转移指令(散转指令)。 明显,每条指令均以改变法式计数器PC(Program Counter)中的内容为旨。 (1)长转移指令(64KB 范畴内转移指令) 长转移指令的功能是:把指令码中的方针地址 addr16 拆入法式计数器 PC,使机械施行下一 条指令时无前提转移到addr16 处施行法式,不影响任何标记。因为addr16 是一个16 位二进 制地址(地址范畴为 0000H—FFFFH),因而长转移指令一条能够正在 64KB 范畴内转移的指令。 为了使法式设想便利易编,addr16 常采用标号地址(如:LOOP、LOOP1、MAIN、START、DONE、 NEXT1„„)暗示,只要正在上机施行前才被汇编(或代线 位二进制地址。 长转移指令为三字节,双周期指令。 上机尝尝吧!很曲不雅的! Example:LJMP F886H 留意: 鄙人载的这个 8051DEBUG 软件中,不支撑标号,且法式形态字 PSW(Program State Word) 中的D0 位,即奇偶标记位P,取准确的正好相反,这一点是错误的,用的时候寄望一下。 只需记好:累加器ACC 的个数为奇数,则P=1;不然P=0。(2)绝对转移指令(2KB 范畴内的转移指令) 绝对转移指令是一条双字节双周期指令,11 位地址addr11(a10—a0)正在指令中的分布是: a10 a9 a8 1a7a6 a5 a4 a3 a2 a1 a0,此中,00001B 是操做码。正在法式设想中, 11 位地址也能够用符号暗示,但正在上机施行前必需按照上述指令格局加以代实。 绝对转移指令施行时分为两步: 第一步是取指令操做,法式计数器PC 中内容被加1 两次; 第二步是把PC加2 后的高5为地址PC15—PC11和指令代码中低11 位形成方针转移地址:PC15 —PC11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 此中,a10—a0 的地址范畴是全“0”——全“1”。因而,绝对转移指令能够正在2KB 范畴内向 前或向后跳转。 若是把单片机64KB 寻址区分成32 页(每页2KB),则PC15—PC11(00000B—11111B)称为页 面地址(即:0 页—31 页),a10—a0 称为页内地址,但应留意:AJMP 指令的方针转移地址不 是和AJMP 指令地址正在统一个2KB 区域,而是应和AJMP 指令取出后的PC 地址(即:PC+2)正在 统一个 2KB 区域。例如:若 AJMP 指令地址为 2FFEH,则 PC+2=3000H,故方针转移地址必正在 3000H—37FFH 这2KB 区域中。 例如:MGH2001:AJMP addr11, 此中,MGH2001 为AJMP addr11 指令的标号地址,由该指令阃在法式存储器中简直定,addr11 为11 位地址,试阐发该指令施行后的环境以及指令码简直定方式。 解:设MGH2001=3100H,addr11=B,则按照上述指令码格局可得绝对转移指令的 格局码为:1 1(a10a9 a8操做码a7—a0) 即:A1A5H。该指令施行后: PC15——PC11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 PC= =35A5H即:法式转移到35A5H 处施行。 (3)短转移指令(-126—+129 范畴内的转移指令) 短转移指令的功能是先使法式计数器PC 两次(即:取出指令码),然后把加2后的地址 和rel 相加做为方针转移地址。因而,短转移指令是一条相对转移指令,是一条双字节双周 期指令,指令码格局为:80H rel(操做码 地址偏移量),这里,80H 是SJMP 指令的操做码; rel 是地址偏移量,正在法式中也常采用符号地址,上机运转前才被代实成二进制形式。 碰到具体问题时,思维中必然要清晰一个关系式:方针转移地址=源地址+2+rel (4)变址寻址转移指令(只能正在256 个存储器单位内转移) 这是一条单字节双周期无前提转移指令。 正在指令施行之前,用户应事后把方针转移地址的址送入DPTR,方针转移地址对址的 偏移量放正在累加器A 中。正在指令施行时,MCS-51 单片机把DPTR 中址和累加器A 中地址 偏移量相加,以构成方针转移地址送入法式计数器PC 凡是,DPTR中址是一个确定的值,常常是一张转移指令表的起始地址,累加器A 为表的偏移量地址,机械通过变址寻址转移指令便可实现法式的分支转移跳转的范畴纷歧样,能够说是达到的远近距离纷歧样。存储空间占用纷歧样。 AJMP 的范畴是11 位地址,也就是2K 的空间内,占用存储空间2 个字节,施行周期24 钟周期。LJMP 的范畴是16 位地址,也就是64K 的空间内,占用存储空间3 个字节,施行周期24 钟周期。SJMP 的范畴是 位地址,也就是256BIT 的空间内,占用存储空间 个字节,施行周期24 个时钟周期。 JMP 一般共同DPTR 利用,存储空间1 个字节,施行周期24 个时钟周期。一般用于多分枝选 择的时候利用,好比按键处置。 ACALL,LCALL 和以上申明雷同,是挪用指令,ACALL 占用存储空间2 个字节,施行周期24 时钟周期。LCALL占用存储空间3 个字节,施行周期24 个时钟周期。



友情链接:

Copyright 2019-2022 http://www.alibaba-vt.cn 版权所有 未经协议授权禁止转载