C语言鱼c 发表于 2014-5-3 15:34:05

这是什么错了??

本帖最后由 C语言鱼c 于 2014-5-3 17:04 编辑

assume cs:code

a segment

                db 1, 2, 3, 4, 5, 6, 7, 8
a ends

b segment
                db 1, 2, 3, 4, 5, 6, 7, 8
b ends

c segment
                db 0, 0, 0, 0, 0, 0, 0, 0
c ends


code segment
start:                        mov ax, c
                              mov ds, ax
                              mov bx, a
                              mov es, bx
                              
                              mov cx, 8
                              mov dx, 0
                        s:      mov cx, es:
                              mov ds:, cx
                              add dx, 2
                        loop s
                        
                              mov ax, b
                              mov es,ax
                              
                              mov cx, 8
                              mov dx, 0
                        s1:      mov cx, es:
                              add ds:, cx
                              add dx, 2
                        loop s1
                              
                              mov ax, 4c00h
                              int 21h
code ends

end start                              
                              
                               这是什么错了????????????????????????????????



豪豪 发表于 2014-5-3 16:46:58

ML.EXE文件   应该和你的002.asm 文件 在同一个文件夹内,
还有 31行的mov es:ax 应该是 mov es,ax

C语言鱼c 发表于 2014-5-3 17:04:15

豪豪 发表于 2014-5-3 16:46 static/image/common/back.gif
ML.EXE文件   应该和你的002.asm 文件 在同一个文件夹内,
还有 31行的mov es:ax 应该是 mov es,ax

ML.EXE文件和002.asm 文件是 在同一个文件夹内

31行修改后还是错,   c 有什么问题??????


www5956 发表于 2014-5-3 17:24:07

不再同意文件夹 找不到你的文件目录请修改下即可!

xiaosawanjava 发表于 2014-5-3 18:01:54

1.asm(12) : error A2008:: c
1.asm(13) : error A2034:
1.asm(14) : error A2008:: c
1.asm(18) : error A2008:: c
1.asm(25) : error A2031:
1.asm(26) : error A2031:
1.asm(35) : error A2031:
1.asm(36) : error A2031:

c segment
                db 0, 0, 0, 0, 0, 0, 0, 0
c ends
第一个问题:命名问题,你不该命名为 "c",把名字改了就行,具体什么原因,可能c是有特别的用处吧。


s:      mov cx, es:[dx]
          mov ds:[dx], cx

第二个问题:[ ]里面如果你想放寄存器,必须是 bx,si,di,,bp 这几个寄存器,当然如果你使用bp的话,那他默认的段地址是SS,其他的寄存器在一般的指令下,默认段寄存器是DS。


C语言鱼c 发表于 2014-5-24 17:12:14

xiaosawanjava 发表于 2014-5-3 18:01 static/image/common/back.gif
1.asm(12) : error A2008:: c
1.asm(13) : error A2034:
1.asm(14) : error A2008:: c


assume cs: code

a segment
        db 1, 2, 3, 4, 5, 6, 7, 8
a ends

b segment
        db 1, 2, 3, 4, 5, 6, 7, 8
        db 1, 2, 3, 4, 5, 6, 7, 8
b ends

d segment
        db 0,0,0,0,0,0,0,0 ;八个零
d ends

code segment

start:                mov ax, d
                        mov ds, ax
                        mov ax, a
                        mov es, ax
                       
                        mov cx, 8
                        mov bx, 0
        s:                mov cx, es:
                        mov ds:, cx
                        add bx, 2
        loop s
                       
                        mov ax, b
                        mov es, ax
                       
                        mov cx, 8
                        mov bx, 0
        s1:                mov cx, es:
                        add ds:, cx
                        add bx, 2
        loop s1
       
       
                        mov ax, 4c00h
                        int 21h
                       
                       
                       
code ends
end start
                现在改好了, 过了好长时间没有碰汇编了,
这次编译已经没有错了,
可是用debug跟踪时,按t,都是一些不懂得代码,跟踪到一条代码时,按什么也没有用,只能关掉窗口。

牡丹花下死做鬼 发表于 2014-5-24 17:32:07

在我的记忆中C是关键字
话说你怎么学汇编了???
你不是在学C啊

C语言鱼c 发表于 2014-5-24 20:53:56

牡丹花下死做鬼 发表于 2014-5-24 17:32 static/image/common/back.gif
在我的记忆中C是关键字
话说你怎么学汇编了???
你不是在学C啊

开学的时候就在学汇编了

我c已经改了,还是不行
页: [1]
查看完整版本: 这是什么错了??