[어셈블리어] 최소공약수 구하는 프로그램 3
페이지 정보
작성일 23-01-24 22:23
본문
Download : [어셈블리어] 최소공약수 구하는 프로그램.hwp
iter 프록시져가 끝나면 Recur 프로시져를 호출한다.
■ GCD ● 문제개요 Assembly Language를 이용하여 두 정...
● 소스
INCLUDE Irvine32.inc
idiv ebx
mov eax, [ebp+12] ; eax에 temp1이 들어있는 주소를 넣어준다
TITLE Program Template (gcd.asm)
temp1 sdword ; 첫번째 정수를 받을 변수
.data
[어셈블리어] 최소공약수 구하는 프로그램 3
mov ebx, [ebp+8] ; ebx에 temp2가 들어있는 주소를 넣어준다
순서
.code
![[어셈블리어] 최소공약수 구하는 프로그램-6912_01.gif](https://sales.happyreport.co.kr/prev/200711/%5B%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%EC%96%B4%5D%20%EC%B5%9C%EC%86%8C%EA%B3%B5%EC%95%BD%EC%88%98%20%EA%B5%AC%ED%95%98%EB%8A%94%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-6912_01.gif)
![[어셈블리어] 최소공약수 구하는 프로그램-6912_02_.gif](https://sales.happyreport.co.kr/prev/200711/%5B%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%EC%96%B4%5D%20%EC%B5%9C%EC%86%8C%EA%B3%B5%EC%95%BD%EC%88%98%20%EA%B5%AC%ED%95%98%EB%8A%94%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-6912_02_.gif)
![[어셈블리어] 최소공약수 구하는 프로그램-6912_03_.gif](https://sales.happyreport.co.kr/prev/200711/%5B%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%EC%96%B4%5D%20%EC%B5%9C%EC%86%8C%EA%B3%B5%EC%95%BD%EC%88%98%20%EA%B5%AC%ED%95%98%EB%8A%94%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-6912_03_.gif)


■ GCD ● 문제개요 Assembly Language를 이용하여 두 정...
mov ebx, edx
● 알고리즘
mov eax, ebx
mov ebp, esp ; ebp를 esp와 같게 해준다
레포트 > 기타
push ebp ; ebp를 푸시한다
○ GCD Iterative version
L1
다. Recur 프로시져는 iter와는 다르게 한번 호출할 때 마다 한번씩만 계산을 해준다. goal(목표) 값이 나올때까지 계속 자신을 호출하게 해준다. 스택에 두 정수를 넣어주고 iter 프로시져를 먼저 호출하여 최대공약수를 구해준다. 나머지가 0보다 작거나 같을때까지 나누어 주는 방식으로 구하며 iter 프로시져에서는 한번의 호출로 결과를 나오게 해야함으로 L1을 goal(목표) 값이 나올때까지 계속 돌려준다.
● 문제개요
어셈블리어 최소공약수 구하는 프로그램 3
cdq
설명
■ GCD
jg L1 ; 나머지가 0보다 크다면 다시 L1으로
temp2 sdword ; 두번째 정수를 받을 변수
counter sdword 0 ; 재뒤함수 호출횟수를 셀 변수
Iter PROC
jmp L2 ; 0보다 작거나 같다면 L2...
cmp ebx, 0 ; 0과 나머지를 비교해준다
○ GCD Recursive version
Assembly Language를 이용하여 두 정수의 최대공약수(GCD)를 구하는 함수를 아래와 같이 2개의 버전으로 작성하고, 매번 다른 값을 사용하여 그 함수들을 여러번 호출하고 테스트하는 program을 작성하라.
Download : [어셈블리어] 최소공약수 구하는 프로그램.hwp( 53 )
임의 변수 temp1, temp2에 두 개의 32비트 정수를 받는다.