找回密码
 立即注册
查看: 282|回复: 0

STC32G手册中指令表示符号 dir16、dis的区别问题。

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-03-21 11:14:28

13

主题

21

回帖

211

积分

中级会员

积分
211
发表于 2024-6-30 09:45:59 | 显示全部楼层 |阅读模式
本帖最后由 fxg2024 于 2024-6-30 10:07 编辑

STC32G手册中指令表示符号 dir16、dis的区别问题?
手册中dir16: 16位内存地址(0x000000~0x00FFFF);dis:一般在变址寻址方式中作为0到64KB偏移值的间接内存位置(0x000000~0xFFFFFF)
如:
MOV WRj,Dir16            机器码为: 0  1  1  1  1  1  1  0  [t  t  t  t  0  1  1  1]  [地址高字节]  [地址低字节]
MOV WRjd,@WRjs+dis  机器码为:0  1  0  0  1  0  0  1  [t  t  t  t  T  T  T  T]  [偏移高字节]  [偏移低字节]
Dir16 代表一个16位的直接地址
dis 表示一个16位的偏移值,这个值代表一个16位的偏移地址,和前面寄存器的内容相加,得到一个存储地址。


在实际程序指令应用时,具体指令实例如下

MOV WR0,EDATA 200H
MOV WR2,  @WR6+200H

这里发现,作为Dir16 用时,要加EDATA;作为dis时,直接写,不用加其他前缀。

提醒:注意使用时不要超过STC32G的EDATA地址范围




截图202406300948147619.jpg
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 05:28 , Processed in 0.144752 second(s), 48 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表