礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

单片机jz如何负转移-单片机正负数

2025-11-08 06:29:25  

单片机jz如何负转移-单片机正负数

优质解答

单片机里的正负数就像存钱罐里的和,正数用普通数字存,负数用补码存。负转移就是往回跳,正转移就是往前跳。比如JZ -5就是往回跳5步,JZ +3就是往前跳3步。跳步的地址用PC(程序计数器)算的,负数跳的时候PC要减偏移量,正数跳的时候PC要加偏移量。

为啥负数跳是减呢?因为单片机用补码存负数,比如8位里-5存成1011,实际是128-5=123。跳转指令算地址时,负数偏移量要和PC相加,但因为补码是反的,所以得用减法。比如PC=100,跳-5,实际算100+(-5)=95,但存的是补码1011,单片机自动转成100-5=95。数据手册里说,比如AT89C51的PC最大能到65535,跳-128就是65535-128=65407,跳+127就是65535+127=65662。负数跳转用减法,正数跳转用加法,这样算出来的地址才对得上补码存的数值。

本题链接:

单片机转移指令补码运算