Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 도커
- 파이썬
- mysql on docker
- 도커 mysql
- streamsets 강의
- 도커 elk
- c++
- 스트림셋
- MySQL
- 데이터베이스
- mysql docker
- python
- 코딩
- 푸시푸시
- 백준
- 자바
- elk stack
- C언어
- 알고리즘
- 앤서블 설치
- 정보처리기사
- docker
- 클라우드
- c
- nvidia docker
- ansible install
- 데이트
- 도커 시작하기
- 스트림셋이란?
- java
Archives
- Today
- Total
리그캣의 개발놀이터
어셈블리 - 계산기 본문
계산기 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | TITLE Calculator INCLUDE Irvine32.inc .data str1 BYTE "두개의 숫자를 입력하시오:",0 str2 BYTE "1.덧셈",0Dh,0Ah, "2.뺄셈",0Dh,0Ah, "3.곱셈",0Dh,0Ah, "4.나눗셈",0Dh,0Ah,0 str3 BYTE "선택: ",0 str4 BYTE "결과: ",0 num1 DWORD ? ;정수1 num2 DWORD ? ;정수2 cnt DWORD 0 .code main PROC mov edx, OFFSET str1 call WriteString call Crlf call ReadInt ;num1 ;num1, num2받음 mov eax, num1 call ReadInt ;num2 mov eax, num2 mov edx, OFFSET str2 ;menu출력 call WriteString call Crlf mov edx, OFFSET str3 call WriteString call Crlf call ReadInt ;선택번호 받음 call Crlf mov edx,OFFSET str4 call WriteString cmp eax,1 je Menu1 cmp eax,2 je Menu2 cmp eax,3 je Menu3 cmp eax,4 je Menu4 jmp DONE ;아무것도 선택하지 않음. Menu1:call Addnum jmp DONE Menu2:call Subnum jmp DONE Menu3:call Multiplication jmp DONE Menu4:call Division jmp DONE DONE: exit main ENDP Addnum PROC mov eax,num1 add eax,num2 call WriteDec call Crlf ret Addnum ENDP ;더하기 함수 종료 Subnum PROC mov eax,num1 sub eax,num2 call WriteDec call Crlf Subnum ENDP Multiplication PROC mov ecx,num2 mov eax,0 L1: add eax,num1 loop L1 call WriteDec call Crlf Multiplication ENDP Division PROC mov eax,num1 mov ebx,0 mov ecx,num1 L1: inc cnt mov eax,num1 add ebx,num2 cmp eax,ebx je DONE2 ;eax=ebx이면 몫은 카운트횟수 jb DONE3 ;eax<ebx이면 몫은 카운트 횟수 -1 loop L1 DONE3: dec cnt DONE2: mov eax,cnt call WriteDec call Crlf ret Division ENDP END main | cs |
'프로그래밍 언어 > Assembly' 카테고리의 다른 글
어셈블리 - 문자열 복사 (0) | 2018.01.22 |
---|---|
어셈블리 - 대문자를 소문자로 변환 (0) | 2018.01.22 |
어셈블리 - 배열 교환 (0) | 2018.01.22 |
어셈블리 - 과일 게임 만들기 (0) | 2018.01.22 |
어셈블리 - 문제풀기2 (0) | 2018.01.22 |
Comments