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

本文探讨了在Intel汇编语言中,如何利用INVOKE和PROTO伪指令来创建多模块程序。尽管这两个伪指令在源代码层面提供了不同的书写格式,但经过编译和连接后,最终生成的机器码并无差异。
摘要由CSDN通过智能技术生成

继续上此的多模块创建...

INVOKE与PROTO伪指令隐藏了大量的细节,程序的书写格式发生了不少变化。但是有一点,无论是ENTERN创建的还是INVOKE  PROTO创建的,经过编译连接后生成的机器码是一样的..

(_prompt.asm模块):

TITLE Prompt For Integers	      (_prompt.asm)

INCLUDE Irvine32.inc
.code
;----------------------------------------------------
PromptForIntegers PROC,
	ptrPrompt:PTR BYTE,			; PROC指令的参数1,相当于传统伪指令中的ptrPrompt	EQU [ebp+8]	
       	ptrArray:PTR DWORD,			; PROC指令的参数2,相当于传统伪指令中的ptrArray	EQU [ebp+12]
 	arraySize:DWORD			; PROC指令的参数3,相当于传统伪指令中的arraySize	EQU [ebp+16]	
; 提示用户输入三个整数,调用ReadInt读取输入返回到eax中,
; 然后把值插入到数组中.
; 参数:
;	紧跟在PROC指令后面
;      (PROC指令的参数也就是本过程的参数,在参数与PROC指令间不能有间断,而且要注意PROC指令的书写存在逗号)
;	PROC指令也为局部变量分配堆栈空间并在使用结束后释放此堆栈空间,相当于enter与leave指令
; 返回值:无
;-----------------------------------------------------
	pushad				; 8个通用寄存器入栈

	mov	ecx,arraySize		; ecx表示数组的大小,这里同时是循环计数
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值