*배열 : 동일한 타입의 데이터 묶음
=> element : 구성하는 각 값
=> Index : 배열의 위치를 가리키는 숫자
*주소
=> [ 시작 주소 + 인덱스 * 데이터 크기 ]
a db 0x01, 0x02, 0x03, 0x04, 0x05 ; 5 * 1 = 5byte
b times 5 dw 1 ; 5 * 2byte = 10byte
%include "io64.inc"
section .text
global CMAIN
CMAIN:
mov rbp, rsp; for correct debugging
mov rax, a
xor ecx, ecx
LABLE_PRINT_A:
; PRINT_HEX 1, [a + ecx]
; NEWLINE
inc ecx ; add ecx, 1
cmp ecx, 5
jne LABLE_PRINT_A
xor ecx, ecx
LABLE_PRINT_B:
PRINT_DEC 2, [b + ecx * 2]
NEWLINE
inc ecx
cmp ecx, 5
jne LABLE_PRINT_B
xor rax, rax
ret
section .data
msg db 'Hello World', 0x00
a db 0x01, 0x02, 0x03, 0x04, 0x05 ; 5 * 1 = 5byte
; 리틀엔디안
b times 5 dw 1 ; 5 * 2byte = 10byte
section .bss
num resb 1
*[ a + ecx ] / [ b + ecx * 2 ] 의미
b -> dw 5개로 이루어져있다.
본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.
'프로그래밍 > C++' 카테고리의 다른 글
#12. 스택 메모리 & 스택 프레임 ( Stack Frame ) (0) | 2022.07.15 |
---|---|
#11. 함수 기초 (0) | 2022.07.15 |
#9. 어셈블리 반복문 (0) | 2022.07.15 |
#8. 어셈블리 분기문 (0) | 2022.07.15 |
#7. 시프트, 논리 연산 (0) | 2022.07.15 |