wxdjs 发表于 2025-1-15 22:50:09

AI8H的双DPTR搞死人

<p><img src="data/attachment/forum/202501/15/224830m9lzwkbvb7d096jj.png" alt="image.png" title="image.png" /></p>
<p>今天用汇编尝试了双dptr,但是都是一头晕,问题都在图片上数据了,不知道是不是没懂它的精华<img alt="shuai" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/shuai.gif" title="shuai" /></p>

神农鼎 发表于 2025-1-16 11:50:05



8H系列双DPTR双数据指针,KEIL C51没原生支持,需要使用汇编来改写对应的函数 - C语言,汇编语言,Proteus MCU软件仿真 国芯技术交流网站 - AI32位8051交流社区

wxdjs 发表于 2025-1-16 12:50:19

神农鼎 发表于 2025-1-16 11:50
8H系列双DPTR双数据指针,KEIL C51没原生支持,需要使用汇编来改写对应的函数 - C语言,汇编语言,Proteu ...

这比较尬尴啊,
第一个红框开始一部分使用dptr0,dptr0,dptr1自动inc,正常
第二个红框同样使用dptr0,设置dptr0,dptr1自动inc,就不正常了
都是全速硬件usb仿真,

神农鼎 发表于 2025-1-16 12:52:04

wxdjs 发表于 2025-1-16 12:50
这比较尬尴啊,
第一个红框开始一部分使用dptr0,dptr0,dptr1自动inc,正常
第二个红框同样使用dptr0, ...

建议改用管教兼容的 STC32G12K128;或不用 8H8K64U的第二个数据指针

wxdjs 发表于 2025-1-16 13:59:21

神农鼎 发表于 2025-1-16 12:52
建议改用管教兼容的 STC32G12K128;或不用 8H8K64U的第二个数据指针

这个stc8h的双dptr,目前bug,现在已经知道怎么避免仿真时出现bug了,还不是全速的问题,还涉及到单步停在哪儿的问题,不去管它了,烧录进去应该正常
我想问如果我在其他地方不使用双dptr,使用完双dptr场景的子程序退出前都复位默认dps设置值的话,是否可以不需要在中断中push pop dps,dpl1,dph1了?

LAOXU 发表于 2025-1-16 14:59:58

wxdjs 发表于 2025-1-16 13:59
这个stc8h的双dptr,目前bug,现在已经知道怎么避免仿真时出现bug了,还不是全速的问题,还涉及到单步停 ...

是的.

推荐比较保险的用法是, 进入(使用)双 DPTR 前, 先关 EA, 使用完后再 开 EA

Ayb_ice 发表于 2025-2-14 11:07:24

直接不用那玩意,搞不好程序挂了
页: [1]
查看完整版本: AI8H的双DPTR搞死人