hello VietNam de hello VietNam de hello VietNam de

NgcAnhPhm39 6 views 4 slides Apr 30, 2025
Slide 1
Slide 1 of 4
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4

About This Presentation

hello VietNam de


Slide Content

Họ và tên: Phạm Ngọc Anh
MSSV: 52400002
LAP 8
4/ Viết đoạn code nhập vào một số nguyên, nếu đó là số chia hết cho 3
thì thông báo ra màn hình.
.data
prompt: .asciiz "Nhap mot so nguyen: "
result: .asciiz "So chia het cho 3.\n"
not_div: .asciiz "So khong chia het cho 3.\n"
.text
.globl main
main:
# Hiển thị lời nhắc nhập số
li $v0, 4
la $a0, prompt
syscall
# Nhập số nguyên
li $v0, 5
syscall
move $t0, $v0
# Kiểm tra chia hết cho 3
li $t1, 3
div $t0, $t1
mfhi $t2
beqz $t2, divisible
# In ra thông báo không chia hết cho 3
li $v0, 4
la $a0, not_div
syscall
j exit
divisible:
# In ra thông báo chia hết cho 3
li $v0, 4
la $a0, result
syscall
exit:
li $v0, 10
syscall
6/ Viết đoạn code cho nhập vào 2 số nguyên a và b, xác định a > b hay
b > a hay 2 số bằng nhau.
.data
prompt1: .asciiz "Nhap so nguyen a: "

prompt2: .asciiz "Nhap so nguyen b: "
gt: .asciiz "a lon hon b.\n"
lt: .asciiz "b lon hon a.\n"
eq: .asciiz "a bang b.\n"
.text
.globl main
main:
# Nhập số a
li $v0, 4
la $a0, prompt1
syscall
li $v0, 5
syscall
move $t0, $v0
# Nhập số b
li $v0, 4
la $a0, prompt2
syscall
li $v0, 5
syscall
move $t1, $v0
# So sánh a và b
bgt $t0, $t1, greater
blt $t0, $t1, lesser
# Nếu bằng nhau
li $v0, 4
la $a0, eq
syscall
j exit
greater:
# In thông báo a > b
li $v0, 4
la $a0, gt
syscall
j exit
lesser:
# In thông báo b > a
li $v0, 4
la $a0, lt
syscall
exit:
li $v0, 10
syscall

7/ Viết đoạn cho nhập một số nguyên dương n, và nếu người dùng
nhập số âm hoặc số 0 thì yêu cầu nhập lại cho đến khi nào nhận được
giá trị nguyên dương.
.data
prompt: .asciiz "Nhap so nguyen duong: "
errorMsg: .asciiz "Vui long nhap so nguyen duong.\n"
.text
.globl main
main:
loop:
# Hiển thị lời nhắc nhập số
li $v0, 4
la $a0, prompt
syscall
# Nhập số
li $v0, 5
syscall
move $t0, $v0
# Kiểm tra nếu không phải số dương
blez $t0, error
# Nếu hợp lệ, thoát khỏi vòng lặp
j exit
error:
# Hiển thị thông báo lỗi
li $v0, 4
la $a0, errorMsg
syscall
j loop
exit:
li $v0, 10
syscall
8/ Nhập vào hai số nguyên dương a và b, tính tổng các số nguyên
dương có giá trị nằm trong
đoạn [a, b].
.data
prompt1: .asciiz "Nhap so nguyen duong a: "
prompt2: .asciiz "Nhap so nguyen duong b: "
result: .asciiz "Tong cac so trong doan la: "
.text
.globl main
main:

# Nhập a
li $v0, 4
la $a0, prompt1
syscall
li $v0, 5
syscall
move $t0, $v0
# Nhập b
li $v0, 4
la $a0, prompt2
syscall
li $v0, 5
syscall
move $t1, $v0
# Kiểm tra nếu a > b
bgt $t0, $t1, swap
# Tính tổng
move $t2, $t0 # $t2 = a
move $t3, 0 # $t3 = tổng
sum_loop:
add $t3, $t3, $t2
addi $t2, $t2, 1
ble $t2, $t1, sum_loop
# Hiển thị kết quả
li $v0, 4
la $a0, result
syscall
li $v0, 1
move $a0, $t3
syscall
j exit
swap:
# Hoán đổi a và b nếu a > b
move $t2, $t0
move $t0, $t1
move $t1, $t2
j sum_loop
exit:
li $v0, 10
syscall
Tags