# 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