读取文件汇编语言

时间:2012-09-24 01:15:36

标签: file assembly byte

我用汇编语言编写这个文件,它读取的文件长度为64,000字节。我不想将它存储在RAM中,因此我需要将其设置为读取一个字节,操作数据,然后将下一个字节存储在同一地址。

任何想法?

我在Windows XP硬件上运行MS-DOS启动盘(我不知道规格)当我运行它存储64,000时我得到一个EMM错误告诉我需要重新启动。

1 个答案:

答案 0 :(得分:3)

您可以使用DOS int 21h function 48h to allocate 64000字节的内存。它以16字节的倍数分配内存,因此你在BX中传递64000/16 = 4000。

从该函数返回时,AX将包含已分配块的段,您必须将其加载到段寄存器中DSESFS或访问该块之前的GS)。如果将其加载到DS以外的段寄存器中,则需要在访问块的指令前加上段覆盖前缀,如下所示:

mov [es:0], al - 将AL存储到块的第一个字节(块的段位于ES)。

使用分配的内存完成后,可以使用function 49h释放它。