麻烦大家帮忙看一下下面我写的代码,我不知道哪里出错了,谢谢!
;----------------------------------------------------------
;版权信息:
;作者信息:spirit
;编制日期:
;程序功能:求两个多字节数据的绝对值;求两个多字节数据之和
;
;
;使用方法:
;
;入口信息:两个多字节数据分别存放于DATA1和DATA2单元,数据长度存放于LEN单元中
;
;出口信息:绝对值之和存在于SUM开始的连续单元中
;
;版本信息:
;----------------------------------------------------------
;修改信息:(对应版本,修改日期,修改者,修改原因,修改位置)
;-----------------------------------------------------------
sseg    segment stack            ;定义堆栈段
stktop    dw 512 dup(?)
                    ;堆栈段有512字(1024字节)空间
sseg    ends                ;堆栈段结束
;
dseg    segment                ;定义数据段
DATA1    dw 1,2,3
DATA2    dw -1,-2,-3
LEN    dw 3
SUM    dw 50 dup(0)
dseg    ends
;
code    segment 'code'            ;定义代码段
    assume cs:code,ds:dseg
    assume ss:sseg
start:    mov ax,dseg            ;建立DS段地址
    mov ds,ax
    mov ax,sseg
    mov ss,ax
    mov sp,size stktop
main:
    mov ax,data1
    mov bx,data2
    mov cx,len
    mov dx,sum
    MYABS ax,bx,cx,dx        ;调用求绝对值子程序

    mov ax,4c00h
    int 21h                ;利用功能调用返回DOS

MYABS    macro data1,data2,len,sum    ;求绝对值
    local second,process
    
first:    push data1
    jns second
    neg data1

second:    and data2,data2
    jns process
    neg data2
    
process:RESULT                ;调用求和
    mov sum,data1
    pop data1
    inc data1
    inc data1
    inc data2
    inc data2
    inc sum
    inc sum
    loop first
    
RESULT    macro
    add data1,data2
    ret
    endm
    
    endm


    
code    ends                ;代码段结束
    end start
                    ;汇编结束,同时指明程序起始点

用ml+link后的结果:
e6-2.asm(43) : error A2008: syntax error : ax
我不明白为什么会是这样的,谢谢大家帮忙啊,初学汇编啥也不懂