Assembly MASM排序数组吐出数组大于100的垃圾

Assembly MASM排序数组吐出数组大于100的垃圾,assembly,masm,Assembly,Masm,我正在开发一个程序,用随机值填充数组,然后按降序排序,然后计算中值。我的程序运行良好,除了当它接收到超过100的值时,程序会抛出垃圾。我很确定错误在我的排序过程或显示列表过程中。这是我认为问题所在的代码。 pastebin的完整代码如下: 这条线造成了混乱: mov ecx, [ebp + 8] ; inner loop is set to request 当内部循环的开始增加时(inc ebx及其后代),重复的数量保持在[ebp+8],这将循环的结束移出数组的边界([ebp+12]

我正在开发一个程序,用随机值填充数组,然后按降序排序,然后计算中值。我的程序运行良好,除了当它接收到超过100的值时,程序会抛出垃圾。我很确定错误在我的排序过程或显示列表过程中。这是我认为问题所在的代码。 pastebin的完整代码如下:


这条线造成了混乱:

mov     ecx, [ebp + 8]  ; inner loop is set to request
当内部循环的开始增加时(
inc ebx
及其后代),重复的数量保持在
[ebp+8]
,这将循环的结束移出数组的边界(
[ebp+12]
)。计数器的起始值(
ECX
)也应减小

在上一行之前插入该行:

dec     dword ptr [ebp + 8]
有些人可能认为这是一个快速而肮脏的解决方案。我“滥用”函数的参数作为局部变量

dec     dword ptr [ebp + 8]