鱼C论坛

 找回密码
 立即注册
查看: 3403|回复: 6

问题7,9的代码编译不了有错误提示

[复制链接]
发表于 2011-7-19 00:15:57 | 显示全部楼层 |阅读模式

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

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

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,stacksg
      mov ss,ax
          mov sp 16
          mov ax,datasg
          mov ds,ax
          mov bx,0
          
          mov cx,4
  s0: push cx
      mov si,0
          mov cx,4
   s: mov al,[bx+3+si]
          and al,11011111b
          mov [bx+3+si],al
          inc si
          loop s
          
          add bx,16
          pop cx
          loop s0
          
          mov ax,4c00h
          int 21h
codesg ends

#########################################################
D:\resource\folder>masm 1.txtMicrosoft (R) MASM Compatibility DriverCopyright (C) Microsoft Corp 1993.  All rights reserved.
Invoking: ML.EXE /I. /Zm /c /Ta 1.txt
Microsoft (R) Macro Assembler Version 6.15.8803        Patched for you by promethee [ECL] in the year 2001 - enjoyCopyright (C) Microsoft Corp 1981-2000.  All rights reserved.
Assembling: 1.txt1.txt(16) : error A2008: syntax error : in instruction1.txt(25) : error A2070: invalid instruction operands1.txt(27) : error A2070: invalid instruction operands

这是为什么呢?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-19 11:04:47 | 显示全部楼层
第16行代码 SP 后加个逗号,不加逗号编译器认为只有操作符,没有操作数。 还有就是代码 最后加
end start 。我就弄了这两个地方,就编译通过了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-19 12:49:37 | 显示全部楼层
谢谢楼上 按你说的做还是不行,还要把[bx+3+si]改成[bx+si+3]才可以不知道为什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-19 13:19:06 | 显示全部楼层
我 编译过只看到
D:\resource\folder>debug 1.exe
-r
AX=0000  BX=0000  CX=0081  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=13D8  ES=13D8  SS=13E8  CS=13ED  IP=0000   NV UP EI PL NZ NA PO NC
13ED:0000 B8E813        MOV     AX,13E8
-d 13d8:0 3f
13D8:0000  CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03 E5 0D 8A 03   . ........O.....
13D8:0010  E5 0D 17 03 E5 0D D4 0D-01 01 01 00 02 FF FF FF   ................
13D8:0020  FF FF FF FF FF FF FF FF-FF FF FF FF 92 13 4C 01   ..............L.
13D8:0030  A5 12 14 00 18 00 D8 13-FF FF FF FF 00 00 00 00   ................
为什么不是别人这样呢?
-d0c4e:0 3f

0C4E:0000  31 2E 20 64 69 73 70 6C-61 79 20 20 20 20 20 20   1. display

0C4E:0010  32 2E 20 62 72 6F 77 73-20 20 20 20 20 20 20 20   2. brows

0C4E:0020  33 2E 20 72 65 70 6C 61-63 65 20 20 20 20 20 20   3. replace

0C4E:0030  34 2E 20 6D 6F 64 69 66-79 20 20 20 20 20 20 20   4. modify
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-19 18:14:02 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-19 18:28:22 | 显示全部楼层
本帖最后由 a89361461 于 2011-7-19 18:32 编辑
sslas 发表于 2011-7-19 13:19
我 编译过只看到为什么不是别人这样呢?


这是我执行后看到的结果,你的IP为0,代码并没有执行。你看到的当然是DS段原先的数据啦。先猛按 T 执行完就能看到了。
未命名.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-19 19:44:49 | 显示全部楼层
sslas 发表于 2011-7-19 12:49
谢谢楼上 按你说的做还是不行,还要把改成才可以不知道为什么

我和你出现了一样的问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 02:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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