Debug Mode |
=> Step Into(F8 of F11)를 누르면 Debug가 진행. 레지스터의 변한 값이 EAX, EBX 에 저장되며, 레지스터에 저장될때는 Big Endian 으로 적힌다. 반대로 메모리에는 little Endian 으로 적힌다. => View에서 보고싶은 옵션을 선택함. Memory는 smart로 잡아주었다. (entry point가 smart이므로) |
APPENDIX E |
=> 위의 Debug Mode 의 값을 보면 알 수 있듯이 EAX는 B8의 Opcode(기계어) 를 가지고, EBX는 BB를 가진다. => 00 00 03 e8 은 1000의 값을 Hex 로 변경 한 것임. |
--------------- 4장 Base Instruction-------------------
Coping Data ( mov ) |
|||||||
레지스터-상수 => 여기서 register16의 Number of Bytes 의 (plus prefix byte) 라는 말은 , 예를 들어 debug mode에서 확인하면 => 100은 Hex 로 변환하면 64로 모두 똑같이 변환되지만, al 과 eax는 B0, B8로 시작하는반면, ax는 66으로 시작한다 이때, 66을 prefix 라 그러고, 쓰임새는 eax 레지스터와 비교해주기위해서 먼저 쓰이는 값이다. => 메모리->상수 메모리-상수
=> Register to Register 는 386기준으로 속도가 '3' 으로 빠른반면, Register to Memory 는 속도가 '5' 로 주기가 길다. 즉, CPU 밖으로 Bus를 이용해 나가면 속도가 느리다는 것을 알 수 있다. |
------ 참조 PDF------
Introduction to 80x86 Assembly Language and Computer Architecture~tqw~_darksiderg.pdf
Jones and Bartlett Publishers Introduction to 80x86 Assembly Language and Comp Architect.pdf
----------------------
'Assembly' 카테고리의 다른 글
2013.08.28_ASM_Basic Instruction (0) | 2013.08.28 |
---|---|
2013.08.27_EFLAGS레지스터의구조 (0) | 2013.08.27 |
2013.08.26_ASM_Constant, Instruction Operand(s) 해석 (0) | 2013.08.27 |
2013.08.23_ASM_Debug 모드 및 이론설명 (0) | 2013.08.23 |
2013.08.21_Visual Studio 10.0 을 이용한 Disassembly (0) | 2013.08.22 |