比如k=1,即f(1)开始
x=1
z=3,y=0
y++z++//这行结束后y为1,z为4
x+y+z=1+1+4=6
k=2,f(1)第二次调用
x=1
z=4,y=1(上一次调用结束时的值)
y++z++//这行结束后y为2,z为5
x+y+z=1+2+5=8
第三次一样的x+y+z=1+3+6=10
if((c=b)<0) a=4这里,先赋值,条件不成立,走下面的else部分else if(b=0) a=5这里,条件还是不成立,走后面的else
else a=6 a的值是6
printf("\t%d\t%d\n",a,c)输出6250
if(c=(b==0)) a=5printf("\t%d\t%d\n",a,c)这里b不等于0,条件不成立,输出60
if(a=c=b) a=4printf("\t%d\t%d\n",a,c)赋值语句的值,就是a的值,250,成立,a的值是4,输出4 250
Y EQU 30HORG 1000H
CLR A 清零累加器
MOV R0,#01 R0初始化为1
NEXT:
CJNE R0,#11,AD 只要R0未累加到11,则执行AD程序段(计算1~10的总和)
MOV Y,A将累加器内容(1~10的总和)写入30H处
RET
AD:ADD A, R0 R0的内容加进累加器
INC R0 R0加一
SJMP NEXT 跳转回循环
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)