2010년 10월 28일 목요일

아오힘들러 pep/8 ㅠㅠ

우선 우리가 배웠던 c언어, 즉 하이레벨 랭귀지로 표현하면 다음과 같다
#include<stdio.h>

int main(void)
{
int a, b, c;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{if(b>c)
{printf("a>b>c")}
else
{if(a>c)
{printf("b<c<a")}
else
{printf("b<a<c")}
}}
else
{if(b<c)
{printf("a<b<c")
else
{if(a>c)
{printf("c<a<b")}
else
{printf("a<c<b")}
}

요걸 인제 pep/8에 맞는 랭귀지로 바꿔죠야된다

요건 쓰는 사람이 없어서인지
자료찾기도 힘이 들고ㅜㅜ
책을봐도 잘 모르겠고
ㅠㅠㅠㅠㅠㅠ

요건 int a;이런 방식으로 선언을 하지 않는다
a: .BLOCK 2

이런 식으로 선언을 한다.
SCANF대신 DECI를 쓴다.
PRINF대신 STRO를 쓴다.
책의 설명은 요정도다


대체
BR?
BRLT?
ADDA?
SUBA?


다음은 내 코드의 일부다

checkac1: LDA numread,d
ADDA c,d
SUBA a,d
BRLT printbca
BR printbac


간략히 설명을 붙여보자면~~

checkac1: LDA numread,d
ADDA c,d   //c를 메모리에 넣음
SUBA a,d    //c-a수행
BRLT printbca  // 수행값이 -값이면 printbca로 가자
BR printbac // 요건 살짝 엘스이프느낌.  아니라면 printbac로 가자

그렇게 하여 어렵게어렵게 코드가 완성되었다.
ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ


BR main
numread: .WORD 0x00
a: .BLOCK 2
b: .BLOCK 2
c: .BLOCK 2
main: DECI a,d
DECI b,d
DECI c,d
BR checkab
checkab: LDA numread,d
ADDA b,d
SUBA a,d
BRLT checkbc1
BR checkbc2
checkbc1: LDA numread,d
ADDA c,d
SUBA b,d
BRLT printcba
BR checkac1
checkac1: LDA numread,d
ADDA c,d
SUBA a,d
BRLT printbca
BR printbac
checkbc2: LDA numread,d
ADDA b,d
SUBA c,d
BRLT printabc
BR checkac2
checkac2: LDA numread,d
ADDA c,d
SUBA a,d
BRLT printcab
BR printacb
printcba: DECO a,d
DECO b,d
DECO c,d
BR finish
printbca: DECO a,d
DECO c,d
DECO b,d
BR finish
printbac: DECO c,d
DECO a,d
DECO b,d
BR finish
printabc: DECO c,d
DECO b,d
DECO a,d
BR finish
printcab: DECO b,d
DECO a,d
DECO c,d
BR finish
printacb: DECO b,d
DECO c,d
DECO a,d
BR finish
finish: STOP
.END

여기서주의할점은
printacb:
DECO b,d
DECO c,d
DECO a,d
BR finish

이렇게 쓰면 에러가 난다.

printacb: DECO b,d// 반드시 :바로뒤부터 시작해야된다....................
DECO c,d
DECO a,d
BR finish


요것때메 또 엄청 시간을 날렸다 ㅠㅠ

그리고 또 하나
맨위에
BR main
요걸 안쓰면
에러는 안나는데
실행이 안된다...

ㅠㅠㅠㅠ

어쨌거나 저쨌거나

완성되어 실행된 코드는 다음과 같다.




















후유
겨우겨우 마치게 되었다 ㅠㅠ

사실 처음에는 오름차순을 이용해서 프로그램을 씨로 만들었다
그런데

pep/8에 사용되는 언어는

배열과 포문을 이용하기에 매우 무리가 따른 관계로

이같은 선택을 하였다 ㅠ'

그건 그렇고 어떤 천재가 하이레벨 랭귀지를 개발했을까?











댓글 없음:

댓글 쓰기