알맹이방
어셈블리어 10. inc, dec 본문
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이 감소한 것을 알 수 있다.
'SISS (2017-2018) > 어셈블리어' 카테고리의 다른 글
어셈블리어 12. 메모리의 간접참조 (0) | 2018.08.05 |
---|---|
어셈블리어 11. add, sub (0) | 2018.07.30 |
어셈블리어 09. JMP 2 (0) | 2018.07.22 |
어셈블리어 08. JMP (0) | 2018.07.22 |
어셈블리어 07. 리틀엔디안, 빅엔디안 (0) | 2018.07.22 |