使用masm32,可以编译无法连接

nimingzhe2008 2011-12-07 02:36:16
显示:error lnk2001 unresolved external symbol _start
我的代码
code segment
assume cs:code
start:mov dx,200h
in al,dx
not al
out dx,al
jmp start
ret
code ends
end start
...全文
169 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nimingzhe2008 的回复:]能帮我改改代码吗,使它能够被link链接成exe文件[/Quote]要能 link 生成 exe 文件,要修改的不是代码,而是换 Masm5/6 这样的支持 dos16 类程序的汇编链接软件。当然了,作为一个正常的 exe 文件的话,你的代码存在死循环 (jump start) 和没有正确的结束程序返回 dos 的功能调用(这个一般采用 int21h 的 4ch 功能)。
zhaopeng2511 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zhaopeng2511 的回复:]
楼主改成下面代码试试……


Assembly code
code segment
assume cs:code
main proc far
start:
mov dx,200h
in al,dx
not al
out dx,al
jmp start
r……
[/Quote]
最后那个end start 改成end main
zhaopeng2511 2011-12-07
  • 打赏
  • 举报
回复
楼主改成下面代码试试……

code segment
assume cs:code
main proc far
start:
mov dx,200h
in al,dx
not al
out dx,al
jmp start
ret
main endp
code ends
end start
nimingzhe2008 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zara 的回复:]

没接触过 proteus 这个。是不是不应该用 exe 格式,而应该用 com/bin 格式吧。具体的,看下它的说明或要求呢?
[/Quote]
能帮我改改代码吗,使它能够被link链接成exe文件
nimingzhe2008 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zara 的回复:]

没接触过 proteus 这个。是不是不应该用 exe 格式,而应该用 com/bin 格式吧。具体的,看下它的说明或要求呢?
[/Quote]
软件给的例子中就是用的exe
zara 2011-12-07
  • 打赏
  • 举报
回复
没接触过 proteus 这个。是不是不应该用 exe 格式,而应该用 com/bin 格式吧。具体的,看下它的说明或要求呢?
nimingzhe2008 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zara 的回复:]

masm5 怎么会不好使呢?这个用 Masm5 是合适的。用 Masm32 反而不对了。
[/Quote]
我把masm5生成的.exe程序放进去后,显示Invalid internal memory size==NULL(Internal Memory mode)
zara 2011-12-07
  • 打赏
  • 举报
回复
masm5 怎么会不好使呢?这个用 Masm5 是合适的。用 Masm32 反而不对了。
nimingzhe2008 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zara 的回复:]

masm32 的源程序,不是这样的吧。基本框架大致是:Assembly code

.386
.model flat, stdcall
option casemap:none


include windows.inc
……
[/Quote]
好复杂,我只是想生成个小程序放到proteus的8086芯片里。用masm5生成的exe文件不好使,所以我才想换成masm32试试
gsy999 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 nimingzhe2008 的回复:]
显示:error lnk2001 unresolved external symbol _start
我的代码
code segment
assume cs:code
start:mov dx,200h
in al,dx
not al
out dx,al
jmp start
ret
code ends
end start
[/Quote]
使用link16 链接
不过你的程序是死循环。
zara 2011-12-07
  • 打赏
  • 举报
回复
masm32 的源程序,不是这样的吧。基本框架大致是:

.386
.model flat, stdcall
option casemap:none


include windows.inc
include kernel32.inc
include user32.inc
include gdi32.inc

includelib kernel32.lib
includelib user32.lib
includelib gdi32.lib


.const


.data?


.code

main proc


ret

main endp


end main

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