在内RAM的20H单元存有1字节的代码,要将其拆分成两个4位二进制数,高4位存入原单元的低4位,其低4位存入21H单元的低4位,且要这两单元的高4位均为0。
参考汇编代码:
ORG 0000H
LJMP START
ORG 1000H
START: MOV R0,#20H ;设置地址指针
MOV A,@R0 ;取数
MOV B,A ;暂存
ANL A,#0F0H ;截取高4位
SWAP A ;高低4位交换
MOV @R0,A ;送结果至20H单元
ANL B,#0FH ;截取低4位
MOV A,B ;送入A
INC R0 ;修改地址指针
MOV @R0,A ;送结果至21H单元
END
参考C51代码:
#include<stdio.h>
int main()
{
unsigned char x,y; /*定义两个变量*/
unsigned char *p; /*定义一个指针变量*/
p="0x20"; /*指针初识化*/
y="x"=*p;
x="x"&0xf0; /*取x变量的高4位*/
x="x">>4; /*变量x向右移4位,将高4位变成低4位*/
y="y"&0xf0; /*取y变量的低4位*/
*p=x; /*将x变量的值送20H*/
p++; /*指针加一*/
*p=y; /*将y变量的值送21H*/
}
文章评论(0条评论)
登录后参与讨论