프로그래밍 언어/어셈블리언어

어셈블리언어 변수선언하기

원원 2022. 4. 5. 17:12

안녕하세요 . 오늘은 어셈블리언어 변수선언을 해보겠습니다

변수선언은 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