ch11-高级汇编语言程序设计

ch11-高级汇编语言程序设计

ID:14077644

大小:56.50 KB

页数:5页

时间:2018-07-25

ch11-高级汇编语言程序设计_第1页
ch11-高级汇编语言程序设计_第2页
ch11-高级汇编语言程序设计_第3页
ch11-高级汇编语言程序设计_第4页
ch11-高级汇编语言程序设计_第5页
资源描述:

《ch11-高级汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第7章高级汇编语言程序设计7.1.结构7.1.1结构的定义格式:结构名STRUC…字段名DB/DW/DD…;字段定义…结构名ENDS*结构定义是一种对存储形式的描述,并不真正分配存储空间,只是定义了一种新的数据类型,类似定义了一个类(面向对象技术的思考方法)。类是结构的进化。例:定义一个学生成绩结构STUDENTSTRUCNUM1DB?;学号NAME1DB‘ABCDEFGHIJ’;姓名SEX1DB?;性别MATH1DB?COMPU1DB?ADDRESS1DB20DUP(?);地址STUDENTENDS7.1.2结构变量的定义格式:变量名结构名

2、<字段初值表>变量名结构名nDUP(<字段初值表>)*定义了变量后才分配了存储空间,变量类似面对象技术中的一个实例。例:S1STUDENT<>S2STUDENT<02,‘Lisi’,‘W’,100,70,‘Shanghai’>S3STUDENT<02,‘Li’,‘M’>S3STUDENT30DUP(<>);定义了含有30个学生元素的结构数组。7.1.1结构变量及字段的访问访问格式:变量名.字段名[地址寄存器].字段名例1:MOVAL,S2.SEX1MOVAL,S2[11]MOVBX,OFFSETS2;LEABX,S2MOVAL,[BX].SE

3、X1例2:自己看。7.2.记录记录与结构相似,差别在于结构用于定义以字节为基本单位的信息,而记录用于定义以二进制为基本单位的信息。C中的struct7.2.1记录的定义格式:记录名RECORD字段名:<宽度>[=<表达式>][,…]*所有字段宽度之和不能大于16,宽度大于8按16处理。例:STUFRECORDNO:8,SEX:1,MARRIAGE:1,WORK:5,HELTH:17.2.2记录变量的定义及初始化格式:变量名记录名<字段值表>例:PP1STUF<00000001B,1B,0B,01011B,0B>7.1.1记录的运算(1)记录或

4、记录字段宽度运算符WIDTHMOVAX,WIDTHSTUFMOVDL,WIDTHSEX(2)记录屏蔽运算符MASK返回8位或16位,只对应记录段名为1,其它位为0.MOVAX,MASKSEX7.1.2对记录及字段的访问用MASK7.2.宏汇编7.2.1宏定义C中的inline格式:(1)带参宏定义宏指令名MACRO形参1,形参2,…… 宏体 ENDM(2)无参宏定义宏指令名MACRO宏体ENDM例:PRINTMACRObuf1LEADX,buf1MOVAH,9INT21HENDM7.2.2宏调用格式:宏指令名[实参1,实参2,……]例如:对上

5、面的宏定义的三种调用形式为:┆PRINTBUF1┆PRINTBUF2┆PRINTBUF3┆7.7汇编语言与C连接Xxxasm.asm--àxxxasm.objxxxc.c--àxxxc.objlinkobj文件生成exe文件。两种连接方法:C中插入asm(直接插入法);C调用asm.(模块连接法)#includeexternintmaxx(int,int);intmain(intargc,char*argv[]){intx;{_asmmovah,1_asmint21h}x=maxx(8,9);printf("%d",x);

6、{_asmmovah,1_asmint21h}x=maxx(10,7);printf("%d",x);{_asmmovah,1_asmint21h}return1;}.MODELLARGE.CODEpublic_maxx_maxxprocfarpushbpmovbp,spmovax,[bp+6]cmpax,[bp+8]jgeexitmovax,[bp+8]exit:popbpret_maxxendpend

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。