Tuuna Computer Science

[Assembly]어셈블리어 명령어1 본문

Assembly

[Assembly]어셈블리어 명령어1

GuTTe 2018. 4. 23. 12:09
어셈블리어1.

mov eax, 1 -> mov(이동해라) eax라는 공간에 1을 저장해라
(연산자)= mov (오퍼랜드) ,로 구분 c 언어의 함수호출기능과 비슷

EAX ECX EDX EBX ESP EBP ESI EDI 이들은
사용자가 직접 레지스터에 읽고 쓰기 가능한 공간

MOV EDX, EDX 도 가능 즉 전자의 상자에 후자로 넢어쓰는거다


AL의 경우는 낮은 수의 비트를 찾이할 때
AH의 경우는 높은 수의 비트를 찾이할 때

EXTEND(확장된) REAX 64BIT
16진수로 2자리수가 한 바이트를 의미한다(중요)

AX에는 낮은 자리 2바이트  D687이 들어있고
AH는 D6, AL은 87이 들어있다.

MOV CH, 0A 하위 2BYTE에 명령을 할 수도 있다.

다른 한 레지스터에 다른 레지스터의  값을 넣을 때
크기가 같아야 한다 즉 EBX, EDX   (BX,CX)등 크기가 같아야한다.
즉 바이트 값이 같아야한다. AL BH는 1BYTE같음.

CPU Disasm
Address        Hex dump        Command                                  Comments
00401000      B8 01000000   MOV EAX,1
00401005      B9 10000000   MOV ECX,10
0040100A      89C7               MOV EDI,EAX(이럴때에는 바이트수가 값야한다. 현재 4BYTE
0040100C      BC 15000000   MOV ESP,15                               ; Suspicious use of stack pointer
00401011      B9 18000000   MOV ECX,18
00401016      BB 10000000   MOV EBX,10
0040101B      BB 0A000000   MOV EBX,0A
00401020      B8 87D61200   MOV EAX,12D687
00401025      B5 0A              MOV CH,0A

Comments