목록전체 글 (420)
외로운 Nova의 작업실
안녕하세요, 오늘은 JMP 와 LOOP 명령어가 무엇인지 배워보고 직접 실습해보는 시간을 가져보도록 하겠습니다. JMP 명령어 JMP destination 은 코드레이블로 표시되는 목적지로 무조건 이동시킵니다. 간단한 JMP 명령어 코드를 봐보도록 하겠습니다. top : ... ... JMP top JMP 명령어에의해 위 코드는 반복되게 됩니다. 또한 JMP는 무조건 적이여서 루프를 빠져나가는 다른 방법이 없으면 위와 같은 루프는 끝없이 계속될 것 입니다. LOOP 명령어 LOOP destination 은 ECX가 자동적으로 카운트로 사용되며 루프를 반복할때마다 ECX의 값을 감소시킵니다. 또한, 루프의 목적지는 현재 위치 카운터에서 -128~+127 바이트 내에 있어야합니다. LOOP 명령어의 실행은 ..
안녕하세요, 이번에는 어셈블리에서 간접 주소 지정 이론 및 실습을 진행해보도록 하겠습니다. 직접, 간접 주소 지정 직접 주소 지정의 경우 주소를 직접 써넣는 것입니다. 예를 들어 코드를 보시죠. include c:\assembly\irvine32.inc includelib c:\assembly\irvine32.lib includelib c:\assembly\kernel32.lib includelib c:\assembly\user32.lib .data array BYTE 10, 20, 30, 40 .code main PROC mov al, [00404000b];al = 10 mov ah, [00404001b];ah = 20 mov bl, [00404002b];bl = 30 mov bh, [00404003b..
안녕하세요, 오늘은 데이터 관련 연산자와 디렉티브 이론 및 실습을 해보겠습니다. OFFSET 연산자 OFFSET 연산자는 변수의 주소를 반환하는 연산자 입니다. 정확히 말하면 데이터 세그먼트 시작으로부터의 레이블의 바이트 단위의 거리를 반환해줍니다. 실습으로 한번 알아보겠습니다. include c:\assembly\irvine32.inc includelib c:\assembly\irvine32.lib includelib c:\assembly\kernel32.lib includelib c:\assembly\user32.lib .data bVal BYTE ? wVal WORD ? dVal DWORD ? dVal2 DWORD ? .code main PROC mov eax, OFFSET bVal mov ebx,..