INCLUDE Irvine32.inc


.data

prompt1 byte "value1 Input : ", 0

prompt2 byte "value2 Input : ", 0

prompt3 byte "choice Input : ", 0

value1 dword 0

value2 dword 0

cho_ dword 0

.code

main PROC

; 정수_1 입력

mov edx, offset prompt1

call WriteString

call Readint

mov value1, eax


; 정수_2 입력

mov edx, offset prompt2

call WriteString

call Readint

mov value2, eax


mov edx, offset prompt3

call WriteString

call Readint

mov cho_, eax

call WriteDec

call crlf


.IF cho_ == 1

call Addnum

.ELSEIF cho_ == 2

call Minus

.ELSEIF cho_ == 3

call Multi

.ELSEIF cho_ == 4

call Diven

.ENDIF

exit

main ENDP


Addnum PROC

mov eax, value1

add eax, value2

call WriteInt

call crlf

exit

Addnum ENDP


Minus PROC

mov eax, value1

sub eax, value2

call WriteInt

call crlf

exit

Minus ENDP

Multi PROC

mov eax, value1

imul eax, value2

call WriteInt

call crlf

exit

Multi ENDP

Diven PROC

xor edx, edx

mov eax, value1

mov ebx, value2

div ebx

call DumpRegs

call crlf

exit

Diven ENDP 

END main


[ you need to zero extend your EDX register before doing the division: 


'어셈블리' 카테고리의 다른 글

어셈블리어 STEP_1  (0) 2017.06.23
어셈블리 + irvine + 문자 출력  (0) 2017.06.22
irvine 어셈블리 사칙연산 (더하기)  (0) 2017.06.18
정수 입력  (0) 2017.06.18
XOR  (0) 2017.06.02