Assembly AVR汇编:jmp和rjmp指令中的地址是什么?
我收到的代码如下所示: 140后退:jmp前进 142加上 143加 。总共有80条添加指令是这样进行的 222LDS 224激光二极管 226激光二极管 。总共有300个lds指令是这样进行的 822前进:rjmp后退Assembly AVR汇编:jmp和rjmp指令中的地址是什么?,assembly,binary,hex,avr,Assembly,Binary,Hex,Avr,我收到的代码如下所示: 140后退:jmp前进 142加上 143加 。总共有80条添加指令是这样进行的 222LDS 224激光二极管 226激光二极管 。总共有300个lds指令是这样进行的 822前进:rjmp后退 哪个内存位置的地址将存储在第140行的jmp指令和第822行的rjmp指令中?rjmp将存储822-140=682或823-140=683的地址(假定PC+1) 我认为这个作业问题每行开头的数字不是行号,而是程序计数器值(即flash中单词的地址,每个单词有两个字节)
哪个内存位置的地址将存储在第140行的jmp指令和第822行的rjmp指令中?rjmp将存储822-140=682或823-140=683的地址(假定PC+1) 我认为这个作业问题每行开头的数字不是行号,而是程序计数器值(即flash中单词的地址,每个单词有两个字节)
jmp
指令存储绝对地址,因此jmp Forward
指令将只存储数字822
rjmp
指令存储一个数字k
,并使程序计数器(PC)变为PC+k+1
。所以我们必须解k,知道PC最初是822,它必须改为140。所以我们知道140=822+k+1,因此k=140-822-1=-683