SSE2030: Introduction to Computer Systems (Fall 2016)


  • PA scores
    • If you have any opinions on scores, please email to TA until 12/19 (
  • PA #1: 64-bit arithmetic using 32-bit integers (deadline: 10/4 11:59PM)
  • PA #2: 64-bit arithmetic using 32-bit integers in assembly language (deadline: 11/13 11:59PM)
    • skeleton code
    • Changes:
      • You are allowed to use 64-bit operations for shift instructions (sarq, salq, shrq, shlq). Use the following instruction to get the upper 32 bits of the register %rdi: shrq $32, %rdi
      • You can use a single 64-bit operation such as orq at the end of your code to put the result into the rax register. Example:
        // Assume %edi and %eax contain 32-bit integers, respectively.
        shlq  $32, %rdi    // move the contents of %edi to upper 32 bits
        orq   %rdi, %rax   // OR'ing them
    • Notes:
      • When you perform 32-bit operations, note that the upper 32 bits of the destination register are cleared to zeroes. Refer to the following examples (assume the original value of %rax = 0x1234567812345678)

        movl $0xface, %eax // %rax becomes 0x000000000000face (not 0x123456780000face)
        xorl $eax, %eax    // %rax becomes 0x0000000000000000 (not 0x1234567800000000)
  • PA #3: Defusing a Binary Bomb (deadline: 11/27 11:59PM)
  • PA #4: Drawing grid lines in an image (deadline: 12/11 11:59PM)