汇编初学者,问个问题
怎么用汇编做一个测试1M内存好坏的程序,在只有1M内存的情况下
汇编只学了一点点,发现具体做一个题目很难啊,很多细节都不知道
比如这个问题,只有1M内存的话,程序所在的内存位置怎么测呢,先指定程序段的位置,测试完其它部分后再把程序段移到测试过的位置再来测试原先放程序的内存吗,具体怎么做呢,我只知道用ORG先指定初始位置,怎么再移到其它位置就不知道了
还有,有些内存地址是规定好了有特殊用途的,能不能往里面写数据啊,是不是测试的时候应该避开这些地方
另外,测好坏的话是不是要把0-65535的所有数字都写一遍读一遍,完全符合才算好,还是只要写几个特定数字就行了
还有就是,如果系统只有1M内存,我往比1M多的地址也就是不存在的地方写东西,会是什么反应呢,报错吗,还是得到一个不确定的数字?
怎么可以模拟这样一个只有1M内存的环境啊,最好还可以指定内存某处是坏的,不然测不出效果啊,我是在windows2000下用TASM来弄的,具体运行时会不会出什么问题
希望高人回答我的问题啊,最好有源代码让我参照着学习一下
本来想多出点分的不过只能给100
[解决办法]
呵呵, 楼主的问题是够多的. 对内存的测试, 一般是对还为使用到的进行的. 使用到的内存, 无论是被系统还是应用程序自己使用到的部分, 是没有问题的, 否则, 系统就不能正常运行了. 对内存的测试, 不是 0-65535 进行的. 由于内存是以字节编址的, 所以, 即便是以这个模式, 也只是 0-255. 但通常都是以些特定的内存字节位图数据进行, 一般是依次写入特定的数据, 然后在读出, 看是否一致. 这些数据往往为: 00, FF, 55, AA, ...
dos 实模式下, 寻址范围就只能最大到 1M. 还有需要是 Bios, 外设以及系统占用的部分. 所以, 不会存在写入到 1M 之外的地方.
模拟的问题, 呃, 我也不会啊. 从来没有写过这方面的东西
[解决办法]
对所有内存地址,每字节都分别测试读写FF和00,