Bài 1 Tính tổng 1+ x^2 + x^3 +...+ x^n va 5<=n<=10
AREA RESET, DATA, READONLY
DCD 0x20001000
DCD RESET_HANDLER
ALIGN
AREA MYCODE, CODE, READONLY
ENTRY
EXPORT RESET_HANDLER
PT PROC
ADD R2, #1
CMP R2, #8 ;#8 la so mu cua phuong trinh, so N
BGT EXIT
B NHAN
NHAN
MUL R0, R1
ADD R3, R0
B PT
EXIT
BX LR
ENDP
RESET_HANDLER
MAIN PROC
MOV R0, #3 ;Dat R0 la so X cua phuong trinh
MOV R1, R0 ;Truyen gia tri cua R0 vao trong R1
MOV R2, #1 ;R2 la bien chay tu 1 den mu N
MOV R3, #1 ;R3 la ket qua cua phuong trinh
BL PT
ENDP
END
Bài 2:
- Tính tồng các phần tử trên đường chéo phụ của ma trận 4x4
- Đếm số phần tử là SNT trên đường chéo chính của ma trận 4x4
AREA RESET, DATA, READONLY
DCD 0x20001000
DCD RESET_HANDLER
ALIGN
MATRIX
DCD 0,2,3,4
DCD 5,7,7,8
DCD 9,10,15,12
DCD -3,14,15,-13
AREA MYCODE, CODE, READONLY
ENTRY
EXPORT RESET_HANDLER
HAM1 PROC
ADD R8, #1
CMP R8, #4
BGT EXIT
ADD R0, #12
LDR R1, [R0]
ADD R2, R1
B HAM1
;------------------------------------HAM2 PROC
ADD R8, #1
CMP R8, #4
BGT EXIT
LDR R1, [R0], #20
MOV R5, #1; Bien chay i
CMP R1, #0
BGT CHECK
B HAM2
CHECK
ADD R5,#1
CMP R5, R1
BEQ ADDSNT
BGT HAM2
UDIV R4, R1, R5
MLS R4, R4, R5, R1
CMP R4, #0
BEQ HAM2
B CHECK
ADDSNT
ADD R3, #1
B HAM2
EXIT
BX LR
ENDP
RESET_HANDLER
MAIN PROC
LDR R0, =MATRIX
MOV R8, #0
BL HAM1
;------------------------------------LDR R0, =MATRIX
MOV R8, #0
BL HAM2
NOP
ENDP
END
Bài 3:
- Tính tổng các số chia hết cho 7 trên đường chéo chính của ma trận
4x4(Tương tự cho 5, 6, 8, 10)
- Đếm số phần tử là số chẵn trên đường chéo phụ của ma trận
4x4(Nếu số lẻ thì số dư sẽ là 1 thay vì 0)
AREA RESET, DATA, READONLY
DCD 0x20001000
DCD RESET_HANDLER
ALIGN
MATRIX DCD 0,2,3,4
DCD 5,21,7,8
DCD 9,10,1,12
DCD -4,14,15,-7
AREA MYCODE, CODE, READONLY
ENTRY
EXPORT RESET_HANDLER
HAM1 PROC
ADD R8, #1
CMP R8, #4
BGT EXIT
LDR R1, [R0], #20
MOV R2, R1
CMP R2, #0
BGT CHECK
BLT HOANDOI
B HAM1
HOANDOI
NEG R2, R2; R2 = -R2
B CHECK
CHECK
UDIV R4, R2, R7
MLS R4, R4, R7, R2; R4 = R2 - (R4*R7)
CMP R4, #0
BEQ ADDNUM
B HAM1
ADDNUM
ADD R3, R1
B HAM1
;---------------------------------------HAM2 PROC
ADD R8, #1
CMP R8, #4
BGT EXIT
ADD R0, #12
LDR R1, [R0]
CMP R1, #0
BLT HAM2
UDIV R5, R1, R7
MLS R5, R5, R7, R1
CMP R5, #0
BEQ COUNT2
B HAM2
COUNT2
ADD R4, #1
B HAM2
EXIT
BX LR
ENDP
RESET_HANDLER
MAIN PROC
LDR R0, =MATRIX
MOV R7, #7
MOV R8, #0
BL HAM1 ;LUU KET QUA VAO R3
;----------------------------------LDR R0, =MATRIX
MOV R7, #2
MOV R8, #0
MOV R4, #0
BL HAM2 ;LUU KET QUA VAO R4
ENDP
END
Bài 4:
- Tính tổng giá trị của các số dương trên đường chéo chính của ma
trận 4x4
- Tính ước chung lớn nhất của một chuỗi số
AREA RESET, DATA, READONLY
DCD 0x20001000
DCD RESET_HANDLER
ALIGN
MATRIX DCD 0,2,3,4
DCD 5,7,7,8
DCD 9,10,15,12
DCD -3,14,15,-13
STRING DCD 0,0,4,-13,0,6
AREA MYCODE, CODE, READONLY
ENTRY
EXPORT RESET_HANDLER
HAM1 PROC
ADD R8, #1
CMP R8, #4
BGT EXIT
LDR R1, [R0], #20
CMP R1, #0
BLE HAM1
ADD R4, R1
B HAM1
;------------------------HAM2 PROC
LDR R1, [R0]
CMP R1, #0
BLT HOANDOI1
BEQ PASSZERO
B FINDUCLN
FINDUCLN
ADD R8, #1
CMP R8, #6
BGT EXIT
LDR R2,[R0],#4
CMP R2, #0
BLT HOANDOI2
BEQ FINDUCLN
B UCLN
HOANDOI2
NEG R2, R2
B UCLN
UCLN
CMP R1, R2
BGT S_A
BLT S_B
BEQ FINDUCLN
S_A
SUB R1, R1, R2
B UCLN
S_B
SUB R2, R2, R1
B UCLN
EXIT
BX LR
ENDP
HOANDOI1
NEG R1, R1
B FINDUCLN
PASSZERO
ADD R8, #1
ADD R0, #4
LDR R1, [R0]
CMP R1, #0
BEQ PASSZERO
BLT HOANDOI1
B FINDUCLN
RESET_HANDLER
MAIN PROC
LDR R0, =MATRIX
MOV R8, #0
BL HAM1
;----------------------------LDR R0, =STRING
MOV R8, #0
BL HAM2
ENDP
END