숙제라고 하기에는 문제가 너무 쉽고, 과제의 성격이 없는 것 같아.
공부를 하는 입장이라 생각되어. 저도 공부할겸 풀어봅니다.
여담으로
예전에 데브피아에 질문올린적이 있는데 원하는 답변이 안달려서, 그 문제의 정답을 아는데.
10년이 걸렸습니다. 10년동안 문제를 푼것은 아니고,10년정도 지난 어느날 우연히 답을 알게되고, 실력이 늘어 스스로 저절로 알게 되었죠...
질문했던것이 생각나서 검색을 해봤더니..
여전히 안 달렸더군요, 새로운 답변은..
그런데 그때 !!! 전에 달렸던 정답이 아니라고 생각했던 답변을 읽어보니...
아 그때는 무슨말인지 몰라서 정답이 아니라고 생각한 대답이 명쾌한 정답 답변이였던 거죠.. ㅠ_ㅠ
답변도 알아야 보이는 것이란걸 느낀 순간이였죠. 각설하고 제 나름 답변을 달아 봅니다.
X=(A + B)/( D - E * F + G * H)=> X =(A + B)/(D -(E * F)+(G * H))1-주소 명령어
LOAD E ; AC <- M[E]
MUL F ; AC <- AC * M[F]
STOR T ; M[T]<- AC
LOAD D ; AC <- D
SUB T ; AC <- AC - M[T]
STOR T ; M[T]<- AC
LOAD G ; AC <- M[G]
MUL H ; AC <- AC * M[H]
ADD T ; AC <- AC + M[T]
STOR T ; M[T]<- AC
LOAD A ; AC <- M[A]
ADD B ; AC <- AC + M[B]
DIV T ; AC <- AC / M[T]
STOR X ; M[X]<- AC
프로그램의 길이 =142-주소 명령어
MOV R1, D ; R1 <- M[D]
MOV R2, E ; R2 <- M[E]
MUL R2, F ; R2 <- R2 * M[F]
SUB R1, R2 ; R1 <- R1 - R2
MOV R2, G ; R2 <- M[G]
MUL R2, H ; R2 <- R2 * M[H]
ADD R1, R2 ; R1 <- R1 + R2
MOV R2, A ; R2 <- M[A]
ADD R2, B ; R2 <- R2 + M[B]
DIV R2, R1 ; R2 <- R2 / R1
MOV X, R2 ; M[X]<- R2
프로그램길이 =113-주소 명령어
MUL R1, E, F ; R1 <- M[E]* M[F]
SUB R2, D, R1 ; R2 <- M[D]- R1
MUL R3, G, H ; R3 <- M[G]* M[H]
ADD R1, R2, R3 ; R1 <- R2 + R3
ADD R2, A, B ; R2 <- M[A]+ M[B]
DIV X, R2, R1 ; X <- M[R2]/ M[R1]
프로그램길이 =6
번역서가 표현 이상하게 한거 같네요. 어셈블리는
번역서가 표현 이상하게 한거 같네요. 어셈블리는 명령어에 데이터 인수가 붙는 경우가 있는데 있는 경우 이걸 오퍼랜드라고 부릅니다. 있는것도 있고 없는것도 있습니다.
예시를 보니
1주소 - 오퍼랜드 1개 가지는 어셈블리 명령. 연산 결과는 어딘가에 정해진 한곳에 저장. 예외로 store일 경우 정해진 곳에서 꺼내서 오퍼랜드에 지정한 메모리주소로 저장.
2주소 - 오퍼랜드 2개 가지는 어셈블리 명령. 첫번째와 두번째의 연산결과를 첫번째에 저장하며, 오퍼랜드 2개가 다 메모리 주소여서는 안됨.
3주소 - 오퍼랜드 3개 가지는 어셈블리 명령. 두번째와 세번째의 연산결과를 첫번째에 저장. 3개 다 메모리 주소가 올 수 없음.
어셈블리 안본분은 이해하기 힘들겁니다.
Written By the Black Knight of Destruction
문제에 대해서 사진을 찍어서 다시 올려보았습니다..
아래의 첨부한 사진의 니모닉스 명령어는 X = (A+B) X (C-D) 의 대한 내용입니다.
이 부분은 이해가 가는데, 제가 푸는 문제의 저 길다란 식에는 적용을 못시키겠어요 ..
가상의 어셈블리 코드로 써 본 뒤 비교하라는건데 이때
문제에서 제시한 계산식을 가상의 어셈블리 코드로 써 본 뒤 어떤 특징이 있는지 비교하라는겁니다. 오퍼랜드(인수) 1개,2개,3개별로 사용 가능한 어셈블리 명령어 목록과 형식이 예시로 나와 있고 그것으로만 짜고 비교하세요.
다시 보니 숙제인거 같은데 알아서 잘 하셔야겠죠. 앞글에 힌트 다 드렸고 이이상은 cheating입니다. 그리고 이곳은 숙제 질문 금지인거 아시죠.
님 책도 전체적으로 봐야겠지만 그거 번역한 교수 한대 때려주고 싶네요. 오퍼랜드를 주소라고 쓰는 바보가 교수자리에 있다니.
Written By the Black Knight of Destruction
저기 .. 제가 뚫어져라 저 문제를
풀기 위해서 계속 보고 있는데.. 정말 이해가 쉽지 않아서 그러는데 .. 한번만 도움을 주실수 있나요..ㅠㅠ
1- 주소명령어와 2- 주소명령어는 정말 봐도 모르겠
어서.. 3- 주소명령어를 해보았는데, 하면 할수록 산으로 가는거 같아서 .. 잘 모르겠어요 ..
ADD R1,A,B ; R1<- M[A] + M[B]
SUB R2,D,E ; R2<- M[D] - M[E]
MUL R3,E,F ; R3<- M[E] X M[F]
ADD R4 F,G ; R4 <- M[F] + M[G]
MUL R5,G,H ; R5 <- M[G] + M[H]
DIV /,R1,R2
숙제라고 하기에는 문제가 너무 쉽고, 과제의 성격이
댓글 달기