32位汇编语言程序设计 第3版 PPT课件 32位汇编语言06.ppt

32位汇编语言程序设计 第3版 PPT课件 32位汇编语言06.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*〔例6-4〕消息窗口程序-2 .codestart: invokeMessageBox,NULL,offsetoutbuffer,offsetszCaption,MB_OK invokeExitProcess,NULL endstart连接时应该使用参数/subsystem:windows*6.3.2结构变量结构类型的说明 结构名STRUCT …… ;数据定义语句 结构名ENDS结构变量的定义 变量名结构名字段初值表结构变量及其字段的引用引用结构变量,只要直接书写结构变量名引用其中某个字段,采用圆点“.”操作符结构变量名.结构字段名*〔例6-5〕系统时钟显示程序-1 ;系统时间的结构类型说明SYSTEMTIME structwYear dw0 ;年(4位数) wMonth dw0 ;月(1~12)wDayOfWeek dw0 ;星期(0~6,0=星期日,……)wDay dw0 ;日(1~31) wHour dw0 ;时(0~23) wMinute dw0 ;分(0~59) wSecond dw0 ;秒(0~59) wMillisconds dw0 ;毫秒(0~999)SYSTEMTIME ends ;函数声明,参数是指向结构变量的指针GetLocalTime proto,:dword*〔例6-5〕系统时钟显示程序-2 .datamytime SYSTEMTIME ;系统时间的结构变量定义timestring db--:--:--,0timecaption db当前时间,0 .codestart: invokeGetLocalTime,offsetmytime ;获得当前时间 movebx,offsettimestring ;EBX指向“时”的保存位置 writedec[mytime.wHour];转换为ASCII字符 … invokeMessageBox,0,offsettimestring,offsettimecaption,1writedec*宏:writedecwritedec macrotime ;;将二进制数转换为2位十进制数 ;;再转为ASCII字符保存 movax,time movcl,10 divcl ;;商AL是百位,余数AH是个位 addax,3030h ;;转换为ASCII mov[ebx],ax ;;对应显示顺序,百位先显示保存在低地址 endm返回*6.3.3MASM的高级语言特性MASM6.0引入高级语言的程序设计特性扩展的过程定义PROC过程声明和过程调用伪指令PROTOINVOKE条件控制伪指令.IF.ELSE.ENDIF循环控制伪指令.WHILE.ENDW.REPEAT.UNTIL要调用带参数过程定义的过程,不应采用CALL指令,因为比较烦琐应该采用过程调用伪指令INVOKE使用INVOKE伪指令的前提是需要用PROTO伪指令对过程进行声明过程名 PROC 调用距离语言类型作用范围起始参数 USES寄存器列表,参数:类型 LOCAL参数表 … ;汇编语言语句过程名 ENDP过程声明伪指令:事先声明过程的结构过程名 PROTO调用距离语言类型,参数:类型过程调用伪指令 INVOKE过程名,参数,...如何调用1.扩展的过程定义*〔例6-6〕使用扩展过程定义程序-1mean protoc,:dword,:dword ;过程声明,使用C语言规范 .dataarray dd675,…,-67,4257count equ($-array)/4 .codestart: ;主程序:调用求平均值子程序,然后显示 invokemean,offsetarray,count calldispsid ;显示 exit0 ;子程序:计算32位有符号数平均值 ;入口参数:D表示数组地址、NUM表示元素个数 ;出口参数:EAX=平均值*〔例6-6〕使用扩展过程定义程序-2mean proccusesebxecxedx,d:dword,num:dword movebx,d ;EBX=数组指针 movecx,num ;ECX=元素个数 xoreax,eax ;EAX保存和值 xoredx,edx ;EDX=指向数组元素mean1: addeax,[ebx+edx*4] ;求

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档