안녕하세요 . 오늘은 어셈블리언어 변수선언을 해보겠습니다
변수선언은 section .bss와 section .data에 합니다
section .bss
초기화하지 않은 변수를 선언합니다. 변수를 선언할때 변수의 크기를 넣어줘야합니다.
resb | 1byte |
resw | 2byte |
resd | 4byte |
resq | 8byte |
resb(Reserve Byte)
resw(Reserve Word)
resd(Reserve Doubleword)
resq(Reserve Quadword)
선언은 「변수명 크기 개수」순서로 하면 됩니다.
1
2
3
|
section .bss
i resb 1 ; 크기가 1byte이고 변수명이 i이고 1개 선언
j resw 2 ; 크기가 2byte이고 변수명이 j이고 2개 선언
|
cs |
section. data
초기화를한 변수를 선언합니다. 변수를 선언할때 크기를 넣어줘야 합니다.
db | 1byte |
dw | 2byte |
dd | 4byte |
dq | 8byte |
db(Define Byte)
dw(Define Word)
dd(Define Doubleword)
dq(Define Quadword)
선언은 「변수명 크기 초기값」순서로 하면 됩니다.
1
2
3
|
section .data
i db 0x01 ; 크기가 1byte이고 변수명이 i이고 초기값이 1
j dw 0x02 ; 크기가 2byte이고 변수명이 j이고 초기값이 2
|
cs |
PRINT_DEC
10진수로 화면에 출력해주는 매크로함수입니다.
사용은「PRINT_DEC 바이트 수, 레지스터명 or 변수명」순서로 하면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
%include "io64.inc"
section .text
global CMAIN
CMAIN:
;write your code here
PRINT_DEC 1,i
NEWLINE
PRINT_DEC 1,j
xor rax, rax
ret
section .data
i db 0x01 ; 크기가 1byte이고 변수명이 i이고 초기값이 1
j dw 0x02 ; 크기가 2byte이고 변수명이 j이고 초기값이 2
|
cs |
'프로그래밍 언어 > 어셈블리언어' 카테고리의 다른 글
어셈블리언어로 HELLO WORLD 출력하기 (0) | 2022.04.03 |
---|---|
어셈블리어란? (0) | 2022.04.01 |