+ -
当前位置:首页 → 问答吧 → 第一次接触masm编译器遇到的问题,望各位能看看

第一次接触masm编译器遇到的问题,望各位能看看

时间:2010-12-02

来源:互联网

只学过c语言,也没接触过DOS
我把书上的一个例子打进机器,就是想用用masm编译器
例子 把两个五字节数字相加。

DATA SEGMENT
  DATA1 DB OF8H,60H,0ACH,74H,3BH
  DATA2 DB 0C1H,36H,9EH,0D5H,20H
 DATA ENDS
CODE SEGMMENT
  ASSUME CS:COSE,DS:DATA
  START: MOV AX,DATA
  MOV DS,AX
  MOV CX,5
  MOV SI,0
  CLC
  LOOPER:MOV AL,DATA2[SI]
  ADC DATA[SI],AL
  INC SI
  DEC CX
  JNZ LOOPER
  HLT
  CODE ENDS
END START
一编译就出问题了,下面是图片

我用的是xp的命令提示符,这个是不是不行?
用DOS该怎么用呢?

作者: lvsong1989   发布时间: 2010-12-02

楼主这是我改了之后的代码你对照一下:(首先,楼主你的segment打错了,在第五行;然后是ADC DATA[SI],AL,楼主data后面少了一个数字1;最后是数据段data1里的0f8H如果与data2里的0c1h相加的和超过一个字节的长度了,但这个不会显示错误,只是你将得不到你要的结果)
DATA SEGMENT
  DATA1 DB 0f8H,60H,0ACH,74H,3BH
  DATA2 DB 0C1H,36H,9EH,0D5H,20H
 DATA ENDS
CODE SEGMENT
  ASSUME CS:COdE,DS:DATA
  START: MOV AX,DATA
  MOV DS,AX
  MOV CX,5
  MOV SI,0
  CLC
  LOOPER:MOV AL,DATA2[SI]
  ADC DATA1[SI],AL
  INC SI
  DEC CX
  JNZ LOOPER
  HLT
  CODE ENDS
END START
楼主如果觉得可以就给分吧

作者: liufenfangwan   发布时间: 2010-12-02

dos和命令提示符其实差不多,dos本身是个系统,而命令提示符是windows下一个类似或者模拟dos的一个程序罢了

作者: liufenfangwan   发布时间: 2010-12-02