《试验三++二进制到ascii码转换》由会员分享,可在线阅读,更多相关《试验三++二进制到ascii码转换(10页珍藏版)》请在金锄头文库上搜索。
1、实验三 二进制到ASCII码转换,二进制到ASCII码转换一、实验目的1、掌握如何将二进制数转换成ASCII码;2、掌握如何查表进行数值转换;二、实验内容1、启动计算机,启动伟福仿真软件。2、编辑、编译如下程序:,TEST EQU 0AH ORG 0 LJMP STARTASCIITAB: DB 0123456789ABCDEF ;定义数字对应的ASCII表START: MOV DPTR,#ASCIITAB MOV A,#TEST MOVC A,A+DPTR ;查ASCII表 LJMP $ END,TEST EQU 0AH ORG 0 LJMP STARTASCIITAB: DB 012345
2、6789ABCDEF ;定义数字对应的ASCII表START: MOV DPTR,#ASCIITAB MOV A,#TEST MOVC A,A+DPTR ;查ASCII表 lJMP $ END完成以下任务:参照 “指令和代码的对照表”和ASCII码表,分析数据窗口CODE内0000H001AH区域的代码;单步执行程序,观察DPH、DPL、ACC的变化;把语句TEST EQU 0AH里的0AH依次改为00H,01H,0FH,每次改动后编译程序,重复步骤;3、赋值给Acc类似1BH或0AEH的数据,编程、利用查表功能将高低半字节分别转换为ASCII码,存放在地址为30H、31H的RAM数据区。存储
3、块内数据已传送。,RESULT EQU 30H ORG 0 LJMP STARTASCIITAB: DB 0123456789ABCDEF BINTOHEX: MOV DPTR,#ASCIITAB MOV B,A SWAP A ANL A,#0FH MOVC A,A+DPTR MOV RESULT,A,假设赋值给A为类似1BH、0AEH的数据,编程,利用查表功能将高低半字节分别转换为ASCII码,存放在地址为30H、31H的RAM数据区。修改程序中给累加器A的值,重复实验,观察实验结果。,MOV A,B ANL A,#0FH MOVC A,A+DPTR MOV RESULT+1,A RETST
4、ART: MOV SP,#40H MOV A,#1AH LCALL BINTOHEX LJMP $ END,RESULT EQU 03H ORG 0 LJMP STARTASCIITAB: DB 0123456789ABCDEF BINTOHEX: MOV DPTR,#ASCIITAB MOV B,A SWAP A ANL A,#0FH MOVC A,A+DPTR MOV RESULT,A MOV A,B ANL A,#0FH MOVC A,A+DPTR MOV RESULT+1,A RETSTART: MOV SP,#40H MOV A,#1AH LCALL BINTOHEX LJMP $
5、END,RESULT EQU 03H ORG 0 LJMP STARTASCIITAB(通过实验找出该表的位置) DB 0123456789ABCDEF BINTOHEX: MOV DPTR,#ASCIITAB MOV B,A SWAP A ANL A,#0FH MOVC A,A+DPTR MOV RESULT,A,思考题:找出CODE窗口的代码,解释其各个代码的含义。(做在实验报告上),MOV A,B ANL A,#0FH MOVC A,A+DPTR MOV RESULT+1,A RETSTART: (通过实验找出该处的位置) MOV SP,#40H MOV A,#1AH LCALL BIN
6、TOHEX LJMP $ END,假设赋值给A为类似1BH、0AEH的数据,编程,利用查表功能将高低半字节分别转换为ASCII码,存放在地址为30H、31H的RAM数据区。修改程序中给累加器A的值,重复实验,观察实验结果。,RESULT EQU 03H ORG 0 LJMP STARTASCIITAB: DB 0123456789ABCDEF BINTOHEX: MOV DPTR,#ASCIITAB MOV B,A SWAP A ANL A,#0FH MOVC A,A+DPTR,MOV RESULT,AMOV A,B ANL A,#0FH MOVC A,A+DPTR MOV RESULT+1,
7、A RETSTART: MOV SP,#40H MOV A,#1AH LCALL BINTOHEX LJMP $ END,设在片外RAM的60H单元存有1个字节代码,要求将其分解成两个4位字段,高4位存入原单元的低4位,其低4位存入61H单元的低4位,且要求这两个单元的高4位均为0,试编制完整程序。,ORG 1000H MODE:MOV R0,#60H MOVX A,R0 MOV B,A ANL A,#0F0H SWAP A MOVX R0,A ANL B,#0FH MOV A,B INC R0 MOVX R0,A SJMP $ END,思考题,设在片外RAM的60H单元存有1个字节代码,要求将其分解成两个4位字段,高4位存入片内RAM的30H单元低4位,其低4位存入片内RAM的31H单元的低4位,且要求这两个单元的高4位均为0,试编制完整程序。,