...

yooyookl의 이미지
File attachments: 
첨부파일 크기
Image icon 2on.png791.63 KB
Necromancer의 이미지

번역서가 표현 이상하게 한거 같네요. 어셈블리는 명령어에 데이터 인수가 붙는 경우가 있는데 있는 경우 이걸 오퍼랜드라고 부릅니다. 있는것도 있고 없는것도 있습니다.

예시를 보니

1주소 - 오퍼랜드 1개 가지는 어셈블리 명령. 연산 결과는 어딘가에 정해진 한곳에 저장. 예외로 store일 경우 정해진 곳에서 꺼내서 오퍼랜드에 지정한 메모리주소로 저장.

2주소 - 오퍼랜드 2개 가지는 어셈블리 명령. 첫번째와 두번째의 연산결과를 첫번째에 저장하며, 오퍼랜드 2개가 다 메모리 주소여서는 안됨.

3주소 - 오퍼랜드 3개 가지는 어셈블리 명령. 두번째와 세번째의 연산결과를 첫번째에 저장. 3개 다 메모리 주소가 올 수 없음.

어셈블리 안본분은 이해하기 힘들겁니다.

Written By the Black Knight of Destruction

yooyookl의 이미지

아래의 첨부한 사진의 니모닉스 명령어는 X = (A+B) X (C-D) 의 대한 내용입니다.
이 부분은 이해가 가는데, 제가 푸는 문제의 저 길다란 식에는 적용을 못시키겠어요 ..

댓글 첨부 파일: 
첨부파일 크기
Image icon 1.jpg402.67 KB
Image icon 2.jpg387.98 KB
Necromancer의 이미지

문제에서 제시한 계산식을 가상의 어셈블리 코드로 써 본 뒤 어떤 특징이 있는지 비교하라는겁니다. 오퍼랜드(인수) 1개,2개,3개별로 사용 가능한 어셈블리 명령어 목록과 형식이 예시로 나와 있고 그것으로만 짜고 비교하세요.

다시 보니 숙제인거 같은데 알아서 잘 하셔야겠죠. 앞글에 힌트 다 드렸고 이이상은 cheating입니다. 그리고 이곳은 숙제 질문 금지인거 아시죠.

님 책도 전체적으로 봐야겠지만 그거 번역한 교수 한대 때려주고 싶네요. 오퍼랜드를 주소라고 쓰는 바보가 교수자리에 있다니.

Written By the Black Knight of Destruction

yooyookl의 이미지

풀기 위해서 계속 보고 있는데.. 정말 이해가 쉽지 않아서 그러는데 .. 한번만 도움을 주실수 있나요..ㅠㅠ

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

devace의 이미지

숙제라고 하기에는 문제가 너무 쉽고, 과제의 성격이 없는 것 같아.
공부를 하는 입장이라 생각되어. 저도 공부할겸 풀어봅니다. 
 
여담으로 
예전에 데브피아에 질문올린적이 있는데 원하는 답변이 안달려서, 그 문제의 정답을 아는데. 
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
프로그램의 길이 = 14
 
2-주소 명령어
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
프로그램길이 = 11
 
3-주소 명령어
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

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.