[assembly]0821-업무일지
●assembly 개요.
①8088,8086 - 16bit registers: AX, BX, CX, SI, DI, BP, SP, CS, DS, SS, ES, IP, FLAGS
②80286 - 16bit protected mode
③80386 - 32bit protected mode: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP
ex) The AX register
AX
AH(상위) |
AL(하위) |
●Basic Instructions
▶ ; (세미콜론) : 어셈블리에서 이 뒤에오는 것은 주석이라는 의미이다. ( C에서 //과 같다.)
▶MOV : 하나의 데이터를 다른 지역으로 옴기는 명령어.( C에서는 '='과 같다. )
ex) mov dest, src ; dest = src;
▶ADD : 덧셈. ex) add eax, 4(immediate) ; eax = eax + 4; ▶SUB : 뺄셈. ex) sub bx, 10 ; bx = bx - 10; ▶INC, DEC ex) inc ecx ; ecx++; dec dl ; dl--; ●Directives C언어와 비교하면 어떠한 값이나 변수를 정의하는 역할이라고 할 수 있다. 그러나 그것보다 다양한 역할을 한다. 어떤 역할을 하는지 살펴보자. ▶equ : 어떠한 값을 정의 할때 쓴다. ex) PI equ 3.14 ; #define PI 3.14 ▶Data directives
Unit Letter Size byte B double word quad word
1 byte
word
W
2 byte
D
4 byte
Q
8 byte
ten byte
T
10 byte
L1 db 0 ;L1을 1byte크기로 정하고 0을 넣음.
L3 db 110101b ;L3을 1byte크기로 정하고 2진수 110101을 넣음.
L7 resb 1 ;res는 값을 넣지 않는다는 뜻이다.
b는 위의 표에 1byte크기를 뜻한다.
초기화되지 않은 1byte크기 공간을 1개 만든다.
L10 resw 100 ;초기화되지 않은 2byte크기 공간을 100개 만든다.
L11 times 100 db 0 ;0으로 초기화된 1byte크기 공간을 100개 만든다.
L12 db "w","o","r","d", 0 ;1byte크기 공간에 각각 글자 하나씩들어가며 마지막
에는 직접 0(NULL)을 입력 해야한다.