### LAB 6 NAME: LUKALAPU S V S RAGHURAM ROLL NO: CS22B035 --- ***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" ``` --- ***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" ``` ---