(20') Write an assembly language program that compares the elements of two arrays, A(I) and B(I). Each array contains 100 16-bit signed numbers. Compare the corresponding elements of the two arrays until either two elements are found to be unequal or all elements of the arrays have been compared and found to be equal. Assume that the arrays start in the current data segment at offset address A000H and B000H, respectively. If the two arrays are found to be unequal, save the address of the first unequal element of A(I) in the memory location with offset address [FOUND] in the current data segment; otherwise, write all 0s into this location. Hints: You need both branch and loop structures for this question. An example algorithm might be:
Initialize counter CX=100D, Initialize SI, Initialize DI,
RPT: Move word data from [SI] to AX Compare AX with [DI], Jump to Mismatch case if they are not equal, Increment SI by 2, Increment DI by 2. Decrement CX, Jump to RPT again if CX is not zero,
Set [FOUND]=0000H ;If all data compared and no unequal element is found, set [FOUND]=0000H. Jump to Done
Mismatch: Move SI to [FOUND] ; If any unequal element is found, send its address to [FOUND]
Done