. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  代码出错了,帮忙看看  [已解决] 回复[ 5次 ]   点击[ 312次 ]  
haolly
[帖 主]   [ 发表时间:2011-12-05 12:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2011-11-30 20:32
assume cs:code,ds:data
data segment
        db 'welcome to masm!'
data ends

code segment
        start:
        mov ax,b800h
        mov es,ax
        mov ax,data
        mov ds,ax
        
        mov cx,16
        mov bx,0
        s0:
        mov byte ptr es:[bx+b7fh],[bx]
        add bx,2
        loop s0                                        ;放入data中的数据
        
        mov bx,1
        mov cx,8
        s1:
        mov byte ptr es:[bx+b7fh],8ah                        ;放入背景色
        add bx,2
        loop s1
        
        mov cx,2
        s2:
        mov byte ptr es:[bx+b7fh],ach                        ;放入背景色
        add bx,2
        loop s2
        
        mov cx,6
        s3:
        mov byte ptr es:[bx+b7fh],89h                        ;放入背景色
        add bx,2
        loop s3
        
        mov ax,4c00h
        int 21h
code ends
end start


d:\RadASM\Masm32\Bin\ML.EXE /c /coff /Cp /nologo /I"d:\RadASM\Masm32\Include" "F:\masm5\proj\ex9.asm"
 Assembling: F:\masm5\proj\ex9.asm
F:\masm5\proj\ex9.asm(8) : error A2006: undefined symbol : b800h
F:\masm5\proj\ex9.asm(16) : error A2006: undefined symbol : b7fh
F:\masm5\proj\ex9.asm(23) : error A2006: undefined symbol : b7fh
F:\masm5\proj\ex9.asm(29) : error A2006: undefined symbol : b7fh
F:\masm5\proj\ex9.asm(35) : error A2006: undefined symbol : b7fh
F:\masm5\proj\ex9.asm(10) : error A2004: symbol type conflict
F:\masm5\proj\ex9.asm(42) : warning A4023: with /coff switch, leading underscore required for start address : start

构建时发生错误.
总共编译时间 78 毫秒
tomato
[第1楼]   [ 回复时间:2011-12-05 22:03 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
十六进制数据开头如果是字母要加个0.
haolly
[第2楼]   [ 回复时间:2011-12-06 11:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2011-11-30 20:32
回复:[第1楼]
------------------
assume cs:code,ds:data
data segment
        db 'welcome to masm!'
data ends

code segment
        start:
        mov ax,0b800h
        mov es,ax
        mov ax,data
        mov ds,ax
        
        mov cx,16
        mov bx,0
        s0:
        mov byte ptr es:[bx+0b7fh],[bx]
        add bx,2
        loop s0                                        ;放入data中的数据
        
        mov bx,1
        mov cx,8
        s1:
        mov byte ptr es:[bx+0b7fh],8ah                        ;放入背景色
        add bx,2
        loop s1
        
        mov cx,2
        s2:
        mov byte ptr es:[bx+0b7fh],0ach                        ;放入背景色
        add bx,2
        loop s2
        
        mov cx,6
        s3:
        mov byte ptr es:[bx+0b7fh],89h                        ;放入背景色
        add bx,2
        loop s3
        
        mov ax,4c00h
        int 21h
code ends
end start

D:\RadASM\Masm32\Bin\ML.EXE /c /coff /Cp /nologo /I"D:\RadASM\Masm32\Include" "F:\masm5\proj\ex9.asm"
 Assembling: F:\masm5\proj\ex9.asm
F:\masm5\proj\ex9.asm(16) : error A2070: invalid instruction operands
F:\masm5\proj\ex9.asm(10) : error A2004: symbol type conflict
F:\masm5\proj\ex9.asm(42) : warning A4023: with /coff switch, leading underscore required for start address : start

构建时发生错误.
总共编译时间 62 毫秒
还有错误
tomato
[第3楼]   [ 回复时间:2011-12-06 19:17 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
编译器已经告诉楼主在第几行出错了,楼主要学会查找错误才行。
“mov byte ptr es:[bx+0b7fh],[bx]”这条指令不对,不能从内存直接向内存传送。
tomato
[第4楼]   [ 回复时间:2011-12-06 19:19 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
楼主先看一下是哪行出错了,然后找到相应的行,看一下有可能是什么错误。
haolly
[第5楼]   [ 回复时间:2011-12-07 11:29 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2011-11-30 20:32
此贴由 贴主 于 [ 2011-12-07 11:29 ] 结贴。 结贴原因:问题已解决
得分情况: 4楼(tomato):8分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved