几道简单的单片机汇编语言题

来源:百度知道 编辑:UC知道 时间:2024/06/17 02:09:52
1,编写程序,把外部RAM的1000H~10FFH区域内的数据逐个搬到从2000H开始的区域
2.利用查表技术将累加器A中的一位BCD码转换为相应的十进制的7段码,结果依然放在A中(设显示0~9段码为40H,79H,24H,30H,19H,12H,02H,78H,00H)
3.用循环转移指令编写延时20MS子程序(晶振为12MHz)
4.计算∑2i(i=1,i<=10),并将结果存放在内部RAM的30单元(低8位),31H(高8位)单元(i<256)
请高手帮忙,能做几道就做几道,回答好的追加分

第一题搬运数据就用 MOVX 就i行了

;显示子程序,入口: 使用R6,R7
DIS: MOV DPTR,#TABLE
SETB P2.0 //打开位码
MOV A,8 //BCD码放在这里
MOVC A,@A+DPTR //查表
MOV P0,A //P0段码显示
LCALL DELAY

;数码管显示表
TABLE:40H,79H,24H,30H,19H,12H,02H,78H,00H //你的数少了

;延时20ms
DELAY:MOV R6,#40
D1: MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET

最后一道题口算最简单了哈哈,就是把0b10一直左移i位然后和30H的数相加就行了,大于8位的移到随便一个寄存器里面去然后和31H的相加,30H的进位跟31H的相加。不过这道题没有进位。答案是:00000111 11111110

太简单了 不想回答

随便找几本书上面都有
建议你多看看书 OK!1

mov ax,bx
这些题在清华版的汇编语言习题里有答案