【发布时间】:2022-01-15 01:11:10
【问题描述】:
我想知道是否有任何方法可以为代码段(特别是 256 个)保留更多字节,因为我需要所有段至少有 256 个字节长,并且我需要在所有段中存储数据。我尝试了适用于所有其他细分市场的 resb,但这似乎不适用于 cs。
【问题讨论】:
-
我需要所有段至少有 256 个字节长。这种说法没有意义。段不是可变长度的。您是说这里的部分吗?
我想知道是否有任何方法可以为代码段(特别是 256 个)保留更多字节,因为我需要所有段至少有 256 个字节长,并且我需要在所有段中存储数据。我尝试了适用于所有其他细分市场的 resb,但这似乎不适用于 cs。
【问题讨论】:
在 BSS 部分,您可以使用 RESB、RESW、...
在数据部分,您可以使用DB、DW、...
在 CODE 部分你通常只写指令,但你也可以使用DB, DW, ...
访问这些数据需要使用像 mov ax, [cs:bx] 这样的段覆盖前缀。
此外,您还可以在 CODE 和 DATA 部分中使用 ALIGN 宏。
假设您的 CODE 部分仅包含一条指令 RET,而您让它跟在 ALIGN 256 之后,那么新的 CODE 部分将有 256 个字节:1 次 RET 和 255 次 NOP。
【讨论】: