默默的赶超c 发表于 2011-12-23 22:47:58

实验八的题目,大家帮我看看哪里错了

assume cs:code,ds:data,es:table

data segment

    db '1975','1976','1977','1978','1979','1980','1981','1982','1983'

    db '1984','1985','1986','1987','1988','1989','1990','1991','1992'

    db '1993','1994','1995'

    dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514

    dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000

    dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226

    dw 11452,14430,15257,17800

data ends

table segment

    db 21 dup ('year summ ne ?? ')

table ends

code segment

start:mov ax,data

      mov ds,ax

      mov ax,table

      mov es,ax

      mov bx,0

      mov si,0

      mov di,0

      mov cx,21

s:      mov ax,

      mov es:,ax

      mov ax,.2

      mov es:.2,ax



      mov ax,.84

      mov es:.5,ax

      mov dx,.86

      mov es:.7,dx



      div word ptr ds:.168

      mov es:.13,ax

      

      mov ax,.168

      mov es:.10,ax



      add di,2

      add bx,4

      add si,16

      loop s



      mov ax,4c00h

      int 21h

code ends

end start
编译的时候,错误提示
c:\masm>ml test.asm
Microsoft (R) Macro Assembler Version 6.15.8803
      Patched for you by promethee in the year 2001 - enjoy
Copyright (C) Microsoft Corp 1981-2000.All rights reserved.

Assembling: test.asm
error A4910: cannot open file: c:\masm\ML.err
test.asm(49) : error A2166:
test.asm(51) : error A2166:
test.asm(55) : error A2166:
test.asm(57) : error A2166:
test.asm(59) : error A2166:
test.asm(61) : error A2166:
test.asm(65) : error A2166:
test.asm(67) : error A2166:
test.asm(71) : error A2166:
test.asm(73) : error A2166:

默默的赶超c 发表于 2011-12-23 23:05:15

没人吗?帮忙解答一下

ytrfamli 发表于 2011-12-23 23:21:09

估计是ml在传递给masm编译asm档案时的预设参数的问题,
你用原始的方式

masm xxx.asm

编译完全正常,不会报错.

默默的赶超c 发表于 2011-12-24 02:11:54

ytrfamli 发表于 2011-12-23 23:21 static/image/common/back.gif
估计是ml在传递给masm编译asm档案时的预设参数的问题,
你用原始的方式



谢谢兄弟,果然是这样,但是什么是传递给masm编译asm档案时的预设参数,可否详细告诉我,{:1_1:}

ytrfamli 发表于 2011-12-24 04:55:16

我说错了,应该是masm.exe提供参数给ml.exe

masm 5版 编译器是masm.exe,没有自动link功能(也没有ml.exe)
masm 6版 编译器是换成是ml.exe,有自动link功能
(masm.exe变成前导,实际上是参数给ml.exe在运作)

6版masm.exe交给ml.exe的预设参数是(其实执行後命令提示符有显示出来)
/I. /Zm /c /Ta

/Zm 表示要求支持MASM 5.10相容性.
/c    表示停用自动link
另外两个不重要
因此用(注意参数大小写)

ml /Zm xxx.asm

你的代码就可以编译成功并且自动产生exe.

默默的赶超c 发表于 2011-12-24 09:22:48

ytrfamli 发表于 2011-12-24 04:55 static/image/common/back.gif
我说错了,应该是masm.exe提供参数给ml.exe

masm 5版 编译器是masm.exe,没有自动link功能(也没有ml.exe)
...

为什么之前的汇编程序用ml可以运行通过,就这个要单独的用masm和link?

theron1988 发表于 2011-12-24 11:13:16

cannot open file: c:\masm\ML.err
有的时候我的也出现这样的问题不过我都是重新解压下MASM就可以了

ytrfamli 发表于 2011-12-24 21:53:21

为什么之前的汇编程序用ml可以运行通过,就这个要单独的用masm和link?
呃...同学是不是5楼没有全看完?我在5楼已经说了,
ml使用/Zm参数就可编译成功,不需要分两步啦...
页: [1]
查看完整版本: 实验八的题目,大家帮我看看哪里错了