下面程序段运行的结果为()。#includeint f();int f(){static int i=0;int s=1;s+=i;i++; return s;}void main(){int i,a=0;for(i=0;i<5;i++) a+=f(); printf("%d/n",a);}
A.25
B.15
C.20
D.24
A.25
B.15
C.20
D.24
第1题
ORG 0100H
MOV R7, ①
MOV R0,#50H
MOV ② ,#7FFAH
NEXT:MOVX @DPTR, ③
JB ④ ,$
MOVX A, ⑤
MOV ⑥ ,A
INC ⑦
DJNZ RT ⑧
SJMP $
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。
第2题
ORG 0000H
AJMP MAIN
ORG 0013H ;该地址是①地址
AJMP INT1
MAIN:MOV R0,#78H ;78是②地址
MOV R2,#08H ;
SETB IT1 ;该指令的作用是③
SETB EA
SETB EX1 ;允许INT1中断
MOV DPTR,#6000H;#6000H是④地址
MOV A,#00H ;A的内容对转换结果⑤影响
LOOP:MOVX @DPTR,A ;该指令的作用是⑥
HERE:SJMP HERE
DJNZ R2,LOOP
INT1:MOVX A,@DPTR ;当⑦时,程序将运行到此处。
MOV @R0,A
INC DPTR ;DPTR加1的目的是⑧
INC R0
RET1
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______;
第3题
A.INC AL
B.ADD AL ,1 DAA DAS
C.AD D AL ,1
D.STC DAA AAA
第4题
下面程序段是将片外RAM20H~25H单元清零。
MOV R0,#20H
MOV R7,#06H
CLR A
LOOP: MOV @R0,A
INC R0
DJNZ,#3000H
错误:______
改正:______
参考答案:错误
第5题
下面程序是查找在内部RAM的30H~50H单元中出现______的次数,并将查找的结果存入______单元。
MOV 51H,#00H
MOV R1,#30H
MOV R7,#21H
LOOP: CJNE @R1,#0FFH,NEXT
INC 51H
NEXT: INC R1
DJNZ R7,LOOP
SJMP $
第6题
下面程序是在______中存放一个压缩的BCD码,将它拆成二个BCD字节,结果存于______开始的单元中(低位在前)
MOV R0,#SUM
MOV A,R2
ANL A,#0FH
MOV @R0,A
MOV A,R2
ANL A,#0F0H
SWAP A
INC R0
MOV @R0,A
RET
第8题
下列程序段执行后,(7EH)=______,(7FH)=______。
MOV R0,#7EH
MOV 7EH,#0FFH
MOV 7FH,#40H
INC @R0
INC R0
INC @R0
第9题
MOV R7,#10H
MOV R1,#30H
L00P:CJNE @R1,#00H,NEXT
MOV @R1,#00H
SJMP NEXT1
NEXT:DEC @R1
NEXT1:INC R1
DJNZ R7,LOOP
SJMP $
END
第10题
下列程序段把片外RAM从8100H开始的10个存储单元的内容移到片内RAM 40H开始的单元。
PUSH A
MOV R7,10
MOV R0,#40H
MOV DPTR,#8100H
LOOP:MOV A,@DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ R7,LOOP
POP ACC
错误:______
改正:______
参考答案:错误
第11题