首页
社区
课程
招聘
[旧帖] [求助]求教这个我照着写的程序不知道哪里错了 0.00雪花
发表于: 2012-5-24 22:33 1371

[旧帖] [求助]求教这个我照着写的程序不知道哪里错了 0.00雪花

2012-5-24 22:33
1371
assume cs:code
data segment
  db 'Welcome to masm!',0
data ends

code segment

start: mov dh,8
           mov dl,3
           mov cl,2
           mov ax,data
           mov ds,ax
           mov si,0
           call show_str
          
           mov ax,4c00h
           int 21h
           show_str:
           push cx
           push si
          
           mov al ,0A0h;160个字节=0A N个字节内,则第N行
          
           dec dh                ;行号在显存中下标从0开始,所以减1
          
           mul dh                ;相当于从第(n-1)*0A0个BYTE单元开始
          
          mov bx,ax                ;第个字符占两个字节
          
          mov al,2                ;列号在显存中下从0开始,以因为偶字节放字符,所以-2
          mul dl
          sub ax,2
          
          add bx,ax                ;此时BX中存放的是行与列号的偏移地址
          
          mov ax, 0b800h;显存开始的地址
          mov es,ax
          
          mov di,0                ;显存偏移
          
          mov al,cl                ;CL 是存放着色的参数,这时候AL存放着色了
          
          mov ch,0                ;下边CX存放的是每次准备处理的字符
s:          mov cl,ds:[si]

                jcxz ok

                mov es:[bx+di],cl
                mov es:[bx+di+1],al
               
                inc si
                add di,2
                jmp short s
                OK:
                pop si
                pop cx
               
                ret
               

          
          
          
          
           code ends
           end start

大家帮下忙,编译不通过
error A2004: symbol type conflict
warning A4023: with /coff switch, leading underscore required for start address : start

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 110
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
这种情况一般不是程序错误,如果要编译DOS程序的话,建议编译时用/omf 连接时用6.0以下版本的连接器。
2012-5-25 09:55
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
没细看,不过,感觉有如下几个错误:
1 汇编语言中,表示字符串结束是$,而不是0。
2 如果是COM文件,应该有个org 100h,EXE不用。
3 下面的错误是符号类型冲突,应该告诉你错在哪一行,你排查一下。
2012-5-25 14:34
0
雪    币: 116
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你能不能编译我看看
2012-5-25 19:04
0
雪    币: 110
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
和你说的很明白了,编译时用/omf就行了,编译DOS程序最好用这个。
连接器也要找个低版本的。发个图让你看看,一个用/coff 一个用/omf
2012-5-25 19:17
0
游客
登录 | 注册 方可回帖
返回
//