懂单片机的高人请进,在相对转移指令SJMP中rel是正数和负数有什么区别?参照向下面的例题分析

懂单片机的高人请进,在相对转移指令SJMP中rel是正数和负数有什么区别?参照向下面的例题分析
例题:在2100H单元有SJMP指令,若rel=5AH(正数),则转移的目的地址为215CH(向后转).如果把rel=5AH后面的“(正数)”去掉,则转移的目的地址会是多少,为什么?
再如例题:目的地址等于2013H,SJMP指令的地址为2000H,则相对地址rel是多少,为什么?
(请重点解释为什么)
在2100H单元有SJMP指令,若rel=FOH(负数),则转移的目的地址为20F2H(向后转),这个负数FOH使用补码来表示的吗,正的FOH和负的FOH分别怎么表示?结果20F2H是正还是负的?
mtazyetb 1年前 已收到1个回答 举报

好好地生活 幼苗

共回答了23个问题采纳率:87% 举报

5AH本身就是个正数,后面的(正数)也只是个特别说明,不写,5AH也是正数.
转移目的地址还是 215CH
rel=0A6H 这才是个负数,最高位符号位为1 0A6H就是 负的5AH 负数用补码来存,取反加1
SJMP 是2000H
2013H-2000H = 13H
13H-02H=11H 再减去指令本身的占用的2个字节的地址.
相对地址是11H

1年前 追问

10

mtazyetb 举报

负的5AH表示出来是什么样的?在2100H单元有SJMP指令,若rel=FOH(负数),则转移的目的地址为20F2H(向后转),这个负数FOH使用补码来表示的吗,正的FOH和负的FOH分别怎么表示?结果20F2H是正还是负的?我会求解,只是对是正是负有点弄不清,我知道负数用补码来存,负的5AH和正的5AH的表示分别是多少?请您帮忙解释一下

举报 好好地生活

这条指令中 rel是一个8位大小的值,它的最高位表示符号位。 最高位为1就是负数(补码),为0是正数。 下面从小到大: 80H = -128 FFH = -1 00H = 0 01H = 1 7FH = 127 你上面说的 rel=F0H 是负数没错,表示-16 但是没有正的 F0一说,8位有符号数,最大只能是正的 7FH

mtazyetb 举报

也就是说把一个“某某H”化为八位的,只要最高位是1,它就是负数;最高位是0,它就是负数。 对吗?感谢你的赐教

举报 好好地生活

没错,最高位是0,它就是正数。这是相对于有符号数来说。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.078 s. - webmaster@yulucn.com