回首以惘然 发表于 2009-6-13 17:43

一个汇编的程序。帮我看看哪里错了。郁闷

本帖最后由 回首以惘然 于 2009-6-13 17:44 编辑

再次麻烦大家。帮我看看。为什么编译错误

.386
.model flat,stdcall
option casemap:none
assume code:cs stack:ss data:ds

data segment
db '1. display      '
db '2. brows      '
db '3. replace      '
db '4. modify       '
data ends

stack segment
dw 0,0,0,0,0,0,0,0
stack ends


code segment

start:mov ax,stack
      mov ss,ax
      mov sp,16
      mov ax,data
      mov ds,ax
      mov cx,4
      mov bx,0
    s:push cx
      mov si,0
      mov cx,4
   s0:mov ax,3
      and ax,0000000011011111b
      mov 3,al
      inc si
      loop s0
      add bx,16
      pop cx
      loop s
      mov ax,4c00h
      int 21h
code ends

end start
end
=======================================================
补充一下。我用的编译器是:RadASM
编译错误提示是:
D:\RadASM\Masm\Projects\1.asm(6) : error A2008: syntax error : code
D:\RadASM\Masm\Projects\1.asm(32) : error A2206: missing operator in expression
D:\RadASM\Masm\Projects\1.asm(34) : error A2206: missing operator in expression
D:\RadASM\Masm\Projects\1.asm(22) : error A2004: symbol type conflict
D:\RadASM\Masm\Projects\1.asm(25) : error A2004: symbol type conflict

构建时发生错误.

qyc0129 发表于 2009-6-13 17:52

不会这个
只会E
帮不了你

zzage 发表于 2009-6-13 23:10

assume code:cs stack:ss data:ds
明显写错了...
应该为:
assume cs:code,ss:stack,ds:data

mov ax,3
:dizzy: ...这种基址变址寻址方式LZ不觉得很奇怪吗....

回首以惘然 发表于 2009-6-16 08:47

本帖最后由 回首以惘然 于 2009-6-16 08:49 编辑

mov ax,3我本来是想写成的   但怕编译器不认。就给改成那样了。谢谢楼上的大哥了

总是你来帮助我。HOHO```

把assume cs:code,ss:stack,ds:data
改了也不对。我的编译器是RadASM   寻址改成也是错的。我无语了

zzage 发表于 2009-6-16 11:08

这是DOS程序!
页: [1]
查看完整版本: 一个汇编的程序。帮我看看哪里错了。郁闷