- 打卡等级:偶尔看看I
- 打卡总天数:11
- 最近打卡:2025-03-21 11:14:28
中级会员
- 积分
- 211
|
本帖最后由 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地址范围
|
|