목차 Assembly 기초 mov al, 'A' mov reg32 imm8 'A' 아스키코드는 imm8 로 나타낸다. mov eax, number1 mov reg32, memory cpu 밖으로 bus를 타고 나감으로 속도가 느리다. mov eax, ebx mov reg32, reg32 레지스터 간의 이동 이므로 속도가 빠르다. mov [eax], 10 :: [eax] = *eax 동일한 형식 포인터를 사용한 것은 indirect 라고 한다. (간접 참조) number2 = 10; number1 = number2; 위와 같은 C언어문법 형태로 어셈블리에서는 불가능하다. (Cpu 를 거치지않고 메모리에서의 이동은 두뇌가 없는 것과 같다.) 기계어 보는 법은 다음과 같다. mov number1, eax mo..
Assembly Decreasing size of data ( size 가 줄어드는 data ) mov ax, 0034hmov cl, al ㆍ큰 size 에서 작은 size 에 넣으면 data 의 상위 byte는 잘려 나간다. Increasing size of data mov ah, 0 ㆍah의 양수 공간 확장 movzx eax, ax ㆍeax 는 4byte ax는 2byte 임으로 movzx 로 size를 맞춘다. ㆍzx : 는 양수일때의 공간 확장을 할경우 mov앞에 사용된다. ㆍ비쥬어 스튜디오 에서 디버그 모드에 진입후 단축키alt + 8 을 눌리면 디스어셈블리 창이 보인다. [ C 소스코드 ] [ 위 C소스 코드의 어셈블리 ] ㆍmov 앞의 숫자는 기계어 주소이다. ※ 보수관계에 의해 signed..
Assmbly 첨부파일에는 컴파일 링크시 필요한 asm_io.inc, asm_io.asm 파일과 nasm 컴파일러 올려둡니다. nasm 컴파일은 아래와 같은 경로에서 받을수 있다. nasm 컴파일Ex) asm_io.asm 파일 내부12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512..
Assembly Assembly language ㆍadd eax, ebx 는 C에서 eax = eax + ebx 와 같다. ㆍmov eax, ebx 는 C에서 eax = ebx 와 같다. ML컴파일 ㆍasm 컴파일 (test.obj 파일 생성): ml /c /coff test.asm Ex) assembly 문법 맛보기 ◈ test.asm 파일 12345678910PUBLIC _EMB // 함수호출.386 // 386모드 (.은 c에서 #과동일).MODEL FLAT // FLAT 메모리 사용.CODE // 코드영역 시작_EMB PROC NEAR32 // _EMB함수 시작과 끝은 함수이름으로 사용 mov eax,100 // eax = 100; ret_EMB ENDP // END PROC 의미 END Colo..