배열을 메모리 블록으로 보기

배열의 데이터는 메모리 내에 인접해 저장됩니다. 파일(배열) 명령어에는 일반적으로 배열 내 시작 주소와 길이가 필요한데, 길이는 요소와 명령어가 읽거나 쓸 요소 수를 결정합니다.
팁: 명령어가 배열의 끝을 벗어나 데이터를 읽으려고 하면 명령어는 해당 배열에 있었던 데이터는 무엇이든 읽고 마치 유효한 데이터인 것처럼 처리합니다(에러 발생 안 함). 명령어가 배열의 끝을 벗어나 데이터를 쓰려고 하면 심각한 폴트가 발생합니다(유형 4, 코드 20).
다음 명령어는 배열 데이터를 메모리의 인접 블록처럼 조작합니다(나머지 명령어는 배열 데이터를 개별 요소로 조작함).
컨트롤러에서 배열 데이터를 저장하는 방법
다음 표에는 배열을 요소 컬렉션으로 보기의 예에 나오는 요소의 순차적 순서를 보여줍니다.
1차원 배열 요소(오름차순)
2차원 배욜 요소(오름차순)
3차원 배욜 요소(오름차순)
one_d_array[0]
one_d_array[1]
one_d_array[2]
one_d_array[3]
one_d_array[4]
one_d_array[5]
one_d_array[6]
차원이 하나 뿐인 배열의 경우 tag_name[subscript_0]에서 subscript_0은 최대값까지 증가합니다.
two_d_array[0,0]
two_d_array[0,1]
two_d_array[0,2]
two_d_array[0,3]
two_d_array[0,4]
two_d_array[1,0]
two_d_array[1,1]
two_d_array[1,2]
two_d_array[1,3]
two_d_array[1,4]
two_d_array[2,0]
two_d_array[2,1]
two_d_array[2,2]
two_d_array[2,3]
two_d_array[2,4]
two_d_array[3,0]
two_d_array[3,1]
two_d_array[3,2]
two_d_array[3,3]
two_d_array[3,4]
2차원 배열의 경우,
tag_name[subscript_0, subscript_1]에서 subscript_0은 0으로 고정되어 있고 subscript_1이 0에서 그 최대값까지 증가합니다. 그런 다음(차원 0이 1보다 크면) subscript_0이 1 증가하고, 그 값으로 고정된 상태에서 subscript_1은 다시 자신의 범위를 증가합니다. 이러한 패턴은 두 첨자가 최대값에 도달할 때까지 계속됩니다.
three_d_array[0,0,0]
three_d_array[0,0,1]
three_d_array[0,0,2]
three_d_array[0,0,3]
three_d_array[0,1,0]
three_d_array[0,1,1]
three_d_array[0,1,2]
three_d_array[0,1,3]
three_d_array[0,2,0]
three_d_array[0,2,1]
three_d_array[0,2,2]
three_d_array[0,2,3]
three_d_array[1,0,0]
three_d_array[1,0,2]
three_d_array[1,0,3]
three_d_array[1,1,0]
three_d_array[1,1,1]
three_d_array[1,1,2]
three_d_array[1,1,3]
three_d_array[1,2,0]
three_d_array[1,2,1]
three_d_array[1,2,2]
three_d_array[1,2,3]
3개 차원이 있는 배열의 경우 tag_name[subscript_0, subscript_1, subscript_2]에서 subscript_0은 0에 고정되어 있는 반면에 subscript_1과 subscript_2는 2차원 배열처럼 증가합니다. 그런 다음(차원 0이 1보다 크면) subscript_0이 1 증가하고, subscript_1과 subscript_2가 그 최대값에 도달할 때까지 고정됩니다. 이러한 패턴은 세 첨자가 모두 최대값에 도달할 때까지 계속됩니다.
차원 변경
AVE, SRT 및 STD 명령어에는 변경할 차원피연산자를 바꿀 수 있는 차원이 있습니다. 이러한 명령어는 이 피연산자를 사용해 명령어에서 배열의 어떤 요소를 읽거나 쓸지 결정하는 데 사용하는 오프셋을 계산합니다.
Array
변경할 차원
Offset
1차원
0
1
2차원
0
dimension_1
1
1
3차원
0
(dimension_1) ? (dimension_2)
1
dimension_2
2
1
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal