我在创建或运行程序时遇到错误。我想循环数组并将第一个元素移动到结尾,并基本上将每个元素在索引中向上移动一个。 我知道我需要索引,但这对我来说是令人困惑的语法部分。
请帮忙!
INCLUDE Irvine32.inc
.386
.model flat,stdcall
.stack 4096
ExitProcess proto,dwExitCode:dword
.data
array dword 10h,20h,30h,40h
arraySize dword lengthof array
.code
main proc
mov ecx, 0
loop_start:
cmp ecx, 7
jge loop_end
mov eax, array[ecx*4]
; Use Irvine's WriteHex to display value in register eax
call WriteHex
call Crlf
add ecx, 1
jmp loop_start
loop_end:
INVOKE ExitProcess, 0
main endp
end main
感谢任何帮助!
答案 0 :(得分:0)
我建议首先用更高级别的语言编写您想要的算法:
void rotateArray(uint32_t *arr, size_t num)
{
uint32_t temp = arr[0];
for (size_t i = 0; i<num-1; i++) //loop is essentially a memmove()
{
arr[i] = arr[i+1];
}
arr[num-1] = temp;
return;
}
这应该很容易编译,即使对于 meatbag 人来说也是如此。