读书人

初学宏问个关于宏的小程序的小疑点~

发布时间: 2012-02-13 17:20:26 作者: rapoo

初学宏,问个关于宏的小程序的小问题~~
程序是这样的,就是用宏做数组的求和,masm出错,就是打了****那两行的问题,是不是数组太大了?那2个数组的定义有问题么??
.model small
.386
.lall

summing macro array,count,result
local to
mov ebx,0d
mov edx,0
mov ecx,count
mov esi.0
to:
inc esi
add eax,array[esi]
adc edx,0
mov result[2],edx
mov result[1],eax
inc ebx
pushad ebx
imul ebx,4d
mov esi,ebx
popad ebx
loop to
endm


datarea segment
data1 dd 1,10,100,1000,10000
data2 dd 2,20,200,2000
sum1 dq ?,?
sum2 dq ?,?
datarea ends

prognam segment
main proc far
assume cs:prognam,ds:datarea
start:
mov ax,datarea
mov ds,ax
summing data1,5d,sum1 ;********************
summing data2,4d,sum2 ;********************
mov ax,4c00h
int 21h
main endp
prognam ends
end start


[解决办法]
不是吧,你的宏定义里有些问题

Assembly code
summing macro array,count,resultlocal to  mov ebx,0d  mov edx,0  mov ecx,count  mov esi,0  to:  inc esi     add eax,array[esi]  adc edx,0  mov dword ptr result[2],edx  mov dword ptr result[1],eax  inc ebx  push ebx  imul ebx,4d  mov esi,ebx  pop ebx     loop to  endm 

读书人网 >汇编语言

热点推荐