1 / 45
文档名称:

计算机组成与结构08-程序的机器级表达:数据.pptx

格式:pptx   大小:265KB   页数:45页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

计算机组成与结构08-程序的机器级表达:数据.pptx

上传人:autohww 2019/8/14 文件大小:265 KB

下载得到文件列表

计算机组成与结构08-程序的机器级表达:数据.pptx

相关文档

文档介绍

文档介绍:第3章程序的机器级表示: ——数据 计算机组成与结构 2016年4月主讲教师赵欢******@-dimensionalMulti-dimensional(nested)Multi-essAlignmentUnionsBasicDataTypesIntegralStored&operatedoningeneral(integer) ASM Bytes Cbyte b 1 [unsigned]charword w 2 [unsigned]shortdoubleword l 4 [unsigned]intquadword q 8 [unsigned]longint(x86-64)FloatingPointStored&operatedoninfloatingpointregistersIntel ASM Bytes CSingle s 4 floatDouble l 8 doubleExtended t 10/12/16 longdoubleArrayAllocationBasicPrincipleTA[L];ArrayofdatatypeTandlengthLContiguouslyallocatedregionofL*sizeof(T)bytescharstring[12];xx+12intval[5];xx+4x+8x+12x+16x+20doublea[3];x+24xx+8x+16char*p[3];xx+8x+16x+24xx+4x+8x+12IA32x86-essBasicPrincipleTA[L];ArrayofdatatypeTandlengthLIdentifierAcanbeusedasapointertoarrayelement0:TypeT*Reference Type Valueval[4] int 3val int* xval+1 int* x+4&val[2] int* x+8val[5] int ??*(val+1) int 5val+i int* x+4iintval[5];15213xx+4x+8x+12x+16x+20ArrayExampleDeclaration“zip_digcmu”equivalentto“intcmu[5]”essive20byteblocksNotguaranteedtohappeningeneral#defineZLEN5typedefintzip_dig[ZLEN];zip_digcmu={1,5,2,1,3};zip_digmit={0,2,1,3,9};zip_digucb={9,4,7,2,0};zip_digcmu;15213162024283236zip_digmit;02139364044485256zip_digucb;essingExampleRegister%edxcontainsstartingaddressofarrayRegister%eaxcontains arrayindexDesireddigitat 4*%eax+%edxUsememoryreference(%edx,%eax,4)intget_digit(zip_digz,intdig){returnz[dig];}#%edx=z#%eax=digmovl(%edx,%eax,4),%eax#z[dig]IA32zip_digcmu;15213162024283236#edx=z movl $0,%eax #%eax=: #loop: addl $1,(%edx,%eax,4) #z[i]++ addl $1,%eax #i++ cmpl $5,%eax #i:5 jne .L4 #if!=,gotoloopArrayLoopExample(IA32)voidzincr(zip_digz){inti;for(i=0;i<ZLEN;i++)z[i]++;}Multidimensional(Nested)ArraysDeclarationTA[R][C];olumnsTypeTelementrequiresKbytesArraySizeR*C*KbytesArrangementRow-MajorOrderingA[0][0]A[0][C-1]A[R-1][0]• • •• • •A[R-1][C-1]••••••intA[R][C];• • •A[0][0]A[0][C-1]• • •A[1][0]A[1][C-1]• • •A[R-1][0]A[R-1][C-1]• • •4*R*CBytesNestedArrayExampl