5 汇编语言模块化程序设计

时间:2026-04-30

汇编语言程序设计课件

第五章 汇编语言模块化程序设计

汇编语言程序设计课件

模块化程序设计方法 将一个大问题按层次分解成多个方便解决小问题的模块的设 计思想. 计思想. 求解较小问题的算法和程序称作"功能模块" 求解较小问题的算法和程序称作"功能模块", 各功能模块 可以先单独设计, 可以先单独设计,然后将求解所有子问题的模块组合成求解 原问题的程序. 原问题的程序.主控模块

模块1 模块

模块2 模块

模块N 模块

模块1_1 模块

模块2_1 模块1_N 模块 模块

模块2_N 模块

模块N_1 模块

模块N_N 模块

汇编语言程序设计课件

§5.1 子程序设计

汇编语言程序设计课件

子程序的概念在程序设计中, 在程序设计中,我们会发现一些多次无规律重复的 程序段或语句序列. 程序段或语句序列. 解决此类问题一个行之有效的 方法就是将它们设计成可供反复调用的独立的子程 序结构,以便在需要时调用. 序结构,以便在需要时调用. 子程序的设计是把一个程序划分成若干模块的主要 手段. 手段. 在汇编语言中,子程序又称过程 过程. 在汇编语言中,子程序又称过程.调用子程序的程 序称为主调程序或主程序. 序称为主调程序或主程序.

汇编语言程序设计课件

5.1.1 子程序的设计方法一,子程序的调用 所谓调用子程序,暂时中断主程序的执行, 所谓调用子程序,暂时中断主程序的执行,而转到子程序 的入口地址去执行子程序.调用子程序应注意: 的入口地址去执行子程序.调用子程序应注意: ⑴ 子程序占用的 存储单元和寄存 器 ⑵ 参数的传递 ⑶ 子程序经过调 用后得到的数据 的使用MAIN … … CALL A … … A … … ↓ … RET

汇编语言程序设计课件

二,子程序的结构子程序的基本结构包括以下几个部分: 子程序的基本结构包括以下几个部分:MAIN … … CALL A … … A … … ↓ … RET

⑴子程序说明 ⑵保护现场和恢复现场 ⑶子程序体 ⑷子程序返回

汇编语言程序设计课件

三,子程序的定义 子程序又称过程, 子程序又称过程 ,子程序的定义是由过程定义伪 指令PROC ENDP来完成的 PROC和 来完成的. 指令PROC和ENDP来完成的. 格式: 格式:过程名 PROC [NEAR/FAR] … RET 过程名 ENDP

汇编语言程序设计课件

说明: 说明: 过程名即子程序名,每个子程序要有一个子程序名, ⑴ 过程名即子程序名,每个子程序要有一个子程序名, 它是调用子程序的标识符, 它是调用子程序的标识符,是子程序入口地址的符号 表示. 表示. 一般过程名同标号一样,具有三种属性,即段属性, ⑵ 一般过程名同标号一样,具有三种属性,即段属性, 偏移地址属性以及类型属性. 偏移地址属性以及类型属性. NEAR:调用程序和子程序在同一段中(段内调用) NEAR:调用程序和子程序在同一段中(段内调用) FAR:调用程序和子程序不在同一段中(段间调用) FAR:调用程序和子程序不在同一段中(段间调用) PROC表示子程序定义开始 ENDP表示定

义的结束 表示子程序定义开始, 表示定义的结束. ⑶ PROC表示子程序定义开始,ENDP表示定义的结束. 子程序中要有一个RET指令使其返回主程序. 中要有一个RET指令使其返回主程序 ⑷ 在子程序中要有一个RET指令使其返回主程序.

汇编语言程序设计课件

四,子程序控制指令⑴ CALL调用指令 CALL调用指令 格式:CALL LABLE 格式: 功能:把CALL下一条指令地址压入堆栈保护后,转向目标地 功能: CALL下一条指令地址压入堆栈保护后, 下一条指令地址压入堆栈保护后 址处执行子程序. 址处执行子程序. 形式: 形式:① 段内直接调用 执行的操作: (SP)←(SP)- ((SP)+ (SP))←(IP); 执行的操作: (SP)←(SP)-2; ((SP)+1,(SP))←(IP); (IP)←(IP)+16位位移量 入口地址-返回地址) 位位移量( (IP)←(IP)+16位位移量(入口地址-返回地址) 例:CALL SUB1 ② 段内间接调用 执行的操作: (SP)←(SP)- ((SP)+ (SP))←(IP); 执行的操作: (SP)←(SP)-2; ((SP)+1,(SP))←(IP); (IP)←(EA) 例:CALL AX

汇编语言程序设计课件

③段间直接调用 执行的操作: (SP)←(SP)-2; ((SP)+1,(SP))←(CS); 执行的操作: (SP)←(SP)- ((SP)+ (SP))←(CS); (SP)←(SP)- ((SP)+ (SP))←(IP); (SP)←(SP)-2; ((SP)+1,(SP))←(IP); (IP)←偏移地址 (IP)←偏移地址 (CS)←段地址 (CS)←段地址 例: CALL FAR PTR SUB1 ④段间间接调用 执行的操作: (SP)←(SP)- ((SP)+ (SP))←(CS); 执行的操作: (SP)←(SP)-2; ((SP)+1,(SP))←(CS); (SP)←(SP)- ((SP)+ (SP))←(IP); (SP)←(SP)-2; ((SP)+1,(SP))←(IP); (IP)←(EA) (CS)←(EA+ (CS)←(EA+2) 例: CALL DWORD PTR[BX]

汇编语言程序设计课件

RET返回指令 ⑵ RET返回指令 格式: 格式:RET 功能:过程执行完以后, 功能:过程执行完以后,通过该指令返回原调用程序的返回 处. ① 段内返回 操作步骤: (IP) ←((SP)+1,(SP)) 操作步骤: ←((SP)+1, (SP) ←(SP)+2 ② 段间返回 操作步骤: ←((SP)+1, 操作步骤: (IP) ←((SP)+1,(SP)); (SP) ←(SP)+2 ←((SP)+1, (CS) ←((SP)+1,(SP)); (SP) ←(SP)+2

汇编语言程序设计课件

五,子程序的调用与返回 子程序调用: 子程序调用 : 隐含使用堆栈保 存返回地址⑴ CALL (NEAR PTR) SUB1 ① 保存返回地址 ② 转子程序 子程序返回: ③ 子程序返回:RET

CODE SEGMENTMAIN PROC …… CALL …… RET ENDP FAR SUB1 SUB1

MAIN

(SP)→

(IP)

SUB1 SUB1 PROC …… RET SUB1 SUB1 E …… 此处隐藏:891字,全部文档内容请下载后查看。喜欢就下载吧 ……

5 汇编语言模块化程序设计.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219