ssse mc lab manual
ssse mc lab manual
SEMESTER – IV
BCS402
FACULTY IN-CHARGE
Dept. of CSE
Channabasaveshwara Institute of Technology
(Affiliated to VTU, Belgaum & Approved by AICTE, New Delhi)
( ISO 9001:2015 Certified Institution)
NH 206 (B.H. Road), Gubbi, Tumkur – 572 216. Karnataka
HOD
BCS402, MC-LAB IV Sem. CSE
PROGRAM NO.1
AIM: USING KEIL SOFTWARE, OBSERVE THE VARIOUS REGISTERS, DUMP,
CPSR, WITH A SIMPLE ASSEMBLY LANGUAGE PROGRAMS (ALP).
Code:
RESULT: R1=R0+5=10+5=15=0X0000000F;
R2=R1-3=15-3=12=0X0000000C;
With a simple assembly language program the various registers, CPSR, has been observed using KEIL
software.
Page 1 of 38
BCS402, MC-LAB IV Sem. CSE
PROGRAM NO.2
AIM: DEVELOP AND SIMULATE ARM ALP FOR DATA TRANSFER, ARITHMETIC
AND LOGICAL OPERATIONS (DEMONSTRATE WITH THE HELP OF A SUITABLE
PROGRAM).
ENTRY
LDR R0,=0X40000000
LDR R1,[R0]
LDR R2,[R0,#4]
STR R2,[R0]
END
Tracing:
R0=0X40000000
R1=[0X40000000]=0X12345678
[R0]=[0X40000000]=R2=0X23242526
Page 2 of 38
BCS402, MC-LAB IV Sem. CSE
Page 3 of 38
BCS402, MC-LAB IV Sem. CSE
Page 4 of 38
BCS402, MC-LAB IV Sem. CSE
Page 5 of 38
BCS402, MC-LAB IV Sem. CSE
PROGRAM NO.3
AIM: TO DEVELOP AN ALP TO MULTIPLY TWO 16-BIT BINARY NUMBERS.
PROGRAM
AREA MULTIPLY, CODE, READONLY
ENTRY
START
LDR R1,=0X1234
LDR R2,=0X2345
MUL R3,R2,R1
END
TRACING:
R1,=0X1234
R2,=0X2345
R3=R2*R1=1234*2345=2820404
RESULT: R3=0X02820404
An ALP to multiply two 16-bit binary numbers has been developed and result has been verified using KEIL
software.
Page 6 of 38
BCS402, MC-LAB IV Sem. CSE
PROGRAM NO.4
AIM: TO WRITE A PROGRAM TO FIND THE SUM OF THE FIRST 10 INTEGER
NUMBERS.
1+2+3+4+5+6+7+8+9+10=55=0X37
PROGRAM
NEXT
ADD R1,R1,R2 ; add the numbers
ADD R2,#1 ; increment the integer
SUBS R0,#1 ; decrement counter
BNE NEXT ;branch to the loop if not equal to zero
END
TRACING:
R0=10=0XA
R1=0
R2=1
R1=R1+R2=0+1=1 R1=1+2=3 R1=3+3=6 R1=6+4=10=0XA
R2=R2+1=1+1=2 R2=2+1=3 R2=3+1=4 R2=4=1=5
R0=R0-1=10-1=9 R0=9-1=8 R0=8-1=7 R0=7-1=6
Page 7 of 38
BCS402, MC-LAB IV Sem. CSE
R1=36+9=45=0X2D R1=45+10=55=0X37
R2=9+1=10 R2=10+1=11
R0=2-1=1 R0=1-1=0
RESULT: R1=55=0X37
Program to find the sum of the first 10 integer numbers has been executed and its result has
been verified.
Page 8 of 38
BCS402, MC-LAB IV Sem. CSE
PROGRAM NO.5
AIM: TO WRITE A PROGRAM TO FIND THE LARGEST OR SMALLEST NUMBER IN AN
ARRAY OF 32 NUMBERS.
AREA LARGEST,CODE,READONLY
ENTRY
MOV R5,#5
LDR R0,A
LDR R2,[R0]
NEXT ADD R0,#4
LDR R3,[R0]
CMP R2,R3
BHS LARGE
MOV R2,R3
LARGE SUBS R5,#1
BNE NEXT
LDR R1,RES
STR R2,[R1]
STOP B STOP
A DCD 0X40000000
RES DCD 0X40000020
END
Page 9 of 38
BCS402, MC-LAB IV Sem. CSE
TRACING:
R5=5
R0=0X40000000
R2=[0X40000000]=25
RO=0X40000004 RO=0X40000008
NEXT R3=[0X40000004]=33 R3=[0X40000008]=85
COMPARE 25 AND 33 IS 25>33 NO THEN IS 33>85 NO THEN
R2=R3=33 R2=R3=85
R5=4 (R5 !=1) THEN BRANCH TO NEXT R5=3 (R5 !=1) THEN BRANCH TO NEXT
RO=0X4000000C RO=0X40000010
R3=[0X4000000C]=99 R3=[0X40000010]=59
IS 85>99 NO THEN IS 99>59 TES THEN
R2=R3=99
R5=2 (R5 !=1) THEN BRANCH TO NEXT R5=1 (R5 !=0) THEN BRANCH TO NEXT
RO=0X40000014
R3=[0X40000014]=44
IS 44>99 NO THEN
Page 10 of 38
BCS402, MC-LAB IV Sem. CSE
Program to find the largest or smallest number in an array of 32 numbers has been executed and its result has
been verified.
Page 11 of 38
BCS402, MC-LAB IV Sem. CSE
PROGRAM NO.6
AIM: TO WRITE A PROGRAM TO COUNT THE NUMBER OF ONES AND ZEROS IN
TWO CONSECUTIVE MEMORY LOCATIONS.
AREA ONESS,CODE,READONLY
ENTRY
MOV R1,#0 ;counter for ones
MOV R2,#0 ;counter for zeros
MOV R3,#2 ;counter to set two words
LDR R4,=VALUE ;loads the address of value
LOOP2
MOV R5,#32
LDR R6,[R4],#4
LOOP0
MOVS R6,R6,ROR #1
BHI ONES
ADD R2,R2,#1
B LOOP1
ONES
ADD R1,R1,#1
LOOP1
SUBS R5,R5,#1
BNE LOOP0
Page 12 of 38
BCS402, MC-LAB IV Sem. CSE
SUBS R3,R3,#1
BNE LOOP2
STOP B STOP
R6=0X60000000
IS C=1? NO ITS ZERO THEN
R2=0X00000001 BRANCH TO LOOP1 THEN
R5=0X0000001D OR 29
CHECKS R5=0 NO ITS 29 BRANCH TO LOOP0
THE LOOP WILL REPEAT UNTILL R5=0
RESULT:
No. of ones =3 = R1=0x00000003
No. of zeros = 61 =R2=0x0000003D
A program to count the number of ones and zeros in two consecutive memory locations has been executed and its
result has been verified.
Page 13 of 38
BCS402, MC-LAB IV Sem. CSE
PROGRAM NO.7
AIM: TO SIMULATE A PROGRAM IN C FOR ARM MICROCONTROLLER USING KEIL TO
SORT THE NUMBERS IN ASCENDING/DESCENDING ORDER USING BUBBLE SORT.
EMBEDDED C PROGRAM
#include <LPC214x.h>
int main(void) {
// Example array to sort
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
while (1) {
// Infinite loop
}
}
Page 14 of 38
BCS402, MC-LAB IV Sem. CSE
PROGRAM NO.8
AIM: SIMULATE A PROGRAM IN C FOR ARM MICROCONTROLLER TO FIND FACTORIAL
OF A NUMBER.
EMBEDDED C PROGRAM
#include <LPC214x.h>
int main(void) {
unsigned int number = 5; // Example number to find factorial of
unsigned int result;
result = factorial(number);
while (1) {
// Infinite loop
}
}
Page 15 of 38
BCS402, MC-LAB IV Sem. CSE
VIVA QUESTIONS:
c) 32-bit CISC
d) 32-bit RISC
Explanation: ARM7TDMI has 37 registers(31 GPR and 6 SPR). All these designs use a Von Neumann
architecture, thus the few versions comprising a cache do not separate data and instruction caches.
a) True
b) False
a) 110 MIPS
b) 150 MIPS
c) 125 MIPS
d) 130 MIPS
a) True
b) False
a) ARM6
b) ARMv3
Page 16 of 38
BCS402, MC-LAB IV Sem. CSE
c) ARM71a0
d) ARMv4T
a) Big Endian
b) Little Endian
Page 17 of 38