Difference between revisions of "CSC231 Homework 7 2014"

From dftwiki3
Jump to: navigation, search
(Examples)
(Problem #1)
Line 38: Line 38:
 
           mov    eax, 0xffffffff
 
           mov    eax, 0xffffffff
 
           call    printInt        ; prints -1
 
           call    printInt        ; prints -1
 +
          ...
 +
</source>
 +
<br />
 +
=Problem #2=
 +
<br />
 +
*& Write a function called '''printInt16''' that prints a 16-bit 2-s complement number on the screen. 
 +
* Your function should work similarly to '''printInt''', but the number it prints is the number passed in '''ax''' (not eax).
 +
* Your function should '''not modify any of the registers''', including ax or the upper part of eax.
 +
* Your function should be made '''global''' so that a test program can call it.
 +
* Submit your function to Moodle in a program called '''Hw7_2.asm'''.
 +
<br />
 +
==Examples==
 +
<br />
 +
<source lang="asm">
 +
          section .text
 +
 +
          extern  printInt
 +
_start:
 +
          mov    ax, 0
 +
          call    printInt16        ; prints 0
 +
 
 +
          mov    ax, 0xff
 +
          call    printInt16        ; prints 255
 +
 +
          mov    eax, 0x0000ffff
 +
          call    printInt16        ; prints -1
 +
 +
          mov    eax, 0xffff0001
 +
          call    printInt16        ; prints 1
 
           ...
 
           ...
 
</source>
 
</source>
 
<br />
 
<br />

Revision as of 10:37, 11 November 2014

--D. Thiebaut (talk) 10:33, 11 November 2014 (EST)


Page under construction


UnderConstruction.jpg


This assignment is due on 11/18/14, at 11:55 p.m.


Problem #1


  • & Use the 231Lib.asm library as inspiration and write a function called printInt that prints a 32-bit 2-s complement number on the screen.
  • Your function should work similarly to printDec, in that the number to print is passed through eax, and not through the stack!
  • Your function should not modify any of the registers, including eax.
  • Your function should be made global so that a test program can call it.
  • Submit your function in a program called Hw7_1.asm.


Examples


          section .text

          extern  printInt
_start:
          mov     eax, 0
          call    printInt         ; prints 0
  
          mov     eax, 0xff
          call    printInt         ; prints 255

          mov     eax, -1
          call    printInt         ; prints -1

          mov     eax, 0xffffffff
          call    printInt         ; prints -1
          ...


Problem #2


  • & Write a function called printInt16 that prints a 16-bit 2-s complement number on the screen.
  • Your function should work similarly to printInt, but the number it prints is the number passed in ax (not eax).
  • Your function should not modify any of the registers, including ax or the upper part of eax.
  • Your function should be made global so that a test program can call it.
  • Submit your function to Moodle in a program called Hw7_2.asm.


Examples


          section .text

          extern  printInt
_start:
          mov     ax, 0
          call    printInt16         ; prints 0
  
          mov     ax, 0xff
          call    printInt16         ; prints 255

          mov     eax, 0x0000ffff
          call    printInt16         ; prints -1

          mov     eax, 0xffff0001
          call    printInt16         ; prints 1
          ...