注册 登录
编程论坛 汇编论坛

一段小代码的错误

l1206795157 发布于 2013-05-13 14:16, 1090 次点击
data segment
    x1 db 10h,20h,?
    data ends

code segment
    assume ds:data,cs:code
st1:    mov ax,data
        mov ds,ax
        ;*****************
        mov al,[0001]
        add al,[0002]
        mov [0003],al
        ;***************
        mov ah,4ch
        int 21h
code ends
    end st1
    生成obj文件时,说第十二行有一个错误,求解释
    错误为:不合法的立即数寻址方式


[ 本帖最后由 l1206795157 于 2013-5-13 14:25 编辑 ]
5 回复
#2
hu9jj2013-05-13 16:36
应该是add al,[0002]这行出错吧,改成下面试试:
mov ah,[0002]
add al,ah
#3
l12067951572013-05-14 18:58
回复 2楼 hu9jj
还是不行,说int 21h有问题,
我是用记事本编的,然后用masm生成obj文件,系统是win7的,所以是在dosbox里运行的,是不是和这个有关系?
#4
hu9jj2013-05-14 19:40
哪会不会是WIN7是64位的版本问题?
#5
Agdmeg2013-05-15 12:35
改成mov ds:[0003],al编译通过
#6
l12067951572013-05-23 19:46
回复 5楼 Agdmeg
嗯,通过了,谢啦
1