세가지 수를 입력 받아서 큰수부터 나열하는 프로그램을 짜라는 과제다.
먼저 프로그래밍을 어떤식으로 할 건지에 대해서 방향을 잡기 위해
먼저 C로 코드를 작성하자.
#include <stdio.h>
int main(void)
{
int num1, num2, num3;
scanf("%d %d %d" , &num1, &num2, &num3);
if (num1 < num2)
if (num2 < num3)
printf(" num1 num2 num3 ");
else
if (num1 < num3)
printf(" num1 num3 num2 ");
else
printf(" num3 num1 num2 ");
else
if(num2>num3)
printf(" num3 num2 num1 ");
else
if(num1 < num3)
printf(" num2 num1 num3 ");
else
printf(" num2 num3 num1 ");
return 0;
}
이런식의 코딩이 가능하다
그러면 이제 이를 활용해서 assembly langauge로 코드를 짜보자
BR main
num1: .BLOCK 2
num2: .BLOCK 2
num3: .BLOCK 2
main: DECI num1,d
DECI num2,d
DECI num3,d
BR num12
num12: LDA num1,d
SUBA num2,d
BRLT num12a
BR num12b
num12a: LDA num2,d
SUBA num3,d
BRLT num123
BR num23
num23: LDA num1,d
SUBA num3,d
BRLT num132
BR num312
num12b: LDA num3,d
SUBA num2,d
BRLT num321
BR num13
num13: LDA num1,d
SUBA num3,d
BRLT num213
BR num231
num123: DECO num1,d
DECO num2,d
DECO num3,d
BR finish
num132: DECO num1,d
DECO num3,d
DECO num2,d
BR finish
num213:DECO num2,d
DECO num1,d
DECO num3,d
BR finish
num231: DECO num2,d
DECO num3,d
DECO num1,d
BR finish
num312: DECO num3,d
DECO num1,d
DECO num2,d
BR finish
num321: DECO num3,d
DECO num2,d
DECO num1,d
BR finish
finish: STOP
.END
명령어는 그렇게 많이 필요한 건 아니었지만, 그래도 오래걸렸다 ..휴
그래도 역시 C로 코딩 하는게 편하고 좋은듯 .... (익숙해서그런진몰라도 ㅋㅋ)
댓글 없음:
댓글 쓰기