第四章 实验内容
实验一 数码转换程序
一.单字节十六进制到BCD码的转换
1.实验目的:
熟悉8051汇编语言的编制、调试。 2.编制说明:
将十六进制数除以一百得百位BCD码,余数除以十得十位BCD码,再得余数为个位BCD码。
3.操作说明:
将原文件在编辑器中进行编辑,编辑后回到主介面,建立工程文件,将原文件插入工程文件中,编译连接生成可执行文件。若编译连接成功,打开寄存器窗口,在R2中输入八位无符号十六进制数,单步或设断点运行程序,并检查运行结果。(运行结果在R6、R5中存放)
4.程序清单: NAME BCD1 CSEG AT 0000H
LJMP BCD1
CSEG AT 4100H
BCD1: MOV A,R2 MOV B,#64H DIV AB MOV R6,A MOV A,#0AH XCH A,B
DIV AB
SWAP A
ADD A,B
MOV R5,A NOP
END
5.实验步骤
①编辑源程序、建立工程文件、编译连接生成可执行程序 ②在R2中输入八位无符号十六进制整数
③单步执行程序,记录每条指令执行后有关寄存器和PSW中内容
④给R2中输入五组不同参数,改用设断点连续执行程序,自行设计表格记录程序执行后A、B、PSW、R5和R6中内容
二.双字节十六进制到BCD码的转换
1.编制说明: 因为:(a15 a14 ...a1 a0)2=(...(0*2+ a15)*2 +a14...)+ a0
所以,将十六进制数从最高位逐次左移入BCD码寄存器的最低位,并且每次都实现(...)*2+ai的运算,共循环十六次,由R7控制。
2.操作说明:
17
操作说明同上。
入口:R3、R2(为十六位无符号十六进制整数)。
出口:R6(万位)、R5(千位、百位)、R4(十位、个位)存放五位BCD码。 3.程序清单 NAME BCD2 CSEG AT 0000H
LJMP BCD2 CSEG AT 4100H BCD2: CLR A MOV R4,A
MOV R5,A MOV R6,A MOV R7,#10H LPO : CLR C MOV A, R2 RLC A MOV R2,A MOV A,R3 RLC A MOV R3,A MOV A,R4 ADDC A,R4 DA A
MOV R4,A MOV A,R5 ADDC A,R5 DA A
MOV R5,A MOV A,R6 ADDC A,R6 DA A
MOV R6,A DJNZ R7,LPO NOP
END 4.实验步骤
①编辑源程序、建立工程文件、编译连接生成可执行程序 ②在R3、R2中输入双字节无符号十六进制整数
③单步执行程序,每次在DA A指令前,检查和记录A内容和PSW中标志位(主要为Cy和AC标志)的状态;在DA A指令后仍检查和记录A内容和标志位的状态。从而深入了解DA A指令是根据什么调整和如何调整的,这样单步执行循环七次,然后连续执行。
④给R3、R2中输入五组不同参数,改用设断点连续执行程序,自行设计表格记录程序执行后R6、R5和R4中内容
5.思考题
18
DA A指令只对什么寄存器起作用?DA A指令安排在程序何处,才能得到正确结果? 三.双字节BCD码到十六进制的转换
1.编制说明: 因为:(d3 d2 d1 d0)BCD=(d3*10+ d2)*100 +(d1*10+d0) 所以,di+1*10+ di的运算可由子程序BCD2B完成。 2.操作说明: 操作说明同一。
入口:将BCD装入R5(千位、百位)、R4(十位、个位)。 出口:R5、R4(为四位无符号十六进制整数)。 3.程序清单 NAME BCD3 CSEG AT 0000H
LJMP BCD3 CSEG AT 4100H
BCD3: MOV A,R5 MOV R2,A
ACALL BCD2B MOV B,#64H MUL AB MOV R6,A XCH A,B
MOV R5,A MOV A,R4 MOV R2,A ACALL BCD2B ADD A,R6 MOV R4,A MOV A,R5 ADDC A,#00H MOV R5,A NOP RET
BCD2B: MOV A,R2
ANL A,#0F0H SWAP A
MOV B,#0AH MUL AB MOV R3,A MOV A,R2 ANL A,#0FH ADD A,R3 MOV R2,A RET END
19
4.实验步骤
①编辑源程序、建立工程文件、编译连接生成可执行程序 ②在R5、R4中输入BCD码
③断点设在第一个ACALL BCD2B,检查和记录在ACALL BCD2B指令执行前后,堆栈指针SP、堆栈中内容及程序计数器PC中内容。
④断点设在第二个ACALL BCD2B,检查和记录在ACALL BCD2B指令执行前后,堆栈指针SP、堆栈中内容及程序计数器PC中内容。
⑤给R5、R4中输入五组不同参数,改用设断点连续执行程序,自行设计表格记录程序执行后R5和R4中内容
5.思考题
SP表示什么,有几位,作用是什么?本实验系统复位后SP中内容是什么?
20
相关推荐: