LOW() HIGH() 使用变量而不是值
LOW() HIGH() to use variable instead of value
我知道这是我们使用 LOW() 和 HIGH() 运算符的方式:
MOV P3,#LOW(-10)
但是,如果 -10
是变量或端口之一的输入怎么办?这就是我需要的:
MOV P3,#LOW(P0)
这是行不通的。 Edsim51
模拟器说需要一个标签。但我不认为我怎么能在这里使用标签,也许它意味着一个函数标签,我试过了,但据我所知,我们不能 return 来自函数的值,所以我仍然不知道在这里不知道如何使用函数标签。
MOV P3,#LOW(func)
func:
RET P0
这是不正确的。
这是我在互联网上唯一能找到的,只是对这个问题的讨论:https://community.arm.com/developer/tools-software/tools/f/keil-forum/22073/how-to-use-low-or-high-in-a51
在官方文档中,我什至在任何地方都找不到 LOW() 和 HIGH() 运算符,这对我来说很奇怪:https://www.keil.com/support/man/docs/is51/is51_instructions.htm
- 你不知道。
- 没道理,只有一个字节宽的东西怎么取低字节或高字节开始?
- 您没有在官方说明文档中找到它们,因为它们不是说明。 CPU 永远不会看到它们。它们只是汇编程序的快捷方式。
MOV P3, #LOW(-10)
只是另一种写 MOV P3, #246
的方式,它使程序员的意图更加清晰。
我知道这是我们使用 LOW() 和 HIGH() 运算符的方式:
MOV P3,#LOW(-10)
但是,如果 -10
是变量或端口之一的输入怎么办?这就是我需要的:
MOV P3,#LOW(P0)
这是行不通的。 Edsim51
模拟器说需要一个标签。但我不认为我怎么能在这里使用标签,也许它意味着一个函数标签,我试过了,但据我所知,我们不能 return 来自函数的值,所以我仍然不知道在这里不知道如何使用函数标签。
MOV P3,#LOW(func)
func:
RET P0
这是不正确的。
这是我在互联网上唯一能找到的,只是对这个问题的讨论:https://community.arm.com/developer/tools-software/tools/f/keil-forum/22073/how-to-use-low-or-high-in-a51
在官方文档中,我什至在任何地方都找不到 LOW() 和 HIGH() 运算符,这对我来说很奇怪:https://www.keil.com/support/man/docs/is51/is51_instructions.htm
- 你不知道。
- 没道理,只有一个字节宽的东西怎么取低字节或高字节开始?
- 您没有在官方说明文档中找到它们,因为它们不是说明。 CPU 永远不会看到它们。它们只是汇编程序的快捷方式。
MOV P3, #LOW(-10)
只是另一种写MOV P3, #246
的方式,它使程序员的意图更加清晰。