数组定义大了后运行出错

boysuheng 2008-03-19 04:25:19

.386

dseg segment
con db 385 dup(0) ; 384 --- 运行不出错 385 --- 运行出错
;con dd 380 dup(0) ;380 --- 运行不出错 381 --- 运行出错
dseg ends

cseg segment
assume cs:cseg, ds:dseg
start: mov ax, dseg
mov ds, ax

mov ah, 4ch
int 21h
cseg ends
end start

请各位帮个忙,看看,谢谢了


...全文
99 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
boysuheng 2008-03-19
  • 打赏
  • 举报
回复
恩,谢谢各位了,辛苦了,看来得用先进点的编译器,哈哈,不然出毛病丈二和尚摸不着头脑,怪怪的.恩,谢谢了啊.看来这个只能这么搞一段落了.再次感谢
智能卡_Snooper 2008-03-19
  • 打赏
  • 举报
回复
换个编译器试试,以前1000,2000的都没问题。
zara 2008-03-19
  • 打赏
  • 举报
回复
用的是 Masm5? 那如果要使用 .386 类的语句的话, 添加 .model 语句还不行, 需要在 segment 语句上使用 use16 修饰:
cseg segment use16
boysuheng 2008-03-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cnzdgs 的回复:]
从你的描述上来看是因为没有.model所以程序被汇编成了32位程序,应该是加上.model small就可以解决了。注意,.model small要写在最上面,如果先写.386就会被汇编成32位程序。
[/Quote]
请解释一下,为什么汇编成32位的就会出问题啊,32位的应该寻址范围更大,那么怎么就出问题了.谢谢啊
不过请你调试一下,即使把那个.model small 放在第一行也是不行的.真是头大了.
cnzdgs 2008-03-19
  • 打赏
  • 举报
回复
从你的描述上来看是因为没有.model所以程序被汇编成了32位程序,应该是加上.model small就可以解决了。注意,.model small要写在最上面,如果先写.386就会被汇编成32位程序。
boysuheng 2008-03-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cnzdgs 的回复:]
这问题与你用的汇编器有关。
程序最前面加上.model small。
在Start上面一行加上align 10H。
再定义一个堆栈段。
[/Quote]
感谢,
可是我用了你的办法还是不行,运行的时候仍然出错,用的是masm5.0
另外,如果我将.386改成.8086则不会有任何问题
同样,如果,不改成8086而加段修饰use16则也运行正常,希望能解释一下,再次感谢
boysuheng 2008-03-19
  • 打赏
  • 举报
回复
感谢楼上这位朋友,另外一行,我已经注释掉了,请仔细看我发的代码,不是变量同名的问题,再次感谢.编译总是通过的,但是运行时候会出错,无效指令
cnzdgs 2008-03-19
  • 打赏
  • 举报
回复
这问题与你用的汇编器有关。
程序最前面加上.model small。
在Start上面一行加上align 10H。
再定义一个堆栈段。
BAYNPU 2008-03-19
  • 打赏
  • 举报
回复
con db 385 dup(0)
con1 dd 380 dup(0);问题就出在这条指令上
加不加.model small 汇编也能通过
boysuheng 2008-03-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zara 的回复:]
在 .386 语句前加上 .model small 语句再试试了
[/Quote]
和那个似乎没有关系吧,我加了也没用,运行照样出错
BAYNPU 2008-03-19
  • 打赏
  • 举报
回复
.386
dseg segment
con db 385 dup(0)
con1 dd 380 dup(0)
dseg ends
.........
zara 2008-03-19
  • 打赏
  • 举报
回复
.386 语句前加上 .model small 语句再试试了
相关推荐
发帖
汇编语言

2.1w+

社区成员

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
帖子事件
创建了帖子
2008-03-19 04:25
社区公告
暂无公告