MASM汇编错误信息说明看不懂
源代码如下:assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db'1. display '
db'2. brows '
db'3. replace '
db'4. modify '
datasg ends
codesg segment
start:mov ax,datasg
mov ds,ax
mov ax,stacksg
mov ss,ax
mov sp,16
mov bx,0
mov cx,4
s:push,cx
mov si,0
mov cx,4
s1:mov al,..3
and al,11011111b
mov 4,al
inc si
loop s1
add bx,16
pop cx
loop s
mov ax,4c00h
int 21h
codesg ends
end start
用MASM5.0编译的时候提示:test.asm(19): warning A4101: Missing data; zero assumed
百度到的说明是:说明:此错误信息提示源程序中第19行的指令少了操作数,即单操作数指令缺少操作数或双操作数指令缺少一个操作数。
修改:给指令加上适当的操作数。
可是我并没少操作数啊,为什么啊为什么,编译连接运行居然都通过了,只想知道为什么会报错? push后面应该没逗号吧 s:push,cx; pushcx 中间木有,号
s1:mov al,..3这里的.是什么意思?要么写成3 要么 本帖最后由 风幻影 于 2012-3-8 12:15 编辑
莫名其妙 发表于 2012-3-8 10:14 http://bbs.fishc.com/static/image/common/back.gif
s:push,cx; pushcx 中间木有,号
s1:mov al,..3这里的.是什么意思?要么写成3 要么
确实是‘,’的错误,重新编译了一下,问题果然解决了
\书上讲的有加点,就是不是像我这样加的,所以我加了试试看行不行,书上只是说在[寄存器]后面接常数(idata)的时候加点,不过好像怎么加都行,就是看着有点乱 风幻影 发表于 2012-3-8 12:10 static/image/common/back.gif
确实是‘,’的错误,重新编译了一下,问题果然解决了
\书上讲的有加点,就是不是像我这样加的,所以我 ...
个人感觉 还是 这样的形式好辨认 问题在19行
页:
[1]