[어셈블리어] 최소공약수 구하는 프로그램(program]) 3
페이지 정보
작성일 22-02-26 20:49본문
Download : [어셈블리어] 최소공약수 구하는 프로그램.hwp
mov ebp, esp ; ebp를 esp와 같게 해준다
■ GCD ● 문제개요 Assembly Language를 이용하여 두 정...
idiv ebx
■ GCD
설명
○ GCD Iterative version
push ebp ; ebp를 푸시한다
jmp L2 ; 0보다 작거나 같다면 L2...
counter sdword 0 ; 재뒤함수 호출횟수를 셀 변수
어셈블리어 최소공약수 구하는 프로그램 3
jg L1 ; 나머지가 0보다 크다면 다시 L1으로
● 소스
○ GCD Recursive version
[어셈블리어] 최소공약수 구하는 프로그램(program]) 3
레포트 > 기타
temp1 sdword ; 첫번째 정수를 받을 변수
INCLUDE Irvine32.inc
L1
cdq
mov eax, [ebp+12] ; eax에 temp1이 들어있는 주소를 넣어준다
순서
temp2 sdword ; 두번째 정수를 받을 변수
.code
Download : [어셈블리어] 최소공약수 구하는 프로그램.hwp( 42 )
cmp ebx, 0 ; 0과 나머지를 비교해준다
mov eax, ebx
● 알고리즘
mov ebx, edx

임의 변수 temp1, temp2에 두 개의 32비트 정수를 받는다. 목표(goal)값이 나올때까지 계속 자신을 호출하게 해준다. 나머지가 0보다 작거나 같을때까지 나누어 주는 방식으로 구하며 iter 프로시져에서는 한번의 호출로 결과를 나오게 해야함으로 L1을 목표(goal)값이 나올때까지 계속 돌려준다. iter 프록시져가 끝나면 Recur 프로시져를 호출한다. Recur 프로시져는 iter와는 다르게 한번 호출할 때 마다 한번씩만 계산을 해준다.
.data
● 문제개요
■ GCD ● 문제개요 Assembly Language를 이용하여 두 정...
Assembly Language를 이용하여 두 정수의 최대공약수(GCD)를 구하는 함수를 아래와 같이 2개의 버전으로 작성하고, 매번 다른 값을 사용하여 그 함수들을 여러번 호출하고 테스트하는 프로그램을 작성하라.
Iter PROC
TITLE Program Template (gcd.asm)
mov ebx, [ebp+8] ; ebx에 temp2가 들어있는 주소를 넣어준다
다. 스택에 두 정수를 넣어주고 iter 프로시져를 먼저 호출하여 최대공약수를 구해준다.