.data 디렉티브에서
변수를 선언해주면 된다.
여기서 선언해준 변수는 모두 전역변수이며 , 지역변수는 따로 선언하지 않고 주소로만 가지고 있다.
.data
FIRST_NUMVER1 BYTE 01111101b; byte FIRST_NUMVER1 = 0x7D
FIRST_NUMVER2 BYTE 0ABh; byte FIRST_NUMVER1 = 0xAB; 무조건 앞에 0을 붙여야지 숫자로 인식한다.
FIRST_NUMVER3 BYTE 77o;
FIRST_NUMVER4 BYTE 100;
FIRST_NUMVER6 DWORD 12345678h
FIRST_NUMVER5 WORD 1234h
배열 사용법
STRING1 BYTE "Test" ; string STRING1 = "Test"
FIRST_NUMVER7 WORD 100, 101, 102, 103;
FIRST_NUMVER9 WORD 10 DUP(? ); 초기화 하지 않은 값으로 10개 생성
FIRST_NUMVER8 WORD 10 DUP(0ABCDh); 0ABCD 가 들어있는 10 개짜리 WORD 배열
계산식 은 컴파일러가 미리 계산해서 변수에 집어 넣는다.
Instruction Operands
3 source operand 자리에는 3가지 구조가 올수 있다.
1. 상수
2. 레지스터
3. 메모리 주소
mov EAX , 100 ; EAX = 100 대입
mov EAX , EBX ; EAX = EBX
mov EAX , FIRST_NUMVER6 ; EAX = FIRST_NUMVER2 memory;
3. 메모리 주소를 넣을 때는 2가지 mode 가 존재한다.
1. direct mode - 위와 같이 직접적으로 주소를 넣음
2. regist indirect mode - 레지스터를 넣는데 레지스터는 주소 값을 가지고 있음
mov EAX , FIRST_NUMVER6 ; memory direct
mov EAX , [ESP] ; register indirect
'공부,일 > 어셈블리' 카테고리의 다른 글
덧셈 뺄셈 숙제 코드 (0) | 2021.08.26 |
---|---|
여러가지 어셈블리 명령어 (0) | 2021.08.25 |
어셈블리 수업 기초 (0) | 2021.08.24 |
스택 ebp ,esp레지스터 , 함수 호출 , return(수업준비) (0) | 2021.08.20 |
ch4 4.4 Division Instructions (0) | 2021.08.18 |
댓글