EditPlus에 쓸 SPARC Assembly code 문법파일 만들었음
제가 예전에 EditPlus에 쓸 SPARC Assembly code 문법파일을 만들어서 블로그에 올린적이 있었습니다.
sparc.stx

위에 올린 링크는 sparc.stx입니다.

이 파일을 EditPlus가 저장된 곳에 저장합니다.
예를 들어 EditPlus가 C:\Program Files\EditPlus 2에 설치 되었으면 그 폴더에 저장하면 됩니다.

저장을 하셨으면 EditPlus를 실행해서 설정을 해야 합니다.

EditPlus를 실행합니다.
그리고
영문판
메뉴에서 Tools → Preferences 클릭
한글판
내일 학교 가서 확인해야겠음 -_-;;


영문판
Files → Settings & syntax 클릭
한글판
내일 학교 가서 확인해야겠음 -_-;;


영문판
ADD 단추 클릭
Description 에 New Setting 을 Assembly로 변경
File extensionss;m을 추가
ex) s는 어셈블리 언어 파일 m은 매크로 파일 이다.
한글판
내일 학교 가서 확인해야겠음 -_-;;


영문판
syntex file옆에 있는 ... 단추 클릭
sparc.stx파일 선택 그리고 확인
한글판
내일 학교 가서 확인해야겠음 -_-;;


영문판
Apply 단추 클릭
한글판
적용 단추 클릭


결과화면입니다.
이번 표창우 교수님 어셈블리 언어 두번째 과제 파일을 본 화면입니다. hw2.s

컬러가 아름답지 않슴니까??
Buy me a coffeeBuy me a coffee


