在片内RAM区中生成十六进制数组Hex:00H、01H、 .. OEH、OFH,数组Hex的首地址为10H。用DB伪指令在程序中定义Hex数组元素ASCII码表,表首地址用符号地址TABLE表示。用①MOVC A,@A+DPTR;②MOVC A,@A+PC指令编写查表程序,实现用查表方式将数组Hex的十六进制数转换为ASCI码并存入 片内RAM数组Asc中,数组Asc 首地址70H。
1条回答 默认 最新
关注基于8051单片机的汇编程序,实现将数组Hex中的十六进制数转换为ASCII码并存储到片内RAM数组Asc中。
ORG 0H MOV DPTR, #10H ; 将数组Hex的首地址10H存入DPTR MOV R0, #0 ; R0用于数组索引 MOV R1, #70H ; 将数组Asc的首地址70H存入R1 LOOP: MOV A, R0 ; 将数组索引存入累加器A ADD A, #TABLE ; 将表首地址TABLE加上数组索引,得到对应元素的ASCII码 MOV @R1, A ; 将ASCII码存入数组Asc中 INC R1 ; 将指针R1指向下一个元素 INC R0 ; 将数组索引加1 CJNE R0, #0FH, LOOP ; 如果数组索引不等于15,则跳转到LOOP继续循环 END TABLE: DB 30H, 31H, 32H, 33H, 34H, 35H, 36H, 37H, 38H, 39H, 41H, 42H, 43H, 44H, 45H, 46H解决 无用评论 打赏 举报