求高手帮忙做道简单汇编题

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:42:23
汇编语言实验题目
1.假设单片机外部晶振为12MHz,根据单片机各指令的执行所花费的机器周期
数,完成一个通过循环延时10ms的汇编程序段。
2.单片机内部RAM 30H~37H存放着8个字节的无符号数,编写汇编语言程序
计算这8个数的平均值,并将此平均值存放在内部RAM 40H单元里(8个数
的初值在调试时通过Keil手工设置)

第一道题目:
晶振是12M的话,其实就知道了机器周期是1us,机器周期是晶振1/12的倒数。
以下就是延时10MS的程序:
DLY_10:
MOV R6,#20
LP0:MOV R5,#250
DJNZ R5,$
DJNZ R6,LP0
RET
10MS的延时是这么来的;t=2×20×250×T,T为机器周期。

第二道题:
这道题有点难度,不过很有意思的,我把我设计的程序给你,供你参考。
;******************************
;内容:8个无符号数的平均值计算
;设计人:添牙帅哥
;*****************************
AVE:
MOV R0,#30H
MOV R7,#8
BK0:
MOV A,@R0
MOV B,#8
DIV AB
MOV @R0,A
INC R0
DJNZ R7,BK0
MOV R7,#7
MOV R0,#30H
BK1:
MOV A,@R0
INC R0
ADD A,@R0
INC R0
DJNZ R7,BK1
MOV 40H,A
RET

回答完毕。~!!!!