汇编语言程序设计第9章子程序设计.pptx
2025/5/26第1章汇编语言基础知识9章子程序的设计18086/8088和ARM核汇编语言程序设计第9章子程序设计教学重点:子程序设计方法
第1章汇编语言基础知识9章子程序的设计9.3子程序嵌套与递归9.2子程序的参数传递子程序库9.1子程序设计方法第9章子程序设计
9.1子程序设计方法2025/5/2630102第1章汇编语言基础知识9章子程序的设计子程序又称为过程,是能完成特定功能有一定通用性的程序段,在需要时能被其它程序调用。调用子程序的程序常称为主程序。一般把源程序中反复出现的程序段或常用的功能独立的程序段设计成子程序供用户使用。这样可以简化源程序结构、节省目标程序的存储空间,提高程序设计的效率。子程序结构也是模块化程序设计的基础。本章主要介绍子程序的定义、子程序调用和返回、子程序的参数传递以及子程序库等知识。
9.1子程序设计方法2025/5/26第1章汇编语言基础知识9章子程序的设计49.1.1子程序的定义子程序的定义是由过程定义伪指令PROC和ENDP实现,格式如下:过程名PROC [NEAR|FAR]… ;过程体过程名ENDP(1)子程序和主程序在同一个代码段中,则子程序定义为NEAR属性。(2)子程序和主程序不在同一个代码段中,则子程序定义为FAR属性。(3)主程序通常定义为FAR属性,这是因为主程序被看作DOS调用的一个子程序,以便执行完返回DOS。
9.1子程序设计方法2025/5/26第1章汇编语言基础知识9章子程序的设计59.1.1子程序的定义为了便于其他程序员能正确使用子程序,在编写子程序时,还要养成书写子程序说明信息的良好习惯。子程序说明信息一般包括以下内容:(1)子程序名(2)功能描述(3)入口和出口参数(4)调用注意事项和说明等
9.1子程序设计方法2025/5/26第1章汇编语言基础知识9章子程序的设计69.1.1子程序的定义例9.1编写一个子程序,从键盘输入一位十进制数。;子程序名:stdin;功能:完成从键盘输入一位十进制数;入口参数:等待键盘输入;出口参数:al中存放输入的数值stdin procmov ah,1int 21hcmp al,30hjl nextcmp al,39hjg nextand al,0fhnext: retstdin endp
9.1子程序设计方法2025/5/26第1章汇编语言基础知识9章子程序的设计79.1.2子程序调用与返回子程序调用与返回由CALL和RET指令实现。子程序调用指令首先把子程序的返回地址(即CALL指令的下一条指令的地址)压入堆栈,然后转移到子程序的入口地址执行子程序。根据子程序和主程序是否在同一代码段,分为段内调用和段间调用。子程序和主程序在同一个代码段中称为段内调用;子程序和主程序不在同一个代码段中,称为段间调用。子程序返回指令负责把压入栈区的返回地址弹出送IP或CS∶IP,实现返回主程序继续往下执行。与子程序的段内调用和段间调用相对应,子程序的返回也分为段内返回和段间返回。
9.1子程序设计方法2025/5/26第1章汇编语言基础知识9章子程序的设计89.1.2子程序调用与返回当子程序和主程序在同一个代码段中,子程序的定义和调用如下图:codesegmentmainprocfar……callsuba……retmainendpsubaprocnear……retsubaendpcodeends
9.1子程序设计方法2025/5/26第1章汇编语言基础知识9章子程序的设计99.1.2子程序调用与返回当子程序和主程序不在同一个代码段中,子程序的定义和调用如下图:code1segmentmainprocfar……callfarptrsuba……retmainendpcode1endscode2segmentsubaprocfar……retsuba