irvine 어셈블리 계산기
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 |