鱼C论坛

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

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

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

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

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

x
  1. assume cs:codesg,ss:stacksg,ds:datasg
  2. stacksg segment
  3. dw 0,0,0,0,0,0,0,0
  4. stacksg ends

  5. datasg segment
  6. db '1. display      '
  7. db '2. brows        '
  8. db '3. replace      '
  9. db '4. modify       '
  10. datasg ends

  11. codesg segment
  12. start:mov ax,stacksg
  13.       mov ss,ax
  14.           mov sp 16
  15.           mov ax,datasg
  16.           mov ds,ax
  17.           mov bx,0
  18.           
  19.           mov cx,4
  20.   s0: push cx
  21.       mov si,0
  22.           mov cx,4
  23.    s: mov al,[bx+3+si]
  24.           and al,11011111b
  25.           mov [bx+3+si],al
  26.           inc si
  27.           loop s
  28.           
  29.           add bx,16
  30.           pop cx
  31.           loop s0
  32.           
  33.           mov ax,4c00h
  34.           int 21h
  35. 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

这是为什么呢?

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

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

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

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

  5. 0C4E:0030  34 2E 20 6D 6F 64 69 66-79 20 20 20 20 20 20 20   4. modify
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-7-19 18:14:02 | 显示全部楼层
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-7-19 19:44:49 | 显示全部楼层
sslas 发表于 2011-7-19 12:49
谢谢楼上 按你说的做还是不行,还要把改成才可以不知道为什么

我和你出现了一样的问题。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-4-22 03:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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