用uvision4编写代码数字22H存放在内存(30H)单元中 ,该数最高位为D7,最低位为D0,判断D2位是0还是1,通过程序判断并进行跳转,如果为1则将内存31H写入立即数0AFH。如果为0则将内存31H写入立即数0A0H
时间: 2024-05-22 17:15:16 浏览: 15
下面是使用汇编语言在uVision4中编写的程序:
ORG 0H ; 程序从地址0H开始
MOV A, #22H ; 将数字22H存放到累加器A中
MOV R0, #30H ; 将内存单元30H的地址存放到寄存器R0中
MOV @R0, A ; 将累加器A中的值存放到内存单元30H中
MOV A, @R0 ; 将内存单元30H中的值读取到累加器A中
ANL A, #4H ; 判断D2位是否为0,如果为0则A的值为0,否则为4H
JZ ZERO ; 如果D2位为0则跳转到ZERO标签
MOV A, #0AFH ; 将立即数0AFH存放到累加器A中
MOV R0, #31H ; 将内存单元31H的地址存放到寄存器R0中
MOV @R0, A ; 将累加器A中的值存放到内存单元31H中
SJMP END ; 跳转到程序结束
ZERO:
MOV A, #0A0H ; 将立即数0A0H存放到累加器A中
MOV R0, #31H ; 将内存单元31H的地址存放到寄存器R0中
MOV @R0, A ; 将累加器A中的值存放到内存单元31H中
END:
NOP ; 空操作,程序结束
在这个程序中,首先将数字22H存放到内存单元30H中,然后读取该内存单元中的值,并使用AND逻辑运算符和掩码4H(二进制值为0100)来判断D2位是否为1。如果为1,则将立即数0AFH存放到内存单元31H中,否则将立即数0A0H存放到内存单元31H中。最后程序结束。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)