DA A ;十进制调整
MOV @R0,A ;存放结果
INC R0 ;指向下一个字节
INC R1 ;
DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找
RET
31、 MOV R2,#08H ;数据块长度→R2
MOV R0,#30H ;数据块目的地址→R0
MOV DPTR,#2000H ;数据块源地址→DPTR
LOOP:MOVX A,@ DPTR ;传送一个数据
MOV @R0,A
INC DPTR ;指向下一个数据
INC R0 ;
DJNZ R2,LOOP ;数据块长度减1,没传送完,继续传送
RET
32、(1)MOV R0,0FH ;2字节,2周期 4字节4周期(差)
MOV B,R0 ;2字节,2周期
(2)MOV R0,#0FH ;2字节,1周期 4字节3周期(中)
MOV B,@R0 ;2字节,2周期
(3)MOV B,#0FH ;3字节,2周期 3字节2周期(好)
33、(1)功能是将片内RAM中50H~51H单元清0。
(2)7A0A (大家可以看一下书上,对于立即数寻址的话,后面一个字节存放的是立即数) 7850 (第一个字节的后三位是寄存器,前一个条指令是010也就是指的R2,在这里是R0,所以应该是78,后一个字节存放的是立即数) DAFC (这里涉及到偏移量的计算,可以参考书上56页)
34、 INC @R0 ;(7EH)=00H
INC R0 ;(R0)=7FH
INC @R0 ;(7FH)=39H
INC DPTR ;(DPTR)=10FFH
INC DPTR ;(DPTR)=1100H
INC DPTR ;(DPTR)=1101H
35、解:(1000H)=53H (1001H)=54H (1002H)=41H
(1003H)=52H (1004H)=54H (1005H)=12H
(1006H)=34H (1007H)=30H (1008H)=00H
(1009H)=70H
36、MOV R0,#40H ;40H→R0
MOV A,@R0 ;98H→A
INC R0 ;41H→R0
ADD A,@R0 ;98H+(41H)=47H→A
INC R0
MOV @R0,A ;结果存入42H单元
CLR A ;清A
ADDC A,#0 ;进位位存入A
INC R0
MOV @R0,A ;进位位存入43H
功能:将40H,41H单元中的内容相加结果放在42H单元,进位放在43H单元,(R0)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H
37、 MOV A,61H ;F2H→A
MOV B,#02H ;02H→B
MUL AB ;F2H×O2H=E4H→A
ADD A,62H ;积的低8位加上CCH→A
MOV 63H,A ;结果送62H
CLR A ;清A
ADDC A,B ;积的高8位加进位位→A
MOV 64H,A ;结果送64H
功能:将61H单元的内容乘2,低8位再加上62H单元的内容放入63H,将结果的高8位放在64H单元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=B0H,(64H)=02H
39、MOV A,XXH
ORL A,#80H
MOV XXH,A
40、(2)MOV A,XXH
MOV R0,A
XRL A,R0
第五章
1、什么是中断和中断系统?其主要功能是什么?
答:当CPU正在处理某件事情的时候,外部发生的某一件事件请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件,中断服务处理完该事件以后,再回到原来被终止的地方,继续原来的工作。这种过程称为中断,实现这种功能的部件称为中断系统。功能:
(1)?? 使计算机具有实时处理能力,能对外界异步发生的事件作出及时的处理
(2)?? 完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率
(3)?? 实现实时控制
2、试编写一段对中断系统初始化的程序,使之允许INT0,INT1,TO,串行口中断,且使T0中断为高优先级中断。
解:MOV IE,#097H
MOV IP,#02H
3、在单片机中,中断能实现哪些功能?
答:有三种功能:分时操作,实时处理,故障处理
4、89C51共有哪些中断源?对其中端请求如何进行控制?