intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài tập hợp ngữ MIPS 2

Chia sẻ: Abcdef_45 Abcdef_45 | Ngày: | Loại File: PDF | Số trang:7

621
lượt xem
71
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'bài tập hợp ngữ mips 2', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Bài tập hợp ngữ MIPS 2

  1. Bài tập hợp ngữ MIPS 2 1. Nhập vào N số nguyên, lưu vào Stack. Xuất ra màn hình theo thứ tự ngược lại lúc nhập vào. Với N
  2. j begin_loop_1 end_loop_1: la $a0, text_2 #load text_2 string jal print_text move $s1, $s0 # $s1 = $s0 begin_loop_2: beq $s1, $zero, end_loop_2 # if (n==0) jump end_loop_2 jal stack_pop move $a0, $v0 jal print_int jal print_space addi $s1, $s1, -1 # n-- j begin_loop_2 end_loop_2: j end_program print_text: li $v0, 4 #print text syscall jr $ra read_int: li $v0, 5 #read interger syscall jr $ra print_int: li $v0, 1 #print interger syscall jr $ra print_space: addi $a0,$zero, 32 # $a0 = " " li $v0, 11 #print character syscall
  3. jr $ra stack_push: addi $sp, $sp, -4 # $sp -=4 (new 4 byte in stack) sw $a0, 0($sp) #put a word to stack jr $ra stack_pop: lw $v0, 0($sp) #get a word form stack addi $sp, $sp, 4 # $sp +=4 (free 4 byte in stack) jr $ra end_program: Bài 2: .data text_1: .asciiz "n = " text_2: .asciiz "Xuat ra: " .text main: la $a0, text_1 #load text_1 string jal print_text jal read_int move $s0, $v0 # n: $s0 la $a0, text_2 #load text_2 string jal print_text li $s1, 0 # $s1=0 begin_loop: beq $s0, $zero, end_loop # if (n==0) jump end_loop move $a0, $s1 jal print_int jal print_space addi $s1, $s1, 2 # $s1 += 2
  4. addi $s0, $s0, -1 # n-- j begin_loop end_loop: j end_program print_text: li $v0, 4 #print text syscall jr $ra read_int: li $v0, 5 #read interger syscall jr $ra print_int: li $v0, 1 #print interger syscall jr $ra print_space: addi $a0,$zero, 32 # $a0 = " " li $v0, 11 #print character syscall jr $ra end_program: Bài 3: .data text_1: .asciiz "n = " text_2: .asciiz "Xuat ra: " .text main: la $a0, text_1 #load text_1 string jal print_text jal read_int move $s0, $v0 # n: $s0
  5. move $s1, $s0 # $s1 = $s0 begin_loop_1: beq $s1, $zero, end_loop_1 # if (n==0) jump end_loop_1 jal read_int move $a0, $v0 jal stack_push addi $s1, $s1, -1 # n-- j begin_loop_1 end_loop_1: addi $a0, $zero, 1 move $a1, $s0 jal insert_sort la $a0, text_2 #load text_2 string jal print_text move $s1, $s0 # $s1 = $s0 begin_loop_2: beq $s1, $zero, end_loop_2 # if (n==0) jump end_loop_2 jal stack_pop move $a0, $v0 jal print_int jal print_space addi $s1, $s1, -1 # n-- j begin_loop_2 end_loop_2: j end_program print_text: li $v0, 4 #print text syscall jr $ra
  6. read_int: li $v0, 5 #read interger syscall jr $ra print_int: li $v0, 1 #print interger syscall jr $ra print_space: addi $a0,$zero, 32 # $a0 = " " li $v0, 11 #print character syscall jr $ra stack_push: addi $sp, $sp, -4 # $sp -=4 (new 4 byte in stack) sw $a0, 0($sp) #put a word to stack jr $ra stack_pop: lw $v0, 0($sp) #get a word form stack addi $sp, $sp, 4 # $sp +=4 (free 4 byte in stack) jr $ra insert_sort: #vitri=$a0 beq $a0, $a1, end_sort move $t0,$sp move $t1, $a0 begin_loop: beq $t1, $zero, end_loop addi $t0, $t0, 4 addi $t1, $t1, -1 j begin_loop end_loop: lw $t1,0($t0) # $t1=a[i]
  7. for: beq $t0, $sp, next lw $t2, -4($t0) # $t2=a[j-1] ble $t2, $t1, next sw $t2,0($t0) addi $t0, $t0, -4 j for next: sw $t1,0($t0) #a[j]=$t1 addi $a0, $a0, 1 j insert_sort end_sort: jr $ra end_program:
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2