请教个问题:为什么单片机汇编语言没有WORD1这种操作
问题描述:在向双字寄存器赋值时,汇编语言要先后取立即数的高低16位分2次才能完成给双字寄存器赋值。
在操作时,分别用到了WORD2和WORD0。很明显,0和2之间少了个1,那么WORD1是什么?
查了手册,只标注了WORD0和WORD2,还是搞不清楚WORD1是什么以及搞哪里去了。
你这张图的出处是哪里? WORD2可以知道,是由BYTE2起始的WORD,那么自然
WORD1也就是BYTE1起始的WORD,也就是BYTE2-BYTE1
但不知道你想问什么 VCC 发表于 2024-11-9 22:25
WORD2可以知道,是由BYTE2起始的WORD,那么自然
WORD1也就是BYTE1起始的WORD,也就是BYTE2-BYTE1
原来是这么拆分的,感谢 :-)
这与WR0,WR2,DR0,DR4一样的,有什么纠结的 本帖最后由 BeHappy 于 2024-11-12 19:16 编辑
bkeuqoaq 发表于 2024-11-12 13:54
这与WR0,WR2,DR0,DR4一样的,有什么纠结的
不知道可以不回答。 应该是类似DR4这种双字寄存器命名方式,寄存器以其编号最低的字节位置命名。
例如:
1、R4是由位置4组成的字节寄存器。
2、WR4是由寄存器4和寄存器5组成的字寄存器。
3、DR4是双字寄存器,由寄存器4、5、6和7组成。
总结:也就是说word0包含byte0、byte1;word2包含byte2和byte3。0、1、2、3是连续的,再有下一个就是word4包含byte4和byte5,所以你所说的word1不存在(存在就破坏连续性了)自然是搞不到的。
双字寄存器命名方式的具体可以搜一下TSC80251的手册,翻到3.4.1. Byte, Word and Dword Registers这里(大概在页数21这里)。
VCC 发表于 2024-11-9 22:24
你这张图的出处是哪里?
应该是keil帮助文档的汇编器说明那里的。在ide主界面的help选择第二个open books window,左边弹出后双击uVision User's Guide Selection,之后就选择:
A251 User's Guide——Writing Assembly Programs——Expressions and Operators——Operators——WORDx。
然后你就能看到关于WORD0和WORD2的说明还有图表了。 jiegebushijiege 发表于 2025-2-9 01:32
应该是类似DR4这种双字寄存器命名方式,寄存器以其编号最低的字节位置命名。
例如:
1、R4是由位置4组成的 ...
您说的很对,要是早1年遇到就好了
页:
[1]