User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the Assembly section within the Software Development category of DaniWeb, a massive community of 455,985 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,759 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Assembly advertiser: Programming Forums
Views: 894 | Replies: 2
Reply
Join Date: Dec 2007
Posts: 1
Reputation: hsanjakd is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
hsanjakd hsanjakd is offline Offline
Newbie Poster

I Desperately need help with this assignment!!

  #1  
Dec 4th, 2007
Hi All!

I have a programming assignment that ive been trying to work on. Recently, ive successfully wrote it in java, but im trying to use that as psuedocode so that i can transcribe it into mips - but i dont understand this stuff! ive been reading this book but it honestly doesnt help!

the assignment reads:

1. In the data segment, allocate static space for a long vector of integers.
2. Assign values from x1 to x2 (increment for the next value through the entire vector), where x1 and x2 must be obtained through a dialog with a user. Check for errors in the input (such as x2 greater or equal to x1; Too long vector; etc.)
3. Ask the user to input a number, which will indicate the number of rows of a matrix the stored vector will be converted into.
4. Find out, through a division operation, the number of columns of this matrix.
5. Print the matrix
6. Transpose this matrix – use indexed addressing mode.
7. Print the transposed matrix.
8. Terminate the program.

also, i do not understand the compiler used - im using PCSpim - any clues would help..

any help would be greatly apprciated! Thanks in advance
Last edited by hsanjakd : Dec 4th, 2007 at 9:11 pm.
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Oct 2007
Location: Cherry Hill, NJ
Posts: 1,878
Reputation: Duoas is a splendid one to behold Duoas is a splendid one to behold Duoas is a splendid one to behold Duoas is a splendid one to behold Duoas is a splendid one to behold Duoas is a splendid one to behold Duoas is a splendid one to behold 
Rep Power: 13
Solved Threads: 193
Featured Poster
Duoas's Avatar
Duoas Duoas is offline Offline
Posting Virtuoso

Re: I Desperately need help with this assignment!!

  #2  
Dec 4th, 2007
Here's some desperate help:

If I understand your problem correctly, you must get two numbers from the user, x1 and x2, then make an array (or vector) of values from x1 to x2 inclusive?

PCSpim is neither a compiler nor a proper assembler. It is a simulator for a virtual machine.

Write your tal program using your favorite plain-text editor (like emacs or notepad or whatever), load it into spim, and run it with the "Go" button. The only caveat to using Spim is that your program must begin with the label "main" instead of "__start".

Try typing in some simple examples from your textbook. Then try creating some simple examples of your own design.

Here's a simple example designed to help you in your project:
  1. # Example program to print a friendly
  2. # message five times, then quit.
  3.  
  4.  
  5. .data
  6.  
  7. # This is static data.
  8. # Its size does not change.
  9.  
  10. # This is the string to print
  11. str_hello: .asciiz "Hello world!\n"
  12.  
  13. # These are syscall argument values
  14. # (I like to name them for easy use)
  15. print_string: .word 4 # $a0 : address of string to print
  16. exit: .word 10
  17.  
  18.  
  19. .text
  20.  
  21. # print_n_times( str_hello, 5 )
  22. main: la $a0, str_hello
  23. li $a1, 5
  24. jal print_n_times
  25.  
  26. # quit
  27. lw $2, exit
  28. syscall
  29.  
  30. # subroutine
  31. # arguments:
  32. # $a0 : address of string to print
  33. # $a1 : number of times to print it
  34. #
  35. # preserve return address on stack
  36. print_n_times: sub $sp, 4
  37. sw $ra, 4($sp)
  38.  
  39. # can't print < 0 times...
  40. bltz $a1, pnt_end
  41.  
  42. # done if no more to print
  43. loop: beq $a1, $0, pnt_end
  44.  
  45. # print the string at m[$a0]
  46. lw $2, print_string
  47. syscall
  48.  
  49. # number of times to print -= 1
  50. sub $a1, $a1, 1
  51.  
  52. # next
  53. b loop
  54.  
  55. # pop return address and return
  56. pnt_end: lw $ra, 4($sp)
  57. add $sp, 4
  58. jr $ra

The WikiPedia article has a section on MIPS Assembly Language that lists all the syscall arguments and return values and all the opcodes you'll need.

Hope this helps.
Reply With Quote  
Join Date: May 2006
Location: ★ ijug.net ★
Posts: 1,012
Reputation: ithelp will become famous soon enough ithelp will become famous soon enough 
Rep Power: 6
Solved Threads: 68
ithelp ithelp is offline Offline
Veteran Poster

Re: I Desperately need help with this assignment!!

  #3  
Dec 5th, 2007
You can first write in c/c++ and decompile it to assembly and get some idea how to code it
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

DaniWeb Assembly Marketplace
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes

Similar Threads
Other Threads in the Assembly Forum

All times are GMT -4. The time now is 9:28 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC