鱼C论坛

 找回密码
 立即注册
查看: 3098|回复: 7

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

[复制链接]
发表于 2011-12-23 22:47:58 | 显示全部楼层 |阅读模式

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

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

x
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,[bx]

        mov es:[si],ax

        mov ax,[bx].2

        mov es:[si].2,ax



        mov ax,[bx].84

        mov es:[si].5,ax

        mov dx,[bx].86

        mov es:[si].7,dx



        div word ptr ds:[di].168

        mov es:[si].13,ax

        

        mov ax,[di].168

        mov es:[si].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 [ECL] 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:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-23 23:05:15 | 显示全部楼层
没人吗?帮忙解答一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-23 23:21:09 | 显示全部楼层
估计是ml在传递给masm编译asm档案时的预设参数的问题,
你用原始的方式

masm xxx.asm

编译完全正常,不会报错.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-24 02:11:54 | 显示全部楼层

谢谢兄弟,果然是这样,但是什么是传递给masm编译asm档案时的预设参数,可否详细告诉我,{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 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.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-24 09:22:48 | 显示全部楼层
ytrfamli 发表于 2011-12-24 04:55
我说错了,应该是masm.exe提供参数给ml.exe

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

为什么之前的汇编程序用ml可以运行通过,就这个要单独的用masm和link?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-24 11:13:16 | 显示全部楼层
cannot open file: c:\masm\ML.err
有的时候我的也出现这样的问题  不过我都是重新解压下MASM就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-24 21:53:21 | 显示全部楼层
为什么之前的汇编程序用ml可以运行通过,就这个要单独的用masm和link?

呃...同学是不是5楼没有全看完?我在5楼已经说了,
ml使用/Zm参数就可编译成功,不需要分两步啦...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 18:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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