| | |
Assembly MIPS help
Please support our Assembly advertiser: Programming Forums - DaniWeb Sister Site
![]() |
•
•
Join Date: Nov 2009
Posts: 3
Reputation:
Solved Threads: 0
Hi! First of all, I'm new to this, so I apologise in advance if this is a really simple thing...
I am trying to write a code in assembly MIPS, in wich the program asks the user for the name of a file where it will read the text on it and copy it to another text file.
I created this code below where the name of the file is given by the variable msg3 ( the user prompt doesn't do anything yet...) and this code seems to work (i.e. the result file presents the same text has file1.txt)
Then, I altered the code, so the input by the user to be saved in the str_value variable, wich is used by the program to acess the file. This time, the program, although it works, it doesn't do what it is required (i.e. the result.txt file appears empty/with spaces). I'm tired of looking at it all day long and I don't see what I'm doing wrong.....can someone help, please? (to be noted that in the prompt, the user should write "file1.txt"
I am trying to write a code in assembly MIPS, in wich the program asks the user for the name of a file where it will read the text on it and copy it to another text file.
I created this code below where the name of the file is given by the variable msg3 ( the user prompt doesn't do anything yet...) and this code seems to work (i.e. the result file presents the same text has file1.txt)
.data msg1: .asciiz "Name of file: " msg3: .asciiz "file1.txt" #File to read from file: .asciiz "result.txt" # File to Write to .align 4 str_value: .asciiz "caracas" # Variable for keyboard input test: .space 80 # Buffer .text main: la $a0, msg1 jal print_string la $a0, str_value # Loads the name of the file jal read_string ### File for Reading li $v0, 13 # System call to open file la $a0, msg3 # Name of the file li $a1, 0 # Flags Open to Read(0: read, 1: write) syscall move $t0, $v0 # Saves fd in $t0 li $v0, 14 # System call to read from file la $a1, test # Buffer where to write li $a2, 9 # Number of characters to read move $a0, $t0 # Saves fd in $a0 syscall li $v0, 16 # System call to close file move $a0, $t0 # Return fd syscall ### File for Writing li $v0, 13 # System to open file la $a0, file # Name of the file li $a1, 1 # Flags Open to Write(0: read, 1: write) syscall move $t0, $v0 # Saves fd li $v0, 15 # System call to write on file la $a1,teste # Buffer where to write li $a2, 80 # Number of characters to read move $a0, $t0 syscall li $v0, 16 # System call to close file move $a0, $s6 # Returns fd syscall finish: li $v0, 10 # System call para terminar a execucao syscall ### Functions read_string: li $v0, 8 la $a1, 80 syscall jr $ra print_string: li $v0, 4 syscall jr $ra
Then, I altered the code, so the input by the user to be saved in the str_value variable, wich is used by the program to acess the file. This time, the program, although it works, it doesn't do what it is required (i.e. the result.txt file appears empty/with spaces). I'm tired of looking at it all day long and I don't see what I'm doing wrong.....can someone help, please? (to be noted that in the prompt, the user should write "file1.txt"
.data msg1: .asciiz "Name of file: " msg3: .asciiz "file1.txt" #File to read from file: .asciiz "result.txt" # File to Write to .align 4 str_value: .asciiz "caracas" # Variable for keyboard input test: .space 80 # Buffer .text main: la $a0, msg1 jal print_string la $a0, str_value # Loads the name of the file jal read_string ### File for Reading li $v0, 13 # System call to open file la $a0, str_value # Name of the file li $a1, 0 # Flags Open to Read(0: read, 1: write) syscall move $t0, $v0 # Saves fd in $t0 li $v0, 14 # System call to read from file la $a1, test # Buffer where to write li $a2, 9 # Number of characters to read move $a0, $t0 # Saves fd in $a0 syscall li $v0, 16 # System call to close file move $a0, $t0 # Return fd syscall ### File for Writing li $v0, 13 # System to open file la $a0, file # Name of the file li $a1, 1 # Flags Open to Write(0: read, 1: write) syscall move $t0, $v0 # Saves fd li $v0, 15 # System call to write on file la $a1,teste # Buffer where to write li $a2, 80 # Number of characters to read move $a0, $t0 syscall li $v0, 16 # System call to close file move $a0, $s6 # Returns fd syscall finish: li $v0, 10 # System call para terminar a execucao syscall ### Functions read_string: li $v0, 8 la $a1, 80 syscall jr $ra print_string: li $v0, 4 syscall jr $ra
![]() |
Similar Threads
- MIPS Assembly Lanuaguage programming (Assembly)
- Java to Assembly (Assembly)
- Integer Unsigned numbers (Assembly)
- Question about Proper Code (Assembly)
- C++ code to MIPS code (assembly) (C++)
- multiplication in assembly mips (Assembly)
- Mips Assembly porting from C (Assembly)
Other Threads in the Assembly Forum
- Previous Thread: Assembly Code Help
- Next Thread: Setting system time?
Views: 621 | Replies: 0
| Thread Tools | Search this Thread |
Tag cloud for Assembly
3d 68hc11 6811 80386 adress array asm assembler assembly boot bootloader buffer compression cursor debug directory division docs dos draw emulator endtask error exceptions file int10h integer intel interrupt interrupts language loop nohau osdevelopment print program range read remainder shape string text theory tsr x86





