《Inter汇编语言程序设计》8.6 创建多模块程序(ENTERN)

本文介绍如何创建Intel汇编语言的多模块程序,通过一个ArraySum的例子,详细讲解了ENTERN伪指令的运用,该指令用于在不同模块间调用过程,并在各模块(如_prompt.asm, _arrysum.asm, _display.asm, Sum_main.asm)中展示了具体的程序设计。" 109671144,10182206,解决图片跨域问题:转换为Base64,"['前端开发', 'Vue', '图片处理', 'CORS', '跨域']
摘要由CSDN通过智能技术生成

                在此章节之前,创建的程序全部是只用一个模块的,也就是程序中只用了一个END指令,这里通过创建ArraySum例子程序演示创建多模块程序的方法。


首先通过使用ENTERN伪指令创建传统的多模块程序,这里的ENTERN伪指令实际上只起了调用其他模块里的过程前对此过程的声明作用。这里的被调用过程与一个模块表达式没有书写格式上的变化,源程序如下:

(_prompt.asm模块)

TITLE Prompt For Integers	      (_prompt.asm)

INCLUDE Irvine32.inc
.code
;----------------------------------------------------
PromptForIntegers PROC

; 提示用户输入三个整数,调用ReadInt读取输入返回到eax中,
; 然后把值插入到数组中.
; 参数:
; 	ptrPrompt:PTR BYTE			; 提示用户的字符串
; 	ptrArray:PTR DWORD			; 数组首地址
; 	arraySize:DWORD			; 数组的长度
; 返回值:无
;-----------------------------------------------------
arraySize	EQU [ebp+16]
ptrArray	EQU [ebp+12]
ptrPrompt	EQU [ebp+8]			; [ebp+8]指向调用此模块(call指令)之前的入栈数据

	enter	0,0			
; enter指令自动为被调用过程创建堆栈框架(此处相当于push ebp;mov ebp,esp;sub esp,0),
; 并为局部变量创建堆栈空间(e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值