汇编程序:用宏指令计算

时间:2021-10-28 01:18:09

【任务】
  编程序宏定义和宏调用计算数组中所有元素之和。
  编写的宏定义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