الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد حلا

مغلق
بدأه جودانه في 26 يناير 2007 · 3 رد · 1,006 مشاهدة · في الميكروكنترولر (المتحكم) و الدوائر الرقمية و المنطقية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا عندي برنامج على mips يعمل binary searsh باستخدام boubble sort

وحاولت اكتب البرنامج لكن هناك اخطاء لم احاول اكتشافها لاني مبتدئه جدا

وهذا هو الكود

.text
main:
			 lw $a0,v
			  lw $a1,n1
			  lw $a2,n2
			  jal bsearch
			ori $2,$0,10
		   syscall

bsearch:
		   addi $sp,$sp,-28
		   sw $ra,24($sp)
		   sw $s0,20($sp)
		   sw $s1,16($sp)
		  sw $s2,12,($sp)
		 sw $s3,8($sp)
		sw $s4,4($sp)
	   sw $s5,0($sp)
	   move $s3,$a0
	   move $s4,$a1
		  move $s5,$a2

addi $s0,$zero,1
move $a0,$s3
addi $a1,$zero,10
 jal  sort

move $s1,$s4
slt $t0,$s1,$s0
bne $t0,$zero,exit
move $a0,$s0
move $a1,$s1
jal  mid

sll $t0,$v0,2
add $t0,$t0,$s3
lw $t1,0($t0)
slt $t0,$s5,$t1
beq $t0,$zero,else
addi $s1,$v0,-1
j L

else :
 addi $s0,$v0,1
L:
bne $s5,$t1,exit
 add $v1,$s3,$v0
exit:
add $v0,$zero,0xffffffff
lw $s5,0($sp)
lw $s4,4($sp)
lw $s3,8($sp)
lw $s2,12($sp)
lw $s1,16($sp)
lw $s0,20($sp)
lw $ra,24($sp)

addi $sp,$sp,28
		jr $ra


mid:
  add $t0,$a0,$a1
srl $v0,$t0,1
jr $ra

sort :
addi $sp,$sp,-20
sw $ra,16($sp)
sw $s3,12($sp)
sw $s2,8($sp)
sw $s1,4($sp)
sw $s0,0($sp)


sll $t1,$a1,2
add $t1,$a0,$t1
lw $t0,0($t1)
lw $t2,4($t1)

sw $t2,0($t1)
sw $t0,4($t1)
jr $ra

.data
n1: .word 10
n2: .word 12
v: .word -2,0,5,7,9,12,17,25,40,128

ارجواا المساعده ولكم مني جزيل الشكر

#2

لو تبغي الـ bouble sort على الـ C

وبعدين تحوليها اسمبلي علميني

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#3

السلام عليكم ورحمة الله وبركاته

سبق وان تركتلك رد على الموضوع في قسم الأسمبلي ولم أتلقى إجابة

/index.php?showtopic=117469

في البداية هل البرنامج binary searsh أو boubble sort أو كلاهما ؟؟

هنا تعديل ع الكود , لكن Binary Search فقط

   



.data
v: .word -2,0,5,7,9,12,17,25,40,128
FOUNDS:  .asciiz "FOUND" # declares a null-terminated string, to "prettify" output
NOTFOUNDS: .asciiz "NOTFOUND" 

.text
main:
			 la $a0,v
			 li $a1,10
			 li $a2,25


			  jal bsearch
			  li $v0, 10  
  syscall 

bsearch:



		   addi $sp,$sp,-28
		   sw $ra,24($sp)
		   sw $s0,20($sp)
		   sw $s1,16($sp)
		  sw $s2,12,($sp)
		 sw $s3,8($sp)
		sw $s4,4($sp)
	   sw $s5,0($sp)



li $s4,0 # Set Initial Left
li $s5,10 # Set Initial Right

#Read Number From User
li $v0, 5  
syscall  # Number Saved In $v0
add $a2,$v0,$zero


towhile:

slt $t0,$s4,$s5  # While(left < Right )
beq $t0,$zero,NotFound

jal  mid

add $t1 , $v1,$v1 # Index Of Array * 4
add $t1 , $t1,$t1

add $t1 , $a0,$t1 #Phisical Adress = Base Adress + Index Of Array *4
lw $t1 ,0($t1)  # $t1 = V[ PH.A ]
beq $t1,$a2, InArray 

slt $t2,$a2,$t1
bne $t2,$zero , SetRight

addi $s4,$v1,1
j towhile

SetRight:
add $s5,$v1,$zero

j towhile


InArray:

 li  $v0, 4  # system call code for printing string = 4
 la  $a0, FOUNDS # load address of string to be printed into $a0
 syscall

j Exit


NotFound:

 li $v0, 4  # system call code for printing string = 4
 la $a0, NOTFOUNDS # load address of string to be printed into $a0
 syscall






Exit:



lw $s5,0($sp)
lw $s4,4($sp)
lw $s3,8($sp)
lw $s2,12($sp)
lw $s1,16($sp)
lw $s0,20($sp)
lw $ra,24($sp)

addi $sp,$sp,28

jr $ra


mid:
   add $t0,$s4,$s5
 srl $v1,$t0,1
jr $ra
ENG-GAZA.GIF
#4
السـاحر كتب:
لو تبغي الـ bouble sort على الـ C

وبعدين تحوليها اسمبلي علميني

مرحبا أخوي الساحر

ياريت لو تضيف كود الـ bouble sort

وشكرا جزيلا لك

تم تعديل هذه المشاركة بواسطة Eng_Gaza في 4 فبراير 2007 في 19:25

ENG-GAZA.GIF

هذا الموضوع مغلق.

مواضيع مشابهة