欢迎在评论区提出宝贵意见!
设计要求:将片内RAM30H单元中的低位和40H单元中的低位拼成一个数据,存放在50H单元中
汇编源码:
;片内拼字程序设计
;设计要求:将片内RAM30H单元中的低位和40H单元中的低位拼成一个数据,存放在50H单元中
ORG 00H
MOV 30H,#56H ;给30H和40H赋值
MOV 40H,#43H
MOV A,30H ;取30H送A
ANL A,#0FH ;屏蔽高位
MOV 50H,A ;低位送50H
MOV A,40H ;取40H送A
ANL A,#0FH ;屏蔽高位
SWAP A ;A高低位互换
ORL A,50H ;A与50H相或
MOV 50H,A ;结果送50H
END
C语言源码:
/*
片内拼字程序设计
设计要求:将片内RAM30H单元中的低位和40H单元中的低位拼成一个数据,存放在50H单元中
*/
#include <reg51.h>
#include <absacc.h>
#define uchar unsigned char
void main(void)
{
uchar a,b;
DBYTE[0X30]=0X56; //给0x30赋值
DBYTE[0X40]=0X43; //给0x40赋值
a=DBYTE[0X30]&0x0F; //取0x30单元低4位
b=DBYTE[0X40]&0x0F; //取0x40单元低4位
b=b<<4; //将0x40单元低4位移位后变成高4位
DBYTE[0x50]=a|b; //拼字
while(1);
}
Proteus8.0 仿真程序运行完成后,30H中的内容为56H,40H中的内容为43H,50H中的内容为36H,如图所示。