回 帖 发 新 帖 刷新版面

主题:奇怪!!运行书本源程序却报错!

本人初学汇编语言,很多东西都还没有弄懂。本想照书本源程序运行,来找点感觉的,但是竟然也被masm报错了!
  源程序如下:
  .386
DATA   SEGMENT  USE16
SUM    DW     0
DATA   ENDS
STACK  SEGMENT  USE16   STACK
       DB   200   DUP(0)
STACK  ENDS
CODE   SEGMENT   USE16
       ASSUME   DS:DATA,SS:STACK,CS:CODE
START:MOV  AX,DATA
      MOV  DS,AX
      MOV  CX,50
      MOV  AX,0
      MOV  BX,1
NEXT: ADD  AX,BX
      INC  BX
      INC  BX
      DEC  CX
      JNE  NEXT
      MOV  SUM,AX
      MOV  AH,4CH
      INT  21H
CODE    ENDS
        END   START
大家帮忙看一下。我用的是masm6.11
是不是这个程序不能在MASM6.11下面运行啊?那MASM5又怎么用呢?

回复列表 (共7个回复)

沙发

把你的程序copy下来,保存为ts.asm,放到masm的bin目录下,运行ml ts.asm,编译通过.

板凳

能说明白点吗?怎么运行ml ts.asm啊?你用的是什么版本的MASM啊。我们用的是MASM6.11,好象和这个都不一样啊。我们都是运行cmd然后用ml /c /coff /Zi 1.asm来编译的,然后才是link /debug /subsystem:console /entry:start /out:1.exe 1.obj io.obj kernel32.lib
这里假设我的源程序是1.asm

3 楼

对于DOS下的程序来说:
ml 1.asm等价于下面的两个操作:
masm 1.asm
link 1.asm
ml后面的参数是给windows下的汇编程序用的,DOS的汇编程序可以不用带参数。
我的MASM是6.15,它和MASM611没有多大区别。
关于ml的具体用法可以看Masm中的MAKEREF文档---如果你下的masm中有这个文档。

4 楼

偶们用的都是5
怎么看6.11的命令比5的多很多捏?

5 楼

本人感觉6.11好象比5更好用,至少在输入输出方面是这样的哦。还有6.11很多好用的命令,而5很多命令用起来都很烦啊。

6 楼

我用8.2 好多了,5也太落后了喽。

7 楼

你把报错的信息发上来

我来回复

您尚未登录,请登录后再回复。点此登录或注册