大白鲨 发表于 2014-4-5 14:53:58

实验13(3)编译连接出错,怎么回事

assume cs:code
code segment
s1: db 'Good,better,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db 'And better ,best.','$'
s : dw offset s1,offset s2,offset s3,offset s4
row: db 2,4,6,8
start:mov ax,cs
          mov ds,ax
          mov bx,offset s
          mov si,offset row
          mov cx,4
   ok:mov bh,0
      mov dh,
          mov dl,0
          mov ah,2
          int 10h
          
          mov dx,
          mov ah,9
          int 21h
          inc si
          add bx,2
          
          loop ok
          mov ax,4c00h
          int 21h
code ends
end start


大白鲨 发表于 2014-4-5 15:21:29

我刚才试了一下,,将代码中的是s1,s2,s3,s4,s,row后的冒号:去掉,发现程序就可以运行了,为啥去掉冒号就行了呢?

向往青莲 发表于 2014-4-5 16:49:06

不去冒号。。。s1,s2,s3,s4,s,row代表的是标签。。。就像20页。。30页。。。这中。。。
去掉貌似。。。s1,s2,s3,s4,s,row代表的字符串首地址。。。就像第20页,第30页。。。
ps: 比方可能有点坑哈。。。淡定。。淡定

青玄 发表于 2014-4-5 18:28:56

你看一下,我把冒号没去掉,程序也可以运行,我估计你用的编译器是masm6.0吧!而我用的是masm5.0不同版本的编译器它支持的标准是不同的对于masm6.0来说的话,可能不支持前面有冒号吧!你要么用masm5.0,不用去掉冒号,也可以通过:







大白鲨 发表于 2014-4-9 19:37:19

谢谢,也许是编译器的问题

黄种人 发表于 2014-6-27 14:38:05

不同的编译器,语法有丢丢不同
页: [1]
查看完整版本: 实验13(3)编译连接出错,怎么回事