结构推理 设在外RAM 2000H中存放有一个两位BCD码数,试编一程序将这两位BCD码分别存到2001H和2000H的低4位。
【正确答案】程序如下:
   MOV   DPTR,#2000H;置BCD码外RAM地址
   MOVX  A,@DPTR    ;读外RAM 2000H单元中的BCD码
   MOV   B,A        ;暂存
   ANL   A,#0FH     ;屏蔽高4位,保留低4位
   MOVX  @DPTR,A    ;回存外RAM 2000H单元
   INC   DPTR       ;指向外RAM 200IH单元
   MOV   A,B        ;读原BCD码
   ANL   A,#0F0H    ;屏蔽低4位,保留高4位
   SWAP  A          ;高4位→低4位
   MOVX  @DPTR,A    ;回存外RAM 200IH单元
【答案解析】上述程序中,#0F0H=#F0H。之所以在F0H前加0,是为了键入电脑时便于仿真软件识别。仿真软件要求:凡用英文字母开头的地址或数据,在英文字母前要加0,这并非是80C51指令系统本身需要。在后续文字中,有0无0具有同等效果。