==========================================================================================
ASSEMBLY
==========================================================================================
<ASSEMBLY>
=DEBUG
ml /c /coff /Zi 파일명
link /debug /subsystem:console /entry:start /out:실행파일명 obj파일명 io.obj kernel32.lib
=Windbg.exe 실행
=Step Into로 코드 진행
=View - Register
=View - Memory : 시작 주소 지정
=Listing File
ml /c /coff /Fi 소스파일명
<main.lst>
=상수 Operands
(대소문자 구분 x)
mask BYTE 01111101b
mask BYTE 7dh
mask BYTE 125
mask BYTE 175q
-
char1 BYTE 'm' ; value is 6D
char2 BYTE 6dh ; value is 6D
string1 BYTE "Joe" ; value is 4A 6F 65
string2 BYTE "Joe's" ; value is 4A 6F 65 27 73
words WORD 10, 20, 30, 40
DblArray DWORD 100 DUP(999)
=Instruction Operands
mov al, '/' ; al = '/';
=Coping Data
mov Count Number ; illegal => cpu를 거치지 않고서는 불가능 함
int Number = 100;
int Count;
Count = Number;
=>
mov eax , Number
mov Count , eax
=MOV명령어 뒤 오는 OP1, OP2 종류 설명 표
-
mov REG MEM
REG
IMM
-
mov MEM REG
IMM
-