我已经尝试使用.model huge,但我仍然得到这个错误:
.model huge
A2103: Segment Exceeds 64k limit
如何在一个数据段中使用超过64k的数据?我对8086使用MASM
cgvd09ve1#
一个段不能超过64 k,但由于使用.model huge,可以有更多的段,而不仅仅是.data和.code。我不太熟悉MASM语法,但您应该能够执行以下操作:
.data
.code
extraStuff segment ; put whatever you want here. extraStuff ends
这应该给予你另外64 k的内存使用。现在,如果你试图读/写某个跨越多个段的数组,你必须知道什么时候停止,加载下一个段,然后继续,如果你正在做lodsb这样的事情,si从ffff交叉到0000,它不会递增ds到下一个段,它只是绕回(我相信)。
lodsb
si
ffff
0000
ds
1条答案
按热度按时间cgvd09ve1#
一个段不能超过64 k,但由于使用
.model huge
,可以有更多的段,而不仅仅是.data
和.code
。我不太熟悉MASM语法,但您应该能够执行以下操作:这应该给予你另外64 k的内存使用。
现在,如果你试图读/写某个跨越多个段的数组,你必须知道什么时候停止,加载下一个段,然后继续,如果你正在做
lodsb
这样的事情,si
从ffff
交叉到0000
,它不会递增ds
到下一个段,它只是绕回(我相信)。