Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly AVR汇编:jmp和rjmp指令中的地址是什么?_Assembly_Binary_Hex_Avr - Fatal编程技术网

Assembly AVR汇编:jmp和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前进

142加上

143加

。总共有80条添加指令是这样进行的

222LDS

224激光二极管

226激光二极管

。总共有300个lds指令是这样进行的

822前进:rjmp后退


哪个内存位置的地址将存储在第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