数组定义大了后运行出错

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

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


...全文
115 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
boysuheng 2008-03-19
  • 打赏
  • 举报
回复
恩,谢谢各位了,辛苦了,看来得用先进点的编译器,哈哈,不然出毛病丈二和尚摸不着头脑,怪怪的.恩,谢谢了啊.看来这个只能这么搞一段落了.再次感谢
用户 昵称 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 语句再试试了

21,457

社区成员

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

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