60 likes | 259 Views
习题参考答案 ( P.79 ). 习题 3 . 8051 主要的存储空间是什么?为什么两个 RAM 的空间不同?. 答 : 8051 单片机的存储空间分为数据 RAM 和代码 ROM ,其中数据 RAM 又分为片内 RAM 和片外 RAM 。. 片内 RAM 的地址为 8 位,由单片机指令直接在单片机内部寻址访问,而片外 RAM 的地址为 16 位,只能由单片机的 MOVX 指令通过外部总线访问。.
E N D
习题参考答案(P.79) 习题3. 8051主要的存储空间是什么?为什么两个RAM的空间不同? 答:8051单片机的存储空间分为数据RAM和代码ROM,其中数据RAM又分为片内RAM和片外RAM。 片内RAM的地址为8位,由单片机指令直接在单片机内部寻址访问,而片外RAM的地址为16位,只能由单片机的MOVX指令通过外部总线访问。
习题4.编一段程序,把8位口新的输入值和前一次的输入值进行比较,然后产生一个8位数。这个数中的位为“1”的条件是:仅当新输入的位为“0”,而前一次输入的位为“1”。习题4.编一段程序,把8位口新的输入值和前一次的输入值进行比较,然后产生一个8位数。这个数中的位为“1”的条件是:仅当新输入的位为“0”,而前一次输入的位为“1”。 答:设该8位口为P1,新产生的8位数为x: unsigned charx; x=P1; x&=~P1;
习题6.按给定的存储类型和数据类型,写出下列变量的说明形式:习题6.按给定的存储类型和数据类型,写出下列变量的说明形式: up,down整数,使用堆栈存储; first,last浮点数,使用外部数据存储器存储; cc,ch字符,使用内部数据存储器存储。 答:堆栈只能存储内部RAM字节内容,必须在idata区:(复位后SP=07H,但是07H中存放堆栈地址,上电复位后典型寄存器的值?) int idataup,down; floatxdatafirst,last; char idatacc,ch; 或chardatacc,ch;
答: 习题7. 判断下列关系表达式或逻辑表达式的运算结果(1或0) 1、10==9+1; 1 2、0&&0; 0 3、10&&8; 1 4、8||0; 1 5、!(3+2); 0 6、设x=10,y=9;x>=8&&y<=x; 1
习题8. 设x=4,y=8,说明下列各题运算后,x,y和z的值分别是多少? 答: 1、z=(x++)*(--y); x=5,y=7,z=28 2、z=(++x)-(y--); x=5,y=7,z=-3 3、z=(++x)*(--y); x=5,y=7,z=35 4、z=(x++)+(y--); x=5,y=7,z=12
答: 习题9.分析下列运算表达运算顺序。 1、c=a|| (b); ( b)是为0或1(逻辑值),若a=0则a|| (b), 结果赋给c 2、x+=y-z; y-z,x+(y-z),结果赋给x 3、-b>>2; -b,结果右移2位。注: -b不是取反也不能确定为负数;取反一般是变成2进制然后按位取反。如b=-3,即0FDH,则-b=3,而不是0FD按位取反 4、c=++a%b--; a=a+1,a%b,b=b-1,%结果赋给c 5、!m&n; !m,若结果为1再和n相与。X(不是&&) !m,再和n相与 6、a<b||c&d; a<b,若结果为0再c&d,结果相或