**LAB 6** Name : PRANAV CHALAVADI Roll no. : CS22B014 **Q12** cat test.s it will access contents from the file test.s it is a short form for concatinate it is also used to combine more than two files together but in this **Q13** yes you can optimise the main code files are attached later **Q15** 133 test1.c 877 test1.s 877 test1_o0.s 545 test1_o1.s 529 test1_o2.s 529 test1_o3.s 529 test1_os.s 529 test1_ofast.s below are the codes attached test1_o0 .file "test1.c" .option nopic .attribute arch, "rv32i2p1" .attribute unaligned_access, 0 .attribute stack_align, 16 .text .section .rodata .align 2 .LC0: .string "%d" .text .align 2 .globl main .type main, @function main: addi sp,sp,-432 sw ra,428(sp) sw s0,424(sp) addi s0,sp,432 sw zero,-20(s0) sw zero,-24(s0) j .L2 .L3: lw a5,-24(s0) addi a4,a5,1 lw a5,-24(s0) slli a5,a5,2 addi a5,a5,-16 add a5,a5,s0 sw a4,-408(a5) lw a5,-24(s0) slli a5,a5,2 addi a5,a5,-16 add a5,a5,s0 lw a5,-408(a5) lw a4,-20(s0) add a5,a4,a5 sw a5,-20(s0) lw a5,-24(s0) addi a5,a5,1 sw a5,-24(s0) .L2: lw a4,-24(s0) li a5,99 ble a4,a5,.L3 lw a1,-20(s0) lui a5,%hi(.LC0) addi a0,a5,%lo(.LC0) call printf li a5,0 mv a0,a5 lw ra,428(sp) lw s0,424(sp) addi sp,sp,432 jr ra .size main, .-main .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0" codes: *test1_o1* .file "test1.c" .option nopic .attribute arch, "rv32i2p1" .attribute unaligned_access, 0 .attribute stack_align, 16 .text .section .rodata.str1.4,"aMS",@progbits,1 .align 2 .LC0: .string "%d" .text .align 2 .globl main .type main, @function main: addi sp,sp,-16 sw ra,12(sp) li a5,100 .L2: addi a5,a5,-1 bne a5,zero,.L2 li a1,4096 addi a1,a1,954 lui a0,%hi(.LC0) addi a0,a0,%lo(.LC0) call printf li a0,0 lw ra,12(sp) addi sp,sp,16 jr ra .size main, .-main .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0" *test1_o2* .file "test1.c" .option nopic .attribute arch, "rv32i2p1" .attribute unaligned_access, 0 .attribute stack_align, 16 .text .section .rodata.str1.4,"aMS",@progbits,1 .align 2 .LC0: .string "%d" .section .text.startup,"ax",@progbits .align 2 .globl main .type main, @function main: li a1,4096 lui a0,%hi(.LC0) addi sp,sp,-16 addi a1,a1,954 addi a0,a0,%lo(.LC0) sw ra,12(sp) call printf lw ra,12(sp) li a0,0 addi sp,sp,16 jr ra .size main, .-main .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0" test1_o3 .file "test1.c" .option nopic .attribute arch, "rv32i2p1" .attribute unaligned_access, 0 .attribute stack_align, 16 .text .section .rodata.str1.4,"aMS",@progbits,1 .align 2 .LC0: .string "%d" .section .text.startup,"ax",@progbits .align 2 .globl main .type main, @function main: li a1,4096 lui a0,%hi(.LC0) addi sp,sp,-16 addi a1,a1,954 addi a0,a0,%lo(.LC0) sw ra,12(sp) call printf lw ra,12(sp) li a0,0 addi sp,sp,16 jr ra .size main, .-main .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0" *test1_os* .file "test1.c" .option nopic .attribute arch, "rv32i2p1" .attribute unaligned_access, 0 .attribute stack_align, 16 .text .section .rodata.str1.4,"aMS",@progbits,1 .align 2 .LC0: .string "%d" .section .text.startup,"ax",@progbits .align 2 .globl main .type main, @function main: li a1,4096 lui a0,%hi(.LC0) addi sp,sp,-16 addi a1,a1,954 addi a0,a0,%lo(.LC0) sw ra,12(sp) call printf lw ra,12(sp) li a0,0 addi sp,sp,16 jr ra .size main, .-main .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0" *test1_ofast* .file "test1.c" .option nopic .attribute arch, "rv32i2p1" .attribute unaligned_access, 0 .attribute stack_align, 16 .text .section .rodata.str1.4,"aMS",@progbits,1 .align 2 .LC0: .string "%d" .section .text.startup,"ax",@progbits .align 2 .globl main .type main, @function main: li a1,4096 lui a0,%hi(.LC0) addi sp,sp,-16 addi a1,a1,954 addi a0,a0,%lo(.LC0) sw ra,12(sp) call printf lw ra,12(sp) li a0,0 addi sp,sp,16 jr ra .size main, .-main .ident "GCC: (xPack GNU RISC-V Embedded GCC x86_64) 13.2.0"