鱼C论坛

 找回密码
 立即注册
查看: 5414|回复: 5

MASM汇编错误信息说明看不懂

[复制链接]
发表于 2012-3-7 17:59:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
源代码如下:


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,[bx].[si].3
           and al,11011111b
           mov 4[bx+si],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行的指令少了操作数,即单操作数指令缺少操作数或双操作数指令缺少一个操作数。
修改:给指令加上适当的操作数。

可是我并没少操作数啊,为什么啊为什么,编译连接运行居然都通过了,只想知道为什么会报错?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-7 18:11:21 | 显示全部楼层
push后面应该没逗号吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-8 10:14:26 | 显示全部楼层
  s:push,cx  ; push  cx 中间木有,号

  s1:mov al,[bx].[si].3  这里的.是什么意思?  要么写成3[bx][si] 要么 [bx+si+3]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-3-8 12:10:15 | 显示全部楼层
本帖最后由 风幻影 于 2012-3-8 12:15 编辑


确实是‘,’的错误,重新编译了一下,问题果然解决了
\书上讲的有加点,就是不是像我这样加的,所以我加了试试看行不行,书上只是说在[寄存器]后面接常数(idata)的时候加点,不过好像怎么加都行,就是看着有点乱
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-8 12:53:58 | 显示全部楼层
风幻影 发表于 2012-3-8 12:10
确实是‘,’的错误,重新编译了一下,问题果然解决了
\书上讲的有加点,就是不是像我这样加的,所以我 ...

个人感觉 还是[bx+si+2] 这样的形式好辨认
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-17 21:49:11 | 显示全部楼层
问题在19行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 13:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表