CS代考 # Student ID = 1234567

# Student ID = 1234567
###############################image boundary######################
.globl image_boundary
##########################image boundary##################

Copyright By PowCoder代写 加微信 powcoder

image_boundary:
# $a0 -> image struct
############return###########
# $v0 -> image struct s.t. contents containing only binary values 0,1

# Add code here

image_boundary.return:
jr $ra# Student ID = 1234567
###############################connected components######################
.globl connected_components
########################## connected components ##################
connected_components:
# $a0 -> image struct
############return###########
# $v0 -> image struct with labelled connected components
# $v1 -> number of connected components (equivalent to number of unique labels)

# Add code here

connected_components.return:
jr $ra# Student ID = 1234567
###############################int2str######################
int2strBuffer: .word 36
.globl int2str
###############################int2str######################
# $a0 <- integer to convert ##############return######### # $v0 <- space terminated string # $v1 <- length or number string + 1(for space) ############################### # Add code here int2str.return: jr $ra######################Assignment 3 main function############### inputFile: .asciiz "feepP2.pgm" outputFile: .asciiz "feepOut.pgm" blank: .asciiz "\n" sucessStr: .asciiz "Exit Sucess\n" .globl main #Open Image file for reading #Test your implementation section by section using readImage, writeImage la $a0, inputFile jal read_image # read image File move $s0,$v0 # copy address of the read image ########Test connected components by uncomment here##### #move $a0,$s0 # copy address of the read image #jal connected_components ######################################################## ########Test image boundary by uncomment this section### #move $a0,$s0 # copy address of the read image #jal image_boundary ######################################################## ########Test transpose by uncomment this section######### #move $a0,$s0 # copy address of the read image #jal transpose ######################################################## ########Test mirror by uncomment this section############ #move $a0,$s0 # copy address of the read image #jal mirror_horizontally ######################################################### move $a0,$v0 # write pgm file la $a1,outputFile # to `outputFile' li $a2, 0 # 0 == P5, 1 == P2 jal write_image j main.exitSucess ########################Exit Labels######################### main.exitSucess: li $v0, 4 #syscall for print string la $a0,sucessStr j main.exit main.exit: memoryErrMessage: .asciiz "Out Of Memory\n" .globl malloc # $a0 -> number of bytes to allocate
################## return ##################
# $v0 -> allocated address.
li $v0, 9 # system call code for sbrk
syscall # allocate memory
bnez $v0, malloc.return # Did malloc fail?
la $a0, memoryErrMessage
malloc.return:

# Student ID = 1234567
########################## mirror #######################
.globl mirror_horizontally
########################## mirror #######################
mirror_horizontally:
# $a0 -> image struct
###############return################
# $v0 -> image struct s.t. mirrored image horizontally.

#Add your codes here

mirror_horizontally.return:

# Student ID = 1234567
#########################Read Image#########################
.globl read_image
#########################Read Image#########################
read_image:
# $a0 -> input file name, it will be either P2 or P5 file
# You need to check the char after ‘P’ to determine the image type.
################# return #####################
# $v0 -> Image struct :
# struct image {
# int width;
# int height;
# int max_value;
# char contents[width*height];
##############################################
# Add code here

#For P2 you need to use str2int

read_image.return:
jr $ra# Student ID = 1234567
###############################str2int######################
blank: .asciiz “\n”
.globl str2int
###############################str2int######################
# $a0 -> address of string, i.e “32”, terminated with 0, EOS
###### returns ########
# $v0 -> return converted integer value
# $v1 -> length of integer
###########################################################
# Add code here

str2int.return:
jr $ra# Student ID = 1234567
##########################image transpose##################
.globl transpose
##########################image transpose##################
transpose:
# $a0 -> image struct
###############return################
# $v0 -> image struct s.t. contents containing the transpose image.
# Note that you need to rewrite width, height and max_value information

# Adds your codes here

transpose.return:
jr $ra# Student ID = 1234567
####################################write Image#####################
.globl write_image
####################################write Image#####################
write_image:
# $a0 -> image struct
# $a1 -> output filename
# $a2 -> type (0 -> P5, 1->P2)
################# returns #################
# Add code here.

write_image.return:

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com