单片微w型计算机c第8-9讲(机械).pptVIP

  • 10
  • 0
  • 约1.19万字
  • 约 62页
  • 2016-11-29 发布于湖南
  • 举报
单片微w型计算机c第8-9讲(机械)

顺序结构举例2 码制转换:片内RAM的21H单元存放一个十进制数据十位的ASCII码,22H单元存放该数据个位的ASCII码。编写程序将该数据转换成压缩BCD码存放在20H单元。 20H 36H 34H 21H 22H 数字字符的ASCII码为30H+数 如字符3的ASCII码为33H。 右侧表示存放的为数据64。 64H 程序 ASCII到压缩BCD码的转换 分析 取21H单元低位数据,移至高位 取22H单元内容,去掉高位 上述结果组合,传送至20H单元 20H 36H 34H 21H 22H 64H 程序 ASCII到压缩BCD码的转换程序 ORG 0040H START: MOV A,21H ;取十位ASCII码 ANL A,#0FH ;保留低半字节 SWAP A ;移至高半字节 MOV 20H,A ;存入20H单元 MOV A,22H ;取个位ASCII码 ANL A,#0FH ;保留低半字节 ORL 20H,A ;合并到结果单元 SJMP $ END 20H 36H 34H 21H 22H ACC 36H 06H 60H 60H 34H 04H 64H 20H X 21H 程序 平方表区 顺序结构举例3 查表程序:有一变量存放在片内RAM的20H单元,其取值范围为:00H~05H。要求编制一段程序,使用查表指令,根据变量值求其平方值,并存入片内RAM的21H单元。 X2 开始 A →(21H) (20H)→A 表格首地址→DPTR MOVC A,@A+DPTR 结束 查表操作程序 ORG 1000H START:MOV DPTR,#TABLE MOV A,20H MOVC A,@A+DPTR MOV 21H,A SJMP $ ORG 2000H TABLE:DB 00,01,04,09,16,25 END 开始 A →(21H) (20H)→A 表格首地址→DPTR MOVC A,@A+DPTR 结束 练习 根据累加器A的值(0 – 7FH)查平方表,求平方值,结果放在BA中。 TABLE:DW 0000H,0001H,0004H,0009H DW 0010H,0019H,…… MOV DPTR,#TABLE MOVC A,@A+DPTR MOV B,A INC A MOVC A,@A+DPTR …… …… TABLE 00H 00H 00H 01H TABLE+1 00H ROM 04H TABLE+2 TABLE+3 TABLE+4 TABLE+5 RL A PUSH ACC POP ACC MOV DPTR,#TABLE RL A PUSH ACC MOVC A,@A+DPTR MOV B,A POP ACC INC A MOVC A,@A+DPTR 5.3.2 分支结构 指令执行时,根据不同的情况执行不同的程序段。 单分支 双分支 多分支 单分支结构 设累加器A中存储有符号数的原码,编程转换成补码 开始 保存A最高位 结束 最高位为0 N A数据位取反+1 恢复符号位 Y CMPT:JNB Acc.7, RETURN MOV C,Acc.7 CPL A ADD A,#1 MOV Acc.7,C RETURN:SJMP $ END 双分支结构 设变量x以补码的形式存放在片内RAM的30H单元,变量y与x的关系是: 当x0时,y=x; 当x=0时,y=20H; 当x0时,y=x+5。 编制程序,根据x的大小求y并送回30H单元。 判断结果为0,可通过执行JZ rel来实现 判断补码的正负,可通过最高位来判断 先与,保留最高位,再判断结果是否为零来实现 双分支结构 设变量x以补码的形式存放在片内RAM的30H单元,变量y与x的关系是:

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档