Announcement

Collapse
No announcement yet.

Hỏi bài môn Kĩ thuật Máy tính

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hỏi bài môn Kĩ thuật Máy tính

    Đề bài:
    Cho mã C như sau:

    int A[100], B[100];
    for (i=1; i < 100; i++)
    {
    A[i] = A[i-1] + B[i];
    }

    chuyển mã C này sang Assembly.
    Em có tìm được bài giải như sau:

    li $t0, 1 # Starting index of i
    li $t5, 100 # Loop bound
    loop:
    lw $t1, 0($a1) # Load A[i-1]
    lw $t2, 4($a2) # Load B[i]
    add $t3, $t1, $t2 # A[i-1] + B[i]
    sw $t3, 4($a1) # A[i] = A[i-1] + B[i]
    addi $a1, 4 # Go to i+1
    addi $a2, 4 # Go to i+1
    addi $t0, 1 # Increment index variable
    bne $t0, $t5, loop # Compare with Loop Bound
    halt:
    nop

    Anh chị nào biết thì chỉ dùm em 2 dòng lw với ạ. Em không hiểu, nếu code ghi lw $t1, 0($a1) thì phải load a1[0] chứ sau lại a[i-1]?
    Tương tự như dòng dưới là load s2[1] chứ sao b[i] được?

  • #2
    Originally posted by 15520141 View Post
    Anh chị nào biết thì chỉ dùm em 2 dòng lw với ạ. Em không hiểu, nếu code ghi lw $t1, 0($a1) thì phải load a1[0] chứ sau lại a[i-1]?
    Tương tự như dòng dưới là load s2[1] chứ sao b[i] được?
    Em nhìn kĩ lại thử xem, i=1 chứ không phải bằng 0. Vòng lặp đầu tiên thì a1[i-1] = a1[0].
    I don't know the secret to success, but the secret to failure is trying to please everyone

    Comment


    • #3
      Chào Dũng,

      1. Trường mình không có môn học nào được gọi là Kỹ thuật Máy tính, nhưng lại có môn học Kiến trúc Máy tính. Hai cái này hoàn toàn khác nhau -> bạn tự xử.
      2. $a1, $a2 ở đâu ra thế? Không biết 2 thanh ghi này là gì thì sao mình trả lời câu hỏi của bạn được.

      Thân ái,
      T. Đ. Dương.
      Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

      Comment


      • #4
        Originally posted by 11520537 View Post
        Chào Dũng,

        1. Trường mình không có môn học nào được gọi là Kỹ thuật Máy tính, nhưng lại có môn học Kiến trúc Máy tính. Hai cái này hoàn toàn khác nhau -> bạn tự xử.
        2. $a1, $a2 ở đâu ra thế? Không biết 2 thanh ghi này là gì thì sao mình trả lời câu hỏi của bạn được.

        Thân ái,
        T. Đ. Dương.
        Đã nhầm còn quên nữa thì đúng là hậu đậu quá đi mất.
        a1 là đc của mảng A ạ, còn a2 là đc của mảng B. Nhưng giờ em hiểu rồi anh:salute:

        Comment


        • #5
          Originally posted by 15520141 View Post
          a1 là đc của mảng A ạ, còn a2 là đc của mảng B. Nhưng giờ em hiểu rồi anh:salute:
          Ờ, anh đùa thôi, tự giải đi, đi kiếm code của thằng khác mà làm gì, lỡ đâu nó cài bug cho thì hỏng cả đời.
          Tôi không hối tiếc những gì mình đã làm. Tôi chỉ hối tiếc những gì đã không làm khi có cơ hội!

          Comment

          LHQC

          Collapse
          Working...
          X