Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write an algorithm for binary sort using the following assembly code commands. I

ID: 3577920 • Letter: W

Question

Write an algorithm for binary sort using the following assembly code commands.

Instruction LOADM STORE SHL SHR. ADD SUB NC AND OR XOR NOT 10 BEQ 11 BNE 12 JMP 13 ADDC 14 CMP 15 BITM 16 Command Example Code Load Memory Address LOAD 8 into Accumulator Stores Accumulator to STORE 8 Memory Address Shifts Accumulator Left SHLO Shifts Accumulator Right SHRO Adds Accumulator w/ ADD 12 memory Subtracts Accumulator SUB 14 by Memory Increments Accumulator INCO AND Acc w/ Memory AND 8 OR Acc w/ Memory OR 9 XOR 10 XORAcc w/ Memory COMPLEMENT Acc NOT 8 Jumps to label IF BEQ test1 branch is equa Jumps to label IF BNE test2 branch NOT equal JMP test3 Jumps to label Add Acc w/ Memory w/ ADDC 12 CARRY BIT from CCR. compares accumulator 30 and memory contents CMP loads memory location directly. MUST USE ORG ORG 80 BEFORE TO SPCIFIY BITM 30 WHERE STORING Example Result ACC MI81 MI81 ACC ACC ACC 2 ACC ACC2 ACC ACC M[12] ACC ACC -M[14] ACC ACC 1 ACC ACCA MI81 ACC ACC v M[9] ACC ACC XOR M[10] ACC ACC PC test if z 1 PC test2 if z 0 PC test3 loads ACC (bit 3) into Z: (bit is 3? z 1) n: (bit is 3? z 0) is ACC- M130l? y: z 1 n: ME80] '0000 0000 0001 1110 Instruction Code: 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110

Explanation / Answer

binarySearch(int*, int, int, int):
daddiu $sp,$sp,-80
sd $31,72($sp)
sd $fp,64($sp)
sd $28,56($sp)
move $fp,$sp
lui $28,%hi(%neg(%gp_rel(binarySearch(int*, int, int, int))))
daddu $28,$28,$25
daddiu $28,$28,%lo(%neg(%gp_rel(binarySearch(int*, int, int, int))))
sd $4,24($fp)
move $4,$5
move $3,$6
move $2,$7
sll $4,$4,0
sw $4,20($fp)
sll $3,$3,0
sw $3,16($fp)
sll $2,$2,0
sw $2,12($fp)
lw $3,12($fp)
lw $2,16($fp)
slt $2,$2,$3
bne $2,$0,.L2
nop

lw $2,16($fp)
dsll $2,$2,2
ld $3,24($fp)
daddu $2,$3,$2
lw $2,0($2)
lw $3,20($fp)
slt $2,$2,$3
beq $2,$0,.L3
nop

lw $2,16($fp)
addiu $2,$2,1
b .L5
nop

.L3:
lw $2,16($fp)
b .L5
nop

.L2:
lw $3,16($fp)
lw $2,12($fp)
addu $2,$3,$2
srl $3,$2,31
addu $2,$3,$2
sra $2,$2,1
sw $2,44($fp)
lw $2,44($fp)
dsll $2,$2,2
ld $3,24($fp)
daddu $2,$3,$2
lw $3,0($2)
lw $2,20($fp)
bne $2,$3,.L6
nop

lw $2,44($fp)
addiu $2,$2,1
b .L5
nop

.L6:
lw $2,44($fp)
dsll $2,$2,2
ld $3,24($fp)
daddu $2,$3,$2
lw $2,0($2)
lw $3,20($fp)
slt $2,$2,$3
beq $2,$0,.L7
nop

lw $2,44($fp)
addiu $2,$2,1
move $3,$2
lw $4,12($fp)
lw $2,20($fp)
move $7,$4
move $6,$3
move $5,$2
ld $4,24($fp)
ld $2,%got_disp(binarySearch(int*, int, int, int))($28)
move $25,$2
1: jalr $25
nop

b .L5
nop

.L7:
lw $2,44($fp)
addiu $2,$2,-1
move $4,$2
lw $3,16($fp)
lw $2,20($fp)
move $7,$4
move $6,$3
move $5,$2
ld $4,24($fp)
ld $2,%got_disp(binarySearch(int*, int, int, int))($28)
move $25,$2
1: jalr $25
nop

.L5:
move $sp,$fp
ld $31,72($sp)
ld $fp,64($sp)
ld $28,56($sp)
daddiu $sp,$sp,80
j $31
nop

insertionSort(int*, int):
daddiu $sp,$sp,-64
sd $31,56($sp)
sd $fp,48($sp)
sd $28,40($sp)
move $fp,$sp
lui $28,%hi(%neg(%gp_rel(insertionSort(int*, int))))
daddu $28,$28,$25
daddiu $28,$28,%lo(%neg(%gp_rel(insertionSort(int*, int))))
sd $4,8($fp)
move $2,$5
sll $2,$2,0
sw $2,4($fp)
li $2,1 # 0x1
sw $2,16($fp)
.L12:
lw $3,16($fp)
lw $2,4($fp)
slt $2,$3,$2
beq $2,$0,.L13
nop

lw $2,16($fp)
addiu $2,$2,-1
sw $2,20($fp)
lw $2,16($fp)
dsll $2,$2,2
ld $3,8($fp)
daddu $2,$3,$2
lw $2,0($2)
sw $2,24($fp)
lw $3,20($fp)
lw $2,24($fp)
move $7,$3
move $6,$0
move $5,$2
ld $4,8($fp)
ld $2,%got_disp(binarySearch(int*, int, int, int))($28)
move $25,$2
1: jalr $25
nop

sw $2,28($fp)
.L11:
lw $3,20($fp)
lw $2,28($fp)
slt $2,$3,$2
bne $2,$0,.L10
nop

lw $2,20($fp)
daddiu $2,$2,1
dsll $2,$2,2
ld $3,8($fp)
daddu $2,$3,$2
lw $3,20($fp)
dsll $3,$3,2
ld $4,8($fp)
daddu $3,$4,$3
lw $3,0($3)
sw $3,0($2)
lw $2,20($fp)
addiu $2,$2,-1
sw $2,20($fp)
b .L11
nop

.L10:
lw $2,20($fp)
daddiu $2,$2,1
dsll $2,$2,2
ld $3,8($fp)
daddu $2,$3,$2
lw $3,24($fp)
sw $3,0($2)
lw $2,16($fp)
addiu $2,$2,1
sw $2,16($fp)
b .L12
nop

.L13:
nop
move $sp,$fp
ld $31,56($sp)
ld $fp,48($sp)
ld $28,40($sp)
daddiu $sp,$sp,64
j $31
nop

.LC1:
.ascii "Sorted array: "
.LC2:
.ascii "%d "
.LC0:
.word 37
.word 23
.word 0
.word 17
.word 12
.word 72
.word 31
.word 46
.word 100
.word 88
.word 54
main:
daddiu $sp,$sp,-96
sd $31,88($sp)
sd $fp,80($sp)
sd $28,72($sp)
move $fp,$sp
lui $28,%hi(%neg(%gp_rel(main)))
daddu $28,$28,$25
daddiu $28,$28,%lo(%neg(%gp_rel(main)))
ld $2,%got_disp(__stack_chk_guard)($28)
ld $2,0($2)
sd $2,56($fp)
ld $2,%got_page(.LC0)($28)
daddiu $3,$2,%got_ofst(.LC0)
ldl $4,%got_ofst(.LC0)($2)
ldr $4,7($3)
move $7,$4
daddiu $3,$2,%got_ofst(.LC0)
ldl $4,8($3)
ldr $4,15($3)
move $6,$4
daddiu $3,$2,%got_ofst(.LC0)
ldl $4,16($3)
ldr $4,23($3)
move $5,$4
daddiu $3,$2,%got_ofst(.LC0)
ldl $4,24($3)
ldr $4,31($3)
daddiu $3,$2,%got_ofst(.LC0)
ldl $8,32($3)
ldr $8,39($3)
move $3,$8
sd $7,8($fp)
sd $6,16($fp)
sd $5,24($fp)
sd $4,32($fp)
sd $3,40($fp)
daddiu $2,$2,%got_ofst(.LC0)
lw $2,40($2)
sw $2,48($fp)
li $2,11 # 0xb
sw $2,4($fp)
lw $3,4($fp)
daddiu $2,$fp,8
move $5,$3
move $4,$2
ld $2,%got_disp(insertionSort(int*, int))($28)
move $25,$2
1: jalr $25
nop

ld $2,%got_page(.LC1)($28)
daddiu $4,$2,%got_ofst(.LC1)
ld $2,%call16(puts)($28)
move $25,$2
1: jalr $25
nop

sw $0,0($fp)
.L16:
lw $3,0($fp)
lw $2,4($fp)
slt $2,$3,$2
beq $2,$0,.L15
nop

lw $2,0($fp)
dsll $2,$2,2
daddiu $3,$fp,64
daddu $2,$3,$2
lw $2,-56($2)
move $5,$2
ld $2,%got_page(.LC2)($28)
daddiu $4,$2,%got_ofst(.LC2)
ld $2,%call16(printf)($28)
move $25,$2
1: jalr $25
nop

lw $2,0($fp)
addiu $2,$2,1
sw $2,0($fp)
b .L16
nop

.L15:
move $2,$0
ld $3,%got_disp(__stack_chk_guard)($28)
ld $4,56($fp)
ld $3,0($3)
beq $4,$3,.L18
nop

ld $2,%call16(__stack_chk_fail)($28)
move $25,$2
1: jalr $25
nop

.L18:
move $sp,$fp
ld $31,88($sp)
ld $fp,80($sp)
ld $28,72($sp)
daddiu $sp,$sp,96
j $31
nop

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote