Hỏi về nhập xuất chuỗi trong assembly cấu trúc MIPS?

em có 1 code nhập xuất chuỗi như sau:

.data 
	enterString: .asciiz "Nhap Chuoi:"
	outerString: .asciiz "\nXuat Chuoi:"
.text 
	.globl main
	main:
		li $v0,4
		la $a0,enterString
		syscall
		
		li $v0,8
		syscall
		move $s1,$v0
		
		li $v0,4
		la $a0,outerString
		syscall
		
		li $v0,4
		move $a0,$s1
		syscall

đổi sang nhập xuất số thì được , nhưng thành code này lại lỗi

các anh em trong dạy nhau học giúp em với !!! em cảm ơn nhiều, em mò nát gg rồi

Thì có chỗ nào lưu chuỗi đâu.

.data 
	inputStr: .space 16
	enterString: .asciiz "Nhap Chuoi:"
	outerString: .asciiz "\nXuat Chuoi:"
.text 
	.globl main
	main:
		li $v0,4
		la $a0,enterString
		syscall
		
		li $v0,8 # system call để đọc chuỗi
		la $a0, inputStr #  đưa địa chỉ biến để nhập chuỗi
		li $a1, 16 # chiều dài của biến lưu chuỗi input
		move $t0, $a0 # tạm lưu vào biến tạm để lát in ra sau
		syscall
		
		li $v0,4
		la $a0,outerString
		syscall
		
		la $a0, inputStr
		move $a0, $t0
		li $v0, 4 
		syscall
		
		li $v0, 10
		syscall
3 Likes

- Cách đọc chuỗi

  • Gán $v0 = 8
    li $v0 8
  • Gán $a0 = địa chỉ chuỗi ô nhớ chứa chuỗi
    .data
    str : .space 10 #Xin 10 ô nhớ từ hệ điều hành
    .text
    la $a0, str
  • Gán $a1 = số lượng ký tự tối đa chuỗi
    li $a1, 10
  • syscall
3 Likes

e có bài tập xuất nhập chuỗi k dùng biến tạm thì sao ạ

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?