EditPlus에 쓸 SPARC Assembly code 문법파일을 만들었습니다.
어셈블리 언어 숙제 하다가 Editplus에서 SPARC Assembly Code를 보는 것이 눈 아파서
Editplus의 문법파일을 바꿔서 SPARC Assembly 용 문법 파일(stx)를 만들었습니다.
Editplus사이트(http://www.editplus.com)에 가서 문법 파일 중에서 SPARC Assembly용 stx파일이 없나 검색해도 없어서 그냥 제가 만들었습니다.
숙제는 거의 했는데 함수 구현이 잘 안되어서 짜증난 탓도 있지만 Code를 보면 딱딱한 검은색 글씨라 눈에 잘 안들어 오더군요

문법 파일(stx)를 만들어서 설정 바꿔 보니 코드 보는것이 눈에 잘 보이더군요 ㅎㅎ

여기에 문법 파일을 올립니다.
sparc.stx

파일명은 sparc.stx로 editplus에 깔려진 디렉터리에 저장하고 설정 바꾸시면 SPARC Assembly숙제할때 도움이 될 것입니다 :D

아 과제 조금만 하면 끝인데 -_-;;

아래 그림은 문법 파일(stx)적용했을때 입니다. 컬러다 +_+
아래를 보면 숙제 내용들이 나와 숙제 베낄염려로 짤랏습니다 -_-;;
이글루스 가든 - 무적의 공대생이 되자!
Buy me a coffeeBuy me a coffee
여러분의 집에는 몇 대의 컴퓨터가 있나요?

공식적으로 있는 컴퓨터는 3대

비공식적까지 합하면 컴퓨터는 4대.

1. 펜티엄3 750㎒ 램 512Mb CD-ROM 48X 제가 작년까지만 해도 썼던 PC입니다. 요즘 컴퓨터에 비해 속도는 떨어지지만 쓸만 합니다. 리눅스 서버 돌리다가... 아부지가 포맷 시키고 아부지가 집에서 쓰는 용도로 바뀌었음 ;ㅁ; (서버로 돌릴려던 계획은 포기 ㅠ_ㅠ)

2. 펜티엄4 제 여동생 컴퓨터입니다. 제 여동생 컴퓨터에는 강동원 사진으로 꽉꽉 채워져있고, 인강도 있고, (잘 찾아보면 야오이도 있을듯-_-;;), 뭐가 있는지 조사를 못해본 -_-;;

3. 펜티엄 센트리노기술을 쓴 FUJITSU 노트북
제가 쓰고 있는 노트북입니다. 성능이 아주 좋죠. 근데 단점은 너무 무거워서 학교까지 들고 다니는게 힘듭니다 ㅠ_ㅠ
각종 기능들도 좋고 성능이 쵝오라서 몇년동안 쓸 것 같습니다.

비공식적.
4. 아부지 회사에서 지급하신 삼숭 노트북
집에서도 많이 쓰심. 그러나 집에있는 컴퓨터라 단정을 못하겠음

그 전에 있는 컴퓨터들은 어디로 갔을까요?
대우 386SX, 대우 133㎒ 노트북, 용산에서 맞춘 펜티엄 100㎒ 컴퓨터, 셀러론 266㎒ 컴퓨터 등등

모두 어디론가 사라졌군요. 팔리고 나서 고물상으로 빠졌거나 등등.......
Buy me a coffeeBuy me a coffee
SPARC Assembly HW#2 Use Stack Memory

이 글은 예전에 썼던 Assembly Language 과제의 연속입니다.
중간고사를 꽤 잘보고 나서 숙제 마감일을 살피니.. 얼마 안남았군요 orz
얼른 숙제를 하겠다고 10월 28일 토요일날 전자회로 수업을 마치고 나서 도서관으로 직행했습니다.

예상치도 못한 과제들의 홍수들 ㅠ_ㅠ 중간고사 끝나니까 홍수처럼 쏟아지더군요

자 우선 순위 큐를 따져 보니...... SPARC Machine에서 쓰는 Assembly 밤에 하게 되었습니다.

밤 11시 경 손을 대기 시작하였습니다. 예전에 쓴 소스코드를 가지고 그대로 접근하면 되기 때문에 어려움 없이 갈려고 했습니다.

손으로 코딩을 하고 나서 컴퓨터로 옮기는데 생각보다 시간이 많이 걸렸네요. m4 processor로 macro 치환을 하고 나서 코딩까진 괜찮았습니다.
코딩을 하니까 주석을 안달아서 자꾸 헷갈리덥니다. 역시 주석(Comment)은 만인의 행복을 위한 것이였습니다.
코딩을 다 하고 나서 주석 달려니 어마어마한 양에 하기가 싫어지더군요.
그래도 했습니다. 주석을 다 달고 나니 뿌듯했습니다.

그러나


제가 짠 Assembly Code가 최적화가 되어있지 않기때문에 최적화를 시켜줘야 하는 것이였습니다.
숙제를 내고 바로 잘려던 저에게 큰 타격을 주었습니다 ㅠ_ㅠ
nop을 없애고자 많은 노력을 기울였지만.. nop 명령어 지우는 것이 만만치 않더군요.
어떤 것은 annulled branch를 써서 아님 단순히 nop연산 전 명령어를 치환하여 없애거나 등등
그래도 끝까지 nop으로 남는 것은 딱 한개 -_-;;

nop을 완전히 없애면 점수 100점 받는것인디 (그래도 1개만 남겨도 100점 맞을듯)
주석도 만땅으로 채우고 했으니 과제를 냈습니다. 아 다행이군요.
숙제를 안봤다면 주말동안 놀다가 평일에 숙제 하다가 GG치는 사태는 막았군요 :D

어셈블리 언어는 재미있다만은, 하룻만에 숙제가 되지가 않군요.(1학년때에는 C언어 숙제를 마감 3시간 전에 시작하여 제출 1시간 전에 제출한 사례가 엄청 많았는데 -_-;;)

아래 있는 글을은 최적화 사례입니다. (숙제 한 것에서 빼왔습니다 - 어셈블리 숙제 베낄라 걱정되군요)
Anulled Branch 사용의 예
프로그램 최적화전
! loop lable (i < 10)까지 loop를 돌림
loop:
sll %i_r, 2, %l1 ! %i_r(%l0) * 4 = %l1 4의 배수로 i변수 곱해줌, Array 연산용
! Call scanf function, Array에 숫자 입력
set input, %o0
call scanf
sub %fp, %l1, %o1
! control-d누르면 scanf function의 return값이 -1이 됨
! return value가 -1이면 loop lable을 빠져 나가 cal lable로 빠져나가 연산을 하게 함
cmp %o0, -1
be cal
nop
add %i_r, 1, %i_r ! i++
! Compare %input_num & 10, 만약 10보다 작으면 loop문을 돌게 함
cmp %i_r, 10
bl loop
nop

Anulled Branch사용으로 프로그램 최적화
! loop lable (i < 10)까지 loop를 돌림
loop:
! Call scanf function, Array에 숫자 입력
set input, %o0
call scanf
sub %fp, %l1, %o1
! control-d누르면 scanf function의 return값이 -1이 됨
! return value가 -1이면 loop lable을 빠져 나가 cal lable로 빠져나가 연산을 하게 함
cmp %o0, -1
be cal
nop
add %i_r, 1, %i_r ! i++
! Compare %input_num & 10, 만약 10보다 작으면 loop문을 돌게 함
cmp %i_r, 10
bl,a loop ! annulled branch
sll %i_r, 2, %l1 ! %i_r(%l0) * 4 = %l1 4의 배수로 i변수 곱해줌, Array 연산용

단순히 nop을 제거하여 최적화
단순히 nop제거 전
! Sum Calculate lable (합계를 계산)
cal:
mov %j_r, %o0
mov 4, %o1
call .mul ! %l2 * 4 = %l1 4의 배수로 j변수 곱해줌, Array 연산용
nop
sub %fp, %o0, %l3 ! Array위치 계산후
ld [%l3], %var_r ! load Array [%fp + %l2*4], %var_r(%i0), temp변수
add %sum_r, %var_r, %sum_r ! %sum_r = %sum_r + temp
add %j_r, 1, %j_r ! j++
!compare %i_r & %j_r (%l0 vs %l2), 만약 %j_r이 %i_r보다 작으면 cal loop문을 돌게 함
cmp %j_r, %i_r
bl cal
nop

nop제거 후
! Sum Calculate lable (합계를 계산)
cal:
mov %j_r, %o0
call .mul ! %l2 * 4 = %l1 4의 배수로 j변수 곱해줌, Array 연산용
mov 4, %o1
sub %fp, %o0, %l3 ! Array위치 계산후
ld [%l3], %var_r ! load Array [%fp + %l2*4], %var_num(%i0), temp변수
add %j_r, 1, %j_r ! j++
!compare %i_r & %j_r (%l0 vs %l2), 만약 %j_r이 %i_r보다 작으면 cal loop문을 돌게 함
cmp %j_r, %i_r
bl cal
add %sum_r, %var_r, %sum_r ! %i1 = %i1 + temp


숙제를 베끼는 것을 방지 하기 위해 m4 processor로 돌리기 전 코드를 올렸습니다. 개념적으로 SPARC Assembly가 어떻게 돌아가는지 쓴 것입니다 :D

간단한 과제하는데 몇시간이나 걸린건가?-_-;;
Buy me a coffeeBuy me a coffee

10월 16일 오후 7시12분 다운
그동안 책에 있는 예제 따라 해보질 못했음, 아주 답답했음

10월 17일 오전 11시 17분 BOOT
이게 무슨 조화냠? =_=;;


학과 Solaris Server가 1대 밖에 없으니 숙제 마감날짜때 금방 Down 될까봐 걱정됩니다.
제 친구들 숙제 제출날에 숙제 못냈다고 함.(불쌍하다.)


서버관리자님 11시에 출근하셨나?ㅠ_ㅠ

오늘의 교훈
숙제는 그날 나온면 바로 하자!

'컴퓨터' 카테고리의 다른 글

집에 있는 컴퓨터는 3대  (3) 2006.10.30
Assembly 과제 완료  (2) 2006.10.29
SPARC Assembly HW#2 Use Stack Memory  (5) 2006.10.16
친구의 숙제 도와주다가  (7) 2006.10.11
어머, 배터리 리콜대상이군요.  (6) 2006.10.08
Buy me a coffeeBuy me a coffee
이번에 어셈블리 언어시간에서 배우는 SPARC Assembly Language 과제가 나왔습니다 OTL

학과장님께서 숙제를 내주시면서 쉽긴 해도 하는데에 너무나 짜증이 날 것이라고 합니다. -_-;;
시험기간중에 숙제를 내주는 학과장님의 극강의 센스(그래보았자 변모 교수님보다 심하진 않습니다 캬캬캬 - 나 완전 돌았군-_-;;)

과제는 이것입니다.
과제2 : 스택 메모리 사용 hw2.pdf

입력
  • 최대 10개까지만 입력된다고 가정한다. 11번째 데이터가 입력되면 무시하고 앞의 10개의 데이터를 사용하여 계산에 들어간다.
  • 한 줄에 숫자 하나씩 입력한다.
  • 10개가 입력되기 전에 입력과정을 마치려면, control-d를 누른다.

출력
  • 입력된 수가 없으면, 전부 0을 출력하면 된다.
  • 다음은 입력을 3, 1, 5, -1 순서로 받았을 때 출력이다. "%"는 시스템의 프롬프트이다.

% 3
% 1
% 5
% -1
% ^d
N = 4
sum = 8
mean = 2
레지스터 매핑
  • Number of inputs : %l0
  • Sum : %i0
  • mean : %o3

과제는 보듯이 C언어로 짜라면 아주 쉽습니다. 다만 Contril-D처리가 좀 그렇지만 -_-;;

C언어로 짜라면 대충 이렇게 짭니다.
#include <stdio.h>
main()
{
int stack[10];
int i = 0, sum = 0, mean = 0, var = 0;
while(i < 10)
{
i++;
scanf("%d", &stack[i]);
var = stack[i];
sum = sum + var;
mean = sum / i;
}
printf("N = %d \nsum = %d \nmean = %d\n", i, sum, mean);
}


그리고나서 꼼수를 쓸려고 했습니다. 앞의 포스팅이 있던 것 처럼 역어셈블 과정을 거쳐서 프로그램 소스를 약간 고칠려고 했습니다.
C언어 코드를 SPARC Assembly Language 로 역 어셈블
gcc -S stack.c

그리고 나서 ls 명령어로 stack.s 이 있는지 확인해 봅니다. :D
확인이 되면 stack.s파일을 확인해 봅시다~~~

OTL



'컴퓨터' 카테고리의 다른 글

Assembly 과제 완료  (2) 2006.10.29
학과 솔라리스 서버의 반란?  (5) 2006.10.17
친구의 숙제 도와주다가  (7) 2006.10.11
어머, 배터리 리콜대상이군요.  (6) 2006.10.08
후지쯔, 소니 배터리 28만7천개 리콜?  (3) 2006.10.08
Buy me a coffeeBuy me a coffee
(이 포스트는 코드 주석처리가 아직 안되었기 때문에 조만간 주석처리를 할 예정입니다:D)

제가 친구의 요청으로 졸지에 어셈블리 언어(Assembly Language)숙제를 하게 되었습니다.
(제가 다른 교수님 숙제라고 소스 코드를 공개하지만 학과장님 수업 과제였다면 공개를 안했을 것입니다 캬캬)

제가 듣는 학과장님 수업이 아니라 박모교수님이 수업하시는 것 숙제를 해달라는 것이였습니다.
SPARC Architecture, Assembly Language Programming, and C에 있는 연습문제 프로그래밍 해달라는 것이였습니다.
이것이 SUN사의 SPARC Machine에서만 돌아간다는 Assembly 언어 책입니다 -_-;; (책이 딱 한 종류밖에 없더군요)



여기서 다루는 Assembly언어는 SUN사의 SPARC Machine에서 실행되는 Assembly 언어 입니다. 다른 학교에서는 8051 Chip으로 Assembly 언어를 다루는데 .. 저희 과는 특이하게도 SUN사 SPARC Assembly를 다루더군요.

(다음학기때는 전자전기공학부의 마이크로컴퓨터를 배워볼까나? - 어디서든지 많이 쓰는8051Chip에서 쓰는 Assembly를 배운다고 하네요.(선배가 학점따기 쉽다고 해서 들어볼까 생각중))

연습문제 2장 문제
CHAPTER2. SPARC ARCHITECTURE
2.13 Exercises
2-3. Write a program to find the maximum of x³-14x²+56x-64 in the range -2≤x≤-8, by stepping one by one thought the range.

순간 머리가 멈칫... 그리고 어떻게 풀어야 할지 대략 감을 잡았습니다.
C언어라면 금방 짰을 과제인데 =_=
근데 전 단순히 -2부터 8까지 값을 while loop로 돌려 넣어서 값을 찾아내게 했습니다.
-2부터 8까지 값을 loop를 돌리면서 결과값을 Assembly code로 if else로 코드 짜는데 귀찮은것짜증내면서 삽질을 요하게 되고, 레지스터에 써야할 것은 한계가 있는데, 시간이 아깝다는 이유로 -2부터 8까지 값을 loop로 돌려서 결과값을 출력하게 했습니다.

아래 코드는 최대한 최적화를 하게 만들었습니다. 아무짝에 쓸모없는 nop 명령어를 지워버릴려고 얼마나 노력을 많이 했는지 =_=
아래의 같은 코드 파일 : ex2_3.s

.section ".data"
fmt: .asciz "%d is %d\n"
.section ".text"
.global printf
.global main
main:
save %sp, -96, %sp
mov -2, %l0
.global loop
loop:
cmp %l0, 8
bg done
nop
mov %l0, %o0
call .mul
mov 56, %o1
mov %o0, %l3
mov %l0, %o0
call .mul
mov %l0, %o1
mov %o0, %l1
call .mul
mov 14, %o1
mov %o0, %l4
mov %l1, %o1
call .mul
mov %l0, %o0
mov %o0, %l2
add %l2, %l3, %l1
sub %l1, 64, %l1
sub %l1, %l4, %l1
! output function call!
set fmt, %o0
mov %l0, %o1
call printf
mov %l1, %o2
add %l0, 1, %l0
bl loop
nop
done:
mov 1, %g1
ta 0


자 작업을 다 했으면 컴파일을 해볼까요?
[10/11(수) 03:56 cea5151@sol1] ~/assem/ch2$ gcc -g ex2_3.s -o ex2_3

gcc는 C 컴파일러이지만 어셈블리 언어도 컴파일이 됩니다. :D
-o ex2_3 은 컴파일 한 결과물을 a.out으로 저장하지 말고 ex2_3이란 파일로 저장하라는 말입니다,
-g ex2_3.s 는 ex2_3.s란 어셈블리 언어로 작성된 파일을 컴파일하는데 -g라는 옵션을 붙여서 컴파일 된 후 실행파일이 gdb가 소스 코드를 분석할 수 있게 컴파일을 하라는 것입니다 :D

Solaris에서 작업을 했으면 아래의 에러가 안나고 아주 편하게 컴파일이 될 것입니다. 그러나 윈도우즈에서 작업을 해서 ftp로 올린다면 컴파일이 안된다고 gcc에서 에러를 쏟아냅니다.
[10/11(수) 03:56 cea5151@sol1] ~/assem/ch2$ gcc -g ex2_3.s -o ex2_3
/usr/ccs/bin/as: "ex2_3.s", line 1: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 2: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 3: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 4: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 5: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 6: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 7: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 8: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 9: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 10: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 11: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 12: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 13: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 14: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 15: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 16: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 17: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 18: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 19: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 20: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 21: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 22: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 23: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 24: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 25: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 26: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 27: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 28: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 29: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 30: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 31: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 33: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 34: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 35: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 36: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 37: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 38: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 39: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 40: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 41: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 42: error: invalid character (0x0d)
/usr/ccs/bin/as: "ex2_3.s", line 43: error: invalid character (0x0d)
[10/11(수) 03:56 cea5151@sol1] ~/assem/ch2$

제대로 타이핑을 했는데도 이런 이상한 일이 벌어짐을 알수 있습니다. 이 것은 윈도우즈에서 작업을 했기 때문에 파일 포맷이 windows로 되어 있게 저장된 것입니다. Solaris나 Unix, Linux같은 경우에는 파일 포맷을 UNIX로 쓰기 때문에 이런 결과가 나타나게 되는 것입니다.

이 문제를 해결하는 방법은
[10/11(수) 03:56 cea5151@sol1] ~/assem/ch2$ dos2unix -o -k ex2_3.s ex2_3.s

dos2unix라는 프로그램을 실행시키는 것입니다. 이 명령어는 파일 포맷이 dos인 텍스트 파일을 UNIX 파일 포맷으로 바꿔준다는 말입니다.
man보고 어떻게 실행하는지 알았습니다. 자세한 것은 man 명령어 쳐서 알아보시길 바랍니다 :D

아 컴파일을 해볼까요?
[10/11(수) 03:56 cea5151@sol1] ~/assem/ch2$ gcc -g ex2_3.s -o ex2_3
[10/11(수) 03:56 cea5151@sol1] ~/assem/ch2$

컴파일이 제대로 되었다는 것을 알았습니다.

그러면 실행을 해볼까요?
[10/11(수) 03:56 cea5151@sol1] ~/assem/ch2$ ./ex2_3
-2 is -240
-1 is -135
0 is -64
1 is -21
2 is 0
3 is 5
4 is 0
5 is -9
6 is -16
7 is -15
8 is 0
[10/11(수) 03:56 cea5151@sol1] ~/assem/ch2$

원하는 결과가 나왔습니다.
전 학과장님께서 가르쳐 주신 책에 없는 print 명령어를 써서 결과 값이 제대로 되었는지 알았다만... 박모 교수님 시간에는 숙제를 print 명령어 없이 하라고 했기 때문에... 어떻게 하는지 모르겠습니다.
(gdb를 돌려서 해야하는가?)

이 프로그램을 C로 짠다면...
C언어 Code : ex2_3.c
#include <stdio.h>
main()
{
int temp,i = -2;
while (i <= 8) {
temp = (i*i*i) - (14*i*i) + (56*i) - 64;
printf("%d is %d\n",i, temp);
i++;}
}

결과값은 아까 전의 Assembly code랑 같습니다 =_=
-2 is -240
-1 is -135
0 is -64
1 is -21
2 is 0
3 is 5
4 is 0
5 is -9
6 is -16
7 is -15
8 is 0

이렇게 간단하게 짜집니다 ㅠ_ㅠ

정말 Assembly 언어 공부하면서... C언어가 편하다는 사실을 깨닫게 됩니다 ㅠ_ㅠ
Buy me a coffeeBuy me a coffee


Google이 Youtube를 인수하려고 한다네요.
서명덕기자님의 블로그에서 아래 내용을 보고 나서
뉴욕타임즈(NYT) 및 월스트리트저널(WSJ)은 관계자의 말을 인용, 구글이 16억 달러(한화 약 1조5000억원)에 유튜브를 인수하기 위한 협상을 벌이고 있다고 7일(현지시각) 보도했다.

구글이 Youtube를 인수하려는 것은 예전에 Picasa와 Google Earth와 같은 것을 생각하면 되겠습니다.
Youtube의 경우 여태까지 인수하려고 했던 회사들이 많았는데, 이런 거액을 제시하면서 구글이 인수하려는게 주목됩니다.
사실 유튜브가 수익이 나는 것인지는 모른니다만... 많은 인터넷 사용자들이 찾는 곳이기도 합니다.
구글이 유튜브를 인수할 경우 파급효과가 엄청 날 것이라 생각됩니다. 아님 그 효과가 미비할수도 있겠지만...(미비해도 유튜브를 찾는 사람들이 많기때문에 먹고 살만할 돈은 나오겠다고 생각합니다.)

구글이 유튜브를 인수해서 대박이 날 경우는 유튜브의 많은 사람들이 구글을 이용할수 있게 되고 그 효과는 Adsense까지 미치게 되고.. 구글은 떼돈을 벌게 된다.
생각만 해도 구글이 유투브를 인수하면 장미빛미래가 보이군요. 대박이 안나더라도 구글은 유튜브를 이용할 가치가 있으니까요.

구글이 유튜브를 인수할지는 지켜보도록 합시다.


이글루스 가든 - 무적의 공대생이 되자!

'컴퓨터 > Web' 카테고리의 다른 글

웹 데이터 분석 용어 정의  (2) 2007.01.01
제작의 고통은 절규(?)  (6) 2006.12.21
Google Code Search  (7) 2006.10.08
네트워크 용어 정리  (1) 2006.08.22
네띠앙의 운영정지를 보고  (2) 2006.08.19
Buy me a coffeeBuy me a coffee

Google이 코드를 검색할 수 있는 코드서치를 오픈했습니다.
필요한 소스가 있을때 검색하면 유용할 것 같습니다.
(음하하하, 숙제할때 코드 어떻게 짤 지 모르면 검색해서 짜야(퍽))
코드 짜는 실력은 스스로 짜보면서 부딪쳐봐야 느는데.. 자꾸 베낄려는 바보같은 생각을 해봅니다.

근데 이거 허점 많이 노출되는 듯 (내가 짠 소스가 보이는 것이 좀 겁나군요).

링크 : Google Code Search

태그 : , , , , , ,
이글루스 가든 - 무적의 공대생이 되자!

'컴퓨터 > Web' 카테고리의 다른 글

제작의 고통은 절규(?)  (6) 2006.12.21
Google의 Youtube인수설?  (6) 2006.10.09
네트워크 용어 정리  (1) 2006.08.22
네띠앙의 운영정지를 보고  (2) 2006.08.19
Google Package  (2) 2006.08.15
Buy me a coffeeBuy me a coffee
via Ego君의 인터넷 놀이터
후지쯔, 소니 배터리 28만7천개 리콜?




제 노트북은 소니 배터리를 쓰는 가봅니다.
Fujitsu 영문 홈페이지에서 이런 충격적인 글을 봤습니다ㅠ_ㅠ
출처 : Notice Regarding Sony Battery Pack Replacement Program
Notice Regarding Sony Battery Pack Replacement Program


September 30, 2006 — On September 28, Sony Corporation announced a voluntary replacement program for certain of its battery packs*1.

As of this time, we are not aware of any instances of battery pack problems involving Fujitsu notebook PCs similar to those that have been announced by Dell and Apple Computer.

Nevertheless, in response to Sony's announcement, we have decided to cooperate with Sony's voluntary battery replacement program. Specifically, we plan to offer voluntary replacement of the Sony-made battery packs in the Fujitsu notebook PC models listed below. Details will be announced separately following consultation with Sony.

Designated notebook PC models subject to the Sony voluntary battery replacement program:

[Sold in Japan]
FMV-BIBLO LOOX P70R, P70S
FMV-BIBLO LOOX T50M, T50R, T50RN, T50S, T50SN
FMV-BIBLO LOOX T70M, T70M/T, T70MN, T70R, T70R/T, T70RN, T70S, T70S/V, T70SN
FMV-P8210
[Sold outside Japan]
LIFEBOOK P1510, P1510D, P7120, P7120D
LIFEBOOK S7020, S7020D, S7025, S7025D
LIFEBOOK C1320, C1320D



LIFEBOOK C1320





전 Fujitsu LIFEBOOK C1320 이 노트북을 씁니다. 리스트에 올려진 기종들에 제 노트북 기종이 있으니 아연질색 됩니다.
혹시 지금이라도 폭파되는 것이 아닐까? 덜덜덜
10일날 후지쯔 A/S센터에 가서 물어보거나 9일날 전화 해봐서 알아봐야겠네요.
근데 아직도 한국 홈페이지엔 왜 공지가 안된것이냐? (지금 노트북 쓰는데도 겁이 납니다 덜덜덜)
Buy me a coffeeBuy me a coffee

+ Recent posts