论坛: 编程破解 标题: windowsxp下的汇编怎么总是出毛病? 复制本贴地址    
作者: guessme [guessme]    论坛用户   登录
我在xp下进行汇编语言的编译和连接,可是连接的时候总是失败。
我编译的源程序如下:
data segment
string db 'hellow word!'
data ends

stack segment para stack 'stack'
      dw 10 dup(?)
stack ends

code segment
main proc far
    assume cs:code,ds:data,ss:stack
    mov ax,data
    mov ds,ax
 
    call display
    ret
main endp

display proc near
    mov ah,2h
    mov dx,offset string
    int 21h
    ret
display endp
end  main
它在windows 98下编译和连接的很好可是在xp下编译可以通过,但连接不能通过,它显示下面的内容:
Microsoft (R) Overlay Linker  Version 3.65 
Copyright (C) Microsoft Corp 1983-1988.  All rights reserved.

Run File [LLL.EXE]: List File [NUL.MAP]: Libraries [.LIB]: LLL.OBJ(lll.txt) : fatal error L1103: attempt to access data outside segment bounds
pos: 8B Record type: 4AFE
上面的都是在link.exe后输出的内容,我把它重定向输出得到的结果粘贴到这里了。
286大哥,这到底是怎么回事呀?

地主 发表时间: 05-11-04 21:32

回复: wind [windlove]   论坛用户   登录
你用的是什么编译器啊?

B1层 发表时间: 05-11-05 09:54

回复: guessme [guessme]   论坛用户   登录
我用的是masm.exe编译的,然后用link.exe连接。
哦 ,对了,上面的那个字符串:string db 'hellow world!$'
后面少了一个$符号,现在我把它添上,即使有那个符号也不能通过连接,倒是能通过编译。
怎么没几个人回帖呀,xp下不单单这个程序不能通过编译连接,别的也不能,我在windows 98下能编译连接成功的在这里都不行了!!!
请个位高手指点一下。
先谢了。

B2层 发表时间: 05-11-05 18:29

回复: 286 [unique]   版主   登录
把栈段设的大一点。
dw 10 dup(?)
改成
dw 1000 dup(?)


B3层 发表时间: 05-11-08 10:25

回复: zxdlovedjw [zxdlovedjw]   论坛用户   登录
这和堆栈大小没什么关系 你把函数中para stack 'stack' 这句删除再试试
     

B4层 发表时间: 05-11-10 14:42

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号