convert exactly to ARM assembly language..using Raspbian OS on a raspberry pi..u
ID: 3590423 • Letter: C
Question
convert exactly to ARM assembly language..using Raspbian OS on a raspberry pi..using registers R0-R15
Explanation / Answer
Please find the below assembly code.
.file 1 ""
.section .mdebug.abi32
.previous
.nan legacy
.module fp=32
.module nooddspreg
.abicalls
.rdata
.align 2
$LC0:
.ascii "Hello! Welcome to Two IntegersAn"
.align 2
$LC1:
.ascii "Enter an integer for first number: "
.align 2
$LC2:
.ascii "%d"
.align 2
$LC3:
.ascii "Enter an integer for second number: "
.align 2
$LC4:
.ascii "The sum of %d and %d is %d "
.align 2
$LC5:
.ascii "The difference of %d and %d is %d "
.align 2
$LC6:
.ascii "The product of %d and %d is %d "
.text
.align 2
.globl main
.set nomips16
.set nomicromips
.ent main
.type main, @function
main:
.frame $fp,56,$31 # vars= 24, regs= 2/0, args= 16, gp= 8
.mask 0xc0000000,-4
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set nomacro
addiu $sp,$sp,-56
sw $31,52($sp)
sw $fp,48($sp)
move $fp,$sp
.cprestore 16
movz $31,$31,$0
sw $0,36($fp)
sw $0,40($fp)
sw $0,24($fp)
sw $0,28($fp)
sw $0,32($fp)
lw $2,%got($LC0)($28)
nop
addiu $4,$2,%lo($LC0)
lw $2,%call16(puts)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,puts
1: jalr $25
nop
lw $28,16($fp)
nop
lw $2,%got($LC1)($28)
nop
addiu $4,$2,%lo($LC1)
lw $2,%call16(printf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,printf
1: jalr $25
nop
lw $28,16($fp)
addiu $2,$fp,36
move $5,$2
lw $2,%got($LC2)($28)
nop
addiu $4,$2,%lo($LC2)
lw $2,%call16(__isoc99_scanf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,__isoc99_scanf
1: jalr $25
nop
lw $28,16($fp)
nop
lw $2,%got($LC3)($28)
nop
addiu $4,$2,%lo($LC3)
lw $2,%call16(printf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,printf
1: jalr $25
nop
lw $28,16($fp)
addiu $2,$fp,40
move $5,$2
lw $2,%got($LC2)($28)
nop
addiu $4,$2,%lo($LC2)
lw $2,%call16(__isoc99_scanf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,__isoc99_scanf
1: jalr $25
nop
lw $28,16($fp)
lw $3,36($fp)
lw $2,40($fp)
nop
addu $2,$3,$2
sw $2,24($fp)
lw $3,40($fp)
lw $2,36($fp)
nop
subu $2,$3,$2
sw $2,28($fp)
lw $3,36($fp)
lw $2,40($fp)
nop
mult $3,$2
mflo $2
sw $2,32($fp)
lw $2,36($fp)
lw $3,40($fp)
lw $7,24($fp)
move $6,$3
move $5,$2
lw $2,%got($LC4)($28)
nop
addiu $4,$2,%lo($LC4)
lw $2,%call16(printf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,printf
1: jalr $25
nop
lw $28,16($fp)
lw $2,36($fp)
lw $3,40($fp)
lw $7,28($fp)
move $6,$3
move $5,$2
lw $2,%got($LC5)($28)
nop
addiu $4,$2,%lo($LC5)
lw $2,%call16(printf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,printf
1: jalr $25
nop
lw $28,16($fp)
lw $2,36($fp)
lw $3,40($fp)
lw $7,32($fp)
move $6,$3
move $5,$2
lw $2,%got($LC6)($28)
nop
addiu $4,$2,%lo($LC6)
lw $2,%call16(printf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,printf
1: jalr $25
nop
lw $28,16($fp)
move $2,$0
move $sp,$fp
lw $31,52($sp)
lw $fp,48($sp)
addiu $sp,$sp,56
j $31
nop
.set macro
.set reorder
.end main
.size main, .-main
.ident "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609"
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.