完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
昨天我看了一下指针间接长寻址模式。只有当寄存器X用于其他目的时,这似乎才有用:
加载到: ldw x,5000美元 ld a,(x) VS ld a,(($ 5000) 两者的代码大小均为4字节,前者需要3个周期,而后者需要4个周期。 ldw x,5000美元 ldw x,(x) 与 ldw x,(($ 5000)) 两者的代码大小均为4字节,前者需要4个周期,后者需要5个周期。 ldw y,$ 5000 ldw(y),x VS ldw(($ 5000),x 这里前者占用6个字节的代码大小和4个周期,而后者占用4个字节的代码大小和5个周期。 有些完全没有意义: ldw x,5000美元 ldw x,(x) 与 ldw x,(($ 5000)) 两者都需要4个字节的代码大小,但前者需要4个周期,而后者需要5个周期!在这里我们无论如何都要覆盖x。 在我看来,指针间接长寻址模式仅在非常特殊的情况下才有用,我想知道为什么它被包含在内。 我错过了这种寻址方式吗? 菲利普 以上来自于谷歌翻译 以下为原文 Yesterday I had a look at the pointer indirect long addressing mode. It seems this one is useful only when register X is in use for other purposes: Loading into a: ldw x, $5000 ld a, (x) vs ld a, (($5000) Both have a code size of 4 bytes, and the former takes 3 cycles while the latter takes 4 cycles. ldw x, $5000 ldw x, (x) vs. ldw x, (($5000)) Both have a code size of 4 bytes,the former takes 4 cycles, the latter takes 5 cycles. ldw y, $5000 ldw (y), x vs ldw (($5000), x Here the former takes 6 bytes of code size and 4 cycles, while the latter takes 4 bytes of code size and 5 cycles. Some are completly pointless: ldw x, $5000 ldw x, (x) vs. ldw x, (($5000)) Both take 4 bytes of code size, but the former takes 4 cycles, while the latter takes 5! And here we overwrite x anyway. It seems to me that pointer indirect long addressing mode is useful only in very specific circumstances, and I wonder why it was included at all. Am I missing something about this addressing mode? Philipp |
|
相关推荐
1个回答
|
|
我认为这种寻址模式的存在是为了与ST7代码兼容。
它没有相应的ST7寻址模式有用,因为X寄存器是16位宽,而ST7 X寄存器只有8位宽。 这个“小”X寄存器功能有很大的不同! 以上来自于谷歌翻译 以下为原文 I think that this addressing mode exists for compability with ST7 code. It's less useful than the corresponding ST7 addressing mode because X register is 16 bit wide, whereas ST7 X register is only 8 bit wide. This ''small'' X register feature makes a big difference! |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2798 浏览 1 评论
3258 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1832 浏览 1 评论
3682 浏览 6 评论
6079 浏览 21 评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
384浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
473浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
303浏览 2评论
使用STM32F407VET6的USB2.0功能,发现ctl后芯片无数据返回,是什么原因可能导致的呢?
222浏览 2评论
用STM32G431开发工程,1.50版本的Package包文件无法输出项目工程
328浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 07:23 , Processed in 1.215512 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号