Design a circuit to detect when 3 and only 3 bits are set
out of 8 bits.(eg. o0101100)
Answer Posted / gautam bhattacharya
Step 1: Store the 8 bit value in a accumulator
Step 2: Store 0x1 in a register0, initialize two counter
with 0 i.e. store zero in a reg1 and reg2.
LOOP:
Step 3: Check if AND operation between the value in
register0 and accumulator is set i.e. 1
if yes, increment reg1 and reg2
If no, increment only reg2
step 4: Left shift the value of register0 by 1
step 5: if ( reg2 >=8), exit LOOP
if ( reg1 >= 3), show that 3 bit is set
Else Go To LOOP
MOV XAR1, #Data
MOV XAR0, #0
MOV XAR2, #0
Loop:
TBIT *XAR1, #Count
BF Loop1, NTC
INR *XAR0
Loop1:
INR *XAR2
MOV AL, *XAR1
CMP AL, #0x03
BF Loop3, EQ
MOV AL, *XAR2
CMP AL, #0x80
BF Loop, NEQ
Loop3:
EXIT
| Is This Answer Correct ? | 0 Yes | 3 No |
Post New Answer View All Answers
What is the difference between hardware design and software design?
What software configuration management tools are you familiar working with?
What are the functional requirements that are used in the embedded systems?
How might a task-based model differ from a threaded model?
Tell me significance of watchdog timer in embedded systems?
Describe a pattern that is not the factory pattern?
Explain me what is spin lock?
Tell me how does the interrupts handle by using the threads?
How many types of ipc mechanism you know?
Are you familiar with design patterns? What design software have you used and in what situations?
Explain what is a watchdog timer?
As you know a vast majority of high performance embedded systems today use risc architecture why?
What are the differences between mocks and stubs/fakes and where you might use them.
Infinite loops often arise in embedded systems. How does you code an infinite loop in c?
What is meant by a sandbox, why you would use one.