어셈블리 – ADD/SUB 명령 MASM32 코드 예제

이 명령은 이름에서도 보실 수 있듯이 더하기/빼기 명령이다.

실행 결과가 0일 경우 제로 플래그를 설정(1)한다. (만약 EAX 가 1 일때에 SUB EAX, 1을 하게 될 경우 제로 플래그가 설정된다.)

masm5.asm
.586

.model flat, stdcall

option casemap:none

.data

message db “1234”

.code

main    proc

; 스택 프롤로그 부분이다.

push ebp

mov ebp, esp

sub esp, 4h

mov dword ptr [ebp-4], 00401FE3h

mov eax, dword ptr [ebp-4]

; EAX 레지스터값에 1dh를 저장한다.

add eax, 1dh

; EAX 레지스터에서 가르키는 주소값에 1dh를 뺀다.

sub dword ptr [eax], 1dh

pop ebp

retn

main endp

end main

; 실행결과

; eax=00402000

; 00402000=31 32 33 34 à 14 32 33 34

[내용] add, sub 명령 예제

실행 결과는 분석해 보면 다음과 같다.

ADD명령으로 EAX주소를 데이터가 저장된 00402000을 가르키게 되고, 해당 주소에 저장된 값” 31 32 33 34″를 DEC명령을 이용해 뺄셈 연산을 진행하게 된다.

[그림] ADD, SUB 명령을 이용한 연산

Facebook Comments

Leave A Reply

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.