Intel汇编_Chapter_08_高级过程
ADDR运算符 ADDR运算符 可以在INVOKE调用过程时传递指针 .data myArray BYTE 50 DUP(?) .code INVOKE FillArray, ADDR myArray INVOKE Swap, ADDR Array, ADDR Array+4 PROC伪指令基本格式: 标号 PROC[属性][USES寄存器列表],参数列表 属性 远近属性distance 语言属性langtype 可见性visibility 序言prologue PROC伪指令 PROC伪指令 允许定义一个过程并且附带参数列表 过程名 PROC, parameter_1, parameter_2, … parameter_n PROC伪指令 参数名:类型 参数名可以是赋予参数的任意名字,它的作用域仅限于当前过程内;不能和全局的变量名或代码标号相同 参数列表也可写在同一行 AddTwo PROC,val1:DWORD,val2:DWORD … AddTwo ENDP FillArray PROC, pArray: PTR BYTE … FillArray ENDP PROC伪指令 PROC伪指令 Read_File PROC USES eax ebx, pBuffer:PTR BYTE LOCAL fileHandle:DWORD mov esi, pBuffer mov fileHandler, eax … ret Read_File ENDP PROC伪指令 Read_File PROC push ebp mov ebp,esp add esp, 0fffffffch push eax push ebx mov esi,dword ptr[ebp+8] mov dword ptr[ebp-4],eax pop ebx pop eax leave ret 4 Read_File ENDP Example1 PROC C, parm1:DWORD, parm2:DWORD … Example1 ENDP PROC伪指令 Example2 PROC STDCALL, parm1:DWORD, parm2:DWORD … Example2 ENDP PROTO伪指令 PROTO伪指令 为一个已存在的过程创建原型 允许过程在定义前就被调用 创建方法 拷贝PROC所在的语句,将PROC改成PROTO 如果有USES伪指令,则去掉USES伪指令以及其后的寄存器列表 PROTO伪指令 ArraySum PROC USES esi ecx, ptrArray: PTR DWORD, szArray:DWORD … ArraySum ENDP ArraySum PROTO, ptrArray: PTR DWORD, szArray:DWORD 举例 计算一个双字数组的和ArraySum 使用寄存器参数 使用PROC伪指令声明堆栈参数 ⑤ 参数分类 过程的参数分类通常依据调用程序和被调用程序之间的数据传输方向来分类: 输入参数 输出参数 输入-输出参数 例子:交换两个整数 void swap(int x,int y) { int temp; temp = x; x = y; y = temp; } void swap(int x,int y) { int temp; temp = x; x = y; y = temp; } 疑难提示 错误的操作数尺寸 传递错误类型的指针 传递立即数 5. 递归 递归求和 1+2+…+n 计算阶乘 n! 递归求和 int CalcSum(int n ) { if(n==0) return 0; return n+CalcSum(n-1); } 计算阶乘 void Factorial(int n ) { if(n==0) return 1; else return n*factorial(n-1); } 创建多模块程序 创建多模块程序必须遵循的步骤: 为程序创建主源代码模块(asm文件),主过程应该放在该模块中; 为每个过程创建一个单独的代码模块; 在主程序中使用PROTO伪指令为将要调用的过程创建原型; 在每个程序模块中包含所有过程的PROTO原型声明。 * 计算机科学系-汇编课件 第8章 高级过程 要点: 简介 堆栈框架 递归 .MODEL伪指令 创建多模块程序 1. 简介 堆栈框架 变量的作用域和生存期 堆栈参数的类型 通过传递值或者传递引用来传递参数 在堆栈上创建和初始化局部变量 编写多模块的程序 内存模型和语言关键
您可能关注的文档
- 中国石化集团中原石油勘探局与北京恩威妇女儿童保健品.doc
- 中国幼儿基础阅读书目(共100本)3979289.doc
- 中国幼儿基础阅读书目(共100本).doc
- 儿童文学(电子版)_其它_高等教育_教育专区.doc
- 转角衣柜效果图、卧室衣柜图片赏析.doc
- 北京语言大学对外汉语考研资料汇编_教育学_高等教育_教育专区.doc
- 中小学幼儿系列广播体操.doc
- 小锤加工.doc
- 创游观察.doc
- 转角衣柜优势及衣柜效果图赏析.doc
- 25-26学年政治(部编版)选择性必修第二册课件:第1单元 周清1 民法中的人身权及财产权.pptx
- 25-26学年政治(部编版)选择性必修第二册课件:1.4.1 权利保障 于法有据.pptx
- 2025北京丰台区高二(上)期中地理(A卷)含答案.docx
- 2025北京三帆中学初三(上)开学考英语试题含答案.docx
- 2025北京一零一中初三9月月考语文试题含答案.docx
- 2025北京海淀区初三(上)期中道法试题含答案.docx
- 2025北京丰台区高一(上)期中政治(A卷)含答案.docx
- 25-26学年政治统编版必修4课件:3.3 唯物辩证法的实质与核心.pptx
- 25-26学年政治统编版必修4课件:7.2 正确认识中华传统文化.pptx
- 湖北省部分高中2026届高三上学期二模联考 历史试卷.docx
最近下载
- 附录B规范性附录AGC性能指标计算及补偿-中国电力企业联合会.DOC
- 山东省烟台市蓬莱区2022-2023学年六年级上学期期末数学试题(五四学制) (含答案解析).docx VIP
- YQ-15-烟用材料许可使用物质名 单系列标准.pdf VIP
- 2019-2020学年四川成都锦江区五年级上册语文期末试卷及答案.pdf
- 基于ABAQUS的动力总成悬置支架仿真分析方法研究.docx VIP
- 【三套试卷】【浙教版】小学三年级数学上册第一单元教材检测题附答案.pdf VIP
- EMT会议管理制度.docx VIP
- 十年(2016-2025)高考物理真题分类汇编(全国通用)-专题23 法拉第电磁感应定律.docx VIP
- 渠道维护工高级技师考试答案(强化练习).docx VIP
- 动量和能量中的滑板块模型专题.docx VIP
原创力文档

文档评论(0)