Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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汇编程序修改器lo8的详细信息很难找到_Assembly_Inline Assembly_Avr Gcc - Fatal编程技术网

Assembly avr汇编程序修改器lo8的详细信息很难找到

Assembly avr汇编程序修改器lo8的详细信息很难找到,assembly,inline-assembly,avr-gcc,Assembly,Inline Assembly,Avr Gcc,最近,在查看obdev针对atmel avr的虚拟usb驱动器时,我发现了这个表达式 lo8(-usbrxbuf) 不幸的是,在avr gcc的文档中没有给出太多关于lo8修饰符的信息。这里有人能详细解释一下吗,或者提供一些链接 谷歌搜索“lo8avr”首次成功 lo8此修饰符允许您使用地址的0到7位 表达式作为8位可重定位表达式 [编辑] 就像这里: push YH ;2 [2] lds YL, usbInputBufOffset;2 [4]

最近,在查看obdev针对atmel avr的虚拟usb驱动器时,我发现了这个表达式

lo8(-usbrxbuf)
不幸的是,在avr gcc的文档中没有给出太多关于lo8修饰符的信息。这里有人能详细解释一下吗,或者提供一些链接

谷歌搜索“lo8avr”首次成功

lo8此修饰符允许您使用地址的0到7位 表达式作为8位可重定位表达式

[编辑]

就像这里:

push    YH                  ;2 [2]
lds     YL, usbInputBufOffset;2 [4]
clr     YH                  ;1 [5]
subi    YL, lo8(-(usbRxBuf));1 [6]
sbci    YH, hi8(-(usbRxBuf));1 [7]
看起来好像在这里找到了缓冲区位置地址。 我不知道为什么从偏移量中减去负基址而不是相加,但是


哦,我猜“可重新定位”在这里的意思是“装载时间”。也就是说,该值不必在组装时已知,但必须在运行时已知并保持不变。可能“lo8”和“hi8”创建了一个重定位信息类型加载程序符号(或表达式)-很像段地址。

这是我在文档中找到的。。问题是括号内使用的负号和不同表达式找不到关于不同表达式的真实详细讨论注:“可重定位表达式”=不是任何数字。负可重定位表达式可以是分支向后偏移等。你查过这个例子了吗?是的,我查过了这是一个成熟的项目。。v-usb由obdev公司的christiann starkjohann提供它的工作原理……但它到底是如何管理的。。确切的意思是什么..我想知道在哪里?哪个文件以及该文件中的位置?