【任务】
编程序宏定义和宏调用计算数组中所有元素之和。
编写的宏定义SUMMING,功能为求出字数组中所有元素之和,并把结果保存下来。该宏定义的哑元为数组首址ARRAY、数组长度COUNT和结果存放单元RESULT。
数据已经如下给出:
.data
A1 dw 2345, 7865, 3219, 849,876
R1 dw ?
A2 1,2,3,4,5,6,7,8,9
R2 dw 2
要求求出A1数组中5个元素之和,存储在R1中,求出A2数组中9个元素之和,存储在R2中。
【参考解答】
.8086
.MODEL small
.data
.data
A1 dw 2345, 7865, 3219, 849,876
R1 dw ?
A2 dw 1,2,3,4,5,6,7,8,9
R2 dw 2
.stack 100H
.code
cal macro array, count, result ;宏定义
local beg
mov ax, 0
lea si, array
mov cx, count
beg:
add ax, [si]
inc si
inc si
loop beg
mov result, ax
endm
start:
mov ax,@data
mov ds,ax
cal A1, 5, R1 ;宏调用
cal A2, 9, R2
stop: mov ax,4c00h
int 21h
end start