Question

must be written in assembly code Write an MSP430 assembly language subroutine, REP_FREE, to examine the...

must be written in assembly code

Write an MSP430 assembly language subroutine, REP_FREE, to examine the elements of an array of positive word-size numbers stored at location ARRAY_IN. The array is already sorted in an ascending order. The first element is the number, n,which is the length of the array. The subroutine will copy the elements from location ARRAY_IN to location ARRAY_OUT. While copying, if an element appears more than once (repeated), then the repeated copies are ignored. In essence, the subroutine eliminates the replicated elements from ARRAY_IN and places the results in ARRAY_OUT. Note that you need to update number m (the first element on the top) which is the actual number of elements in ARRAY_OUT after eliminating all replicates.The subroutine also returns the number of eliminations in R11.

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Problem – Determine largest number in an array of n elements. Value of n is stored at address 2050 and array starts from address 2051. Result is stored at address 3050. Starting address of program is taken as 2000.

Example –


Algorithm –

  1. We are taking first element of array in A
  2. Comparing A with other elements of array, if A is smaller then store that element in A otherwise compare with next element
  3. The value of A is the answer

Program –

MEMORY ADDRESS MNEMONICS COMMENT
2000 LXI H 2050 H←20, L←50
2003 MOV C, M C←M
2004 DCR C C←C-01
2005 INX H HL←HL+0001
2006 MOV A, M A←M
2007 INX H HL←HL+0001
2008 CMP M A-M
2009 JNC 200D If Carry Flag=0, goto 200D
200C MOV A, M A←M
200D DCR C C←C-1
200E JNZ 2007 If Zero Flag=0, goto 2007
2011 STA 3050 A→3050
2014 HLT

Explanation – Registers used: A, H, L, C

  1. LXI 2050 assigns 20 to H and 50 to L
  2. MOV C, M copies content of memory (specified by HL register pair) to C (this is used as a counter)
  3. DCR C decrements value of C by 1
  4. INX H increases value of HL by 1. This is done to visit next memory location
  5. MOV A, M copies content of memory (specified by HL register pair) to A
  6. INX H increases value of HL by 1. This is done to visit next memory location
  7. CMP M compares A and M by subtracting M from A. Carry flag and sign flag becomes set if A-M is negative
  8. JNC 200D jumps program counter to 200D if carry flag = 0
  9. MOV A, M copies content of memory (specified by HL register pair) to A
  10. DCR C decrements value of C by 1
  11. JNZ 2007 jumps program counter to 2007 if zero flag = 0
  12. STA 3050 stores value of A at 3050 memory location
  13. HLT stops executing the program and halts any further execution
Add a comment
Know the answer?
Add Answer to:
must be written in assembly code Write an MSP430 assembly language subroutine, REP_FREE, to examine the...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • This has to be in MSP430 assembly language. Thank you! Here is a link with instructions...

    This has to be in MSP430 assembly language. Thank you! Here is a link with instructions set for msp430 (pages 5-8): https://www.ti.com/sc/docs/products/micro/msp430/userguid/as_5.pdf Write an MSP430 assembly language subroutine, REP_FREE, to examine the elements of a list of positive word-size numbers stored at location LIST_IN. The list is already sorted in ascending order. The first element is the number, n, which is the length of the array. The subroutine will copy the elements from location LIST IN to location LIST_OUT. While...

  • Write a subroutine code in ASSEMBLY LANGUAGE (Mano format) to divide two positive numbers by repe...

    Write a subroutine code in ASSEMBLY LANGUAGE (Mano format) to divide two positive numbers by repeated subtraction method. For example, to divide 100 over 8 by subtracting 8 from 100 until the reminder be less than 8, then count the times of the subtractions, to give the result. The first number, second number, and then the result locations must follow the calling code. PLEASE WRITE YOUR ANSWER IN ASSEMBLY LANGUAGE ONLY.

  • Write a program in ARM assembly language that copies each element of array A to consecutive...

    Write a program in ARM assembly language that copies each element of array A to consecutive fourth elements of array B, i.e., A[0] to B[0], A[1] to B[3], A[2] to B[7], etc. The array A is 12 elements long, and each element is a number that is 32 bits (1 word) wide. Assume the base address of array A is in register R2, and the base address of array B is in R3.

  • Write an ARM assembly language subroutine (named nfibo) to calculate and return the n-th Fibonacci number....

    Write an ARM assembly language subroutine (named nfibo) to calculate and return the n-th Fibonacci number. Fibonacci numbers (or a Fibonacci sequence) are a series of numbers with a property that the next number in the series is a sum of previous two numbers. Starting the series from 0, 1 as the first two numbers we have 0, 1, (0 + 1) = 1, (1 + 1) = 2, (1 + 2) = 3, (2 + 3) = 5, (3...

  • Please, implement these subroutine. Write assembly language subroutines to perform the calculations listed hereunder: Table 1:...

    Please, implement these subroutine. Write assembly language subroutines to perform the calculations listed hereunder: Table 1: List of required subroutines. z= ABS (1) umber z=MAX(x, y) Get absolute value of a x: 16-bit signed z: 16-bit unsigned signed number. integer integer for the Assume signed number are absolute value of x represented in 2's i.e. X complement format. Given the elements x and x, y: 16-bit z: 16-bit unsigned y. Return the element with unsigned integers. integer storing the greater...

  • Programming language: Java Home Work No.2 due 09.11.2019 either ascending or descending SORTING: An array is...

    Programming language: Java Home Work No.2 due 09.11.2019 either ascending or descending SORTING: An array is said to be ordered if its values order. In an ascending ordered array, the value of each element is less than or equal to the value of the next element. That is, [each element] <= [next element]. A sort is an algorithm for ordering an array. Of the many different techniques for sorting an array we discuss the bubble sort It requires the swapping...

  • Assembly Language Programming Assignment program must be in: MASM assembly language / x86 architecture / irvine...

    Assembly Language Programming Assignment program must be in: MASM assembly language / x86 architecture / irvine library procedures Objectives: 1. using register indirect addressing 2. passing parameters 3. generating “random” numbers 4. working with arrays Description: Write and test a MASM program to perform the following tasks: 1. Introduce the program. 2. Generate ARRAYSIZE random integers in the range [LO = 10 .. HI = 29], storing them in consecutive elements of an array. ARRAYSIZE should be set to 200....

  • How to write assembly language for x86 and where do I put the code under as? please give me answe...

    how to write assembly language for x86 and where do I put the code under as? please give me answer as soon as possible. ZOOMt COSC 2325.S01 Kxtra Credit l'rogram Problem: Starting wilh the following C+program #includes iostream > using cspace sld; cxlem'C" long Average (long, long LD; void main long Arrayl Г 101-1, 2, 3. 4, 5, 6, 7, 8. 9. 103; long Aray2 111」 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; coul <'': "Average...

  • WRITE THE FOLLOWING CODE IN FLOATING POINT NUMBERS IN ASSEMBLY LANGUAGE USING MIPS IN MARS .data...

    WRITE THE FOLLOWING CODE IN FLOATING POINT NUMBERS IN ASSEMBLY LANGUAGE USING MIPS IN MARS .data prompt: .asciiz "\nMaximum number is : " prompt1: .asciiz "\nMinimum number is : " prompt2: .asciiz "\nRange of the array is : " size: .word 10 #load array array: .word 23, -12, 45, -32, 52, -72, 8, 13,22,876 .text #load address of array and size la $s4,array #load address of A lw $t0,size #load i to t0 jal getArrayRange li $v0, 4    la...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT