AI32G8K64 MOV RM, DIR16 ;16位直接寻址报错??
本帖最后由 DebugLab 于 2024-11-6 11:30 编辑如:MOV R11, 01234H ;
warning A52: VALUE HAS BEEN TRUNCATED TO 8 BITS
不知为啥keil u5,有关DIR16的指令都是不能成功编译,都是截断为8位地址指令了,所以EDATA都不能直接寻址.各位有何解决方法没有? 要用段引用的方式来用
如:
#include <REG251G1.H>
VAR1 SEGMENT EDATA
rseg VAR1
myval: ds 1
cseg at 0200h
Test:
mov r11,myval
ret
END 这可能是汇编器的问题,那样使用语法上是没有问题的 就是用汇编一般也很少直接用地址定义变量,都是按段的方式定义变量,类似于C语言 终于找到答案了,说是要直接地址前加EDATA.
如:MOVR11, EDATA 01234H
测试这条指令是没有出错了。
页:
[1]