27、高级程序设计:深入理解过程调用与多模块编程

高级程序设计:深入理解过程调用与多模块编程

1. 输入输出参数与交换整数示例

在程序设计中,输入输出参数是一种特殊的参数类型。它与输出参数类似,但被调用的过程期望该参数引用的变量包含一些数据,并且过程会通过指针修改该变量。

下面是一个交换两个32位整数内容的程序示例:

TITLE Swap Procedure Example (Swap.asm)
INCLUDE Irvine32.inc

Swap PROTO,
    pValX:PTR DWORD,
    pValY:PTR DWORD

.data
Array DWORD 10000h, 20000h

.code
main PROC
    ; Display the array before the exchange:
    mov esi, OFFSET Array
    mov ecx, 2 ; count = 2
    mov ebx, TYPE Array
    call DumpMem ; dump the array values

    INVOKE Swap,
        ADDR Array,
        ADDR [Array + 4]

    ; Display the array after the exchange:
    call DumpMem
    exit
main ENDP

Swap PROC USES eax esi edi,
    pValX:PTR DWORD, ; pointer to first integer
    pValY:PTR DWORD ; pointer to second
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值