GaGe

어셈블리어 10. inc, dec 본문

SISS (2017-2018)/어셈블리어

어셈블리어 10. inc, dec

Sorrel 2018. 7. 30. 16:05

inc와 dec의 명령어를 설명하겠다.

inc는 increase의 약자로 값을 하나 증가시키는 의미이고

dec은 decrease의 약자로 값을 하나 감소시키는 의미이다.

inc와 dec는 인자가 하나인 것을 기억하자.

인자의 자리에는 reg이 올 수도 있고 mem이 올 수도 있다.

 

 

inc를 사용해서

inc eax

inc ebx

inc ecx

inc edx

명령어를 쳐봤다.

 

결과를 보면 eax, ebx, ecx, edx에 값이 하나씩 증가된 것을 볼 수 있다.

 

 

al이나 ax 와 같은 2바이트 레지스터에도 적용할 수 있다.

 

 

al과 ax가 하나씩 증가되어 eax 전체가 3이 된 것을 알 수 있다.

 

 

 

메모리에 넣으려고 하니까 eperand 사이즈를 맞추라는 경고가 뜬다.

저번 시간에 했던 것을 떠올려보자.

 

 

dword ptr로 사이즈를 지정해준다.

 

 

dword ptr

word ptr

byte ptr 하나씩 다 해보자.

 

 

dword ptr은 402000에서부터 4바이트만큼 범위 중에 1이 증가하는데

리틀엔디안이니 맨 앞이 1이 증가한 것을 알 수 있다.

 

 

word ptr도 2바이트 만큼 중에 1이 증가하니 맨 앞이 1 증가했다.

 

byte도 402000부터 1바이트 범위만큼 중에 1 증가이니 맨 앞이 증가했다.

 

 

dec도 같은 원리로 사용하면 된다.

저렇게 명령어를 써놓고 실행해보자.

 

eax가 1 감소했다.

ebx가 1감소했다.

 

ax가 1 감소했다.

 

 

402000에서부터 4바이트의 범위 중에 1이 감소하는데 리틀엔디안이니 맨 앞이 1이 감소한다.

 

 

word ptr도 마찬가지로 402000부터 2바이트의 범위 중에 맨 앞이 1이 감소한다,

 

 

byte도 마찬가지의 원리로 맨 앞이 1이 감소한 것을 알 수 있다.

 

Comments