Assembly 为什么我不能使用SETB在P1MDOUT中设置一个位?

Assembly 为什么我不能使用SETB在P1MDOUT中设置一个位?,assembly,microcontroller,8051,Assembly,Microcontroller,8051,为什么我不能使用SETB在P1MDOUT中设置位?另外,我将如何用汇编语言显示如何设置P1MDOUT的0位和6位(保持其他6位不变) 为什么我不能使用SETB在P1MDOUT中设置一个位 考虑到: SETB指令用于设置256个直接可访问位之一 特殊功能寄存器(SFR)P1MDOUT位于地址0xA5处 地址以0x0或0x8结尾的SFR可位寻址,也可字节寻址。所有其他SFR仅可进行字节寻址 我们可以得出结论,SFRP1MDOUT只能通过字节寻址,因为它的地址以0x5结尾。因此,我们不能使用SET

为什么我不能使用
SETB
P1MDOUT
中设置位?另外,我将如何用汇编语言显示如何设置P1MDOUT的0位和6位(保持其他6位不变)

为什么我不能使用
SETB
在P1MDOUT中设置一个位

考虑到:

  • SETB
    指令用于设置256个直接可访问位之一
  • 特殊功能寄存器(SFR)P1MDOUT位于地址0xA5处
  • 地址以0x0或0x8结尾的SFR可位寻址,也可字节寻址。所有其他SFR仅可进行字节寻址
我们可以得出结论,SFRP1MDOUT只能通过字节寻址,因为它的地址以0x5结尾。因此,我们不能使用
SETB
指令,该指令是为操作位可寻址寄存器和从20h到2Fh的内部存储器而保留的

另外,我将如何用汇编语言显示如何设置P1MDOUT的0位和6位(保持其他6位不变)


是,UART需要0
ORL 0xA5, #0x41