实验课题 | 汇编程序实验 | |
实 验 目 的 | 掌握汇编程序调试。 分析程序功能。 | |
实
验
过
程
| ORG 0000H //一条汇编伪指令,程序从这里开始。 AJMP MAIN//程序跳转到主程序 ORG 0030H//从这里开始直到下一个ORG指令前的程序语句都顺序放在它指定的地址里 MAIN://主程序入口 MOV SP,#60H//设置堆栈的长度为60H byte MOV A,#0H//将0H立即数送入累加器A MOV R1,#30H//将30H立即数送入寄存器R1 MOV R7,#30H //将30H立即数送入寄存器R7 LOOP1: //循环控制指令 MOV @R1,A //将A里的内容传给寄存器R1 作为R1的地址 INC R1 //将R1内容自加1 DJNZ R7,LOOP1 //R7减1不为0时转到LOOP1标号处继续循环 NOP //空操作指令,占用一个机器周期 MOV R1,#30H //将30H立即数传给R1寄存器 MOV R7,#10H //将10H立即数传给R7寄存器 LOOP: //循环控制指令 MOV @R1,A //将累加器A里的内容传给R1作为R1的地址 INC R1 //将R1的内容自加1 INC A //将A的内容自加1 DJNZ R7,LOOP //R7减1不为0时转到LOOP处继续循环 SJMP $ //自循环,等待中断程序 END //结束 | |
实
验
结
果
|
通过对原程序进行调试,可以看到,通过MOV指令,将r1和R7进行赋值操作,在第1个循环loop1中寄存器r1和r7在不断的变化,其中寄存器r1多次自加1,r7多次自减1, 当寄存器R7自减1逐渐减到零时结束循环,当跳转到第2个loop循环中,累加器a进行自加1,同时可以看到d:30H地址段中的数据在不断变化,最终运行到SJMP $,这时不断的进行,自循环等待中断程序,如果中断程序运行完了,然后返回来继续运行,等待另一个中断程序。 | |
实 验 分 析 | 源程序通过两个循环,将累加器和寄存器中的值进行互相传递,同时在d30H的地址段中进行显示加1的过程,通过这次实验调试汇编程序,观察运行的情况,对汇编指令有了更深刻的理解,对程序的执行次序顺序,有了清晰的认识。 | |
实 验 评 定 |
| |
备 注
|
|
通过实验理解汇编
最新推荐文章于 2021-11-14 22:52:31 发布