Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Convert C language to Assembly Language for Assembly Simulator Assembly Instructions : Program should count the taxicab distance of the empty space (in this case

Convert C language to Assembly Language for Assembly Simulator

Assembly Instructions :

image text in transcribed

Program should count the taxicab distance of the empty space (in this case represented by the number 16) to the last index.

Start Position -> 8000h

Result -> R1

If error return FFFFh in R1

Rules :

Program should end as follow -> END: JMP END ;END OF PROGRAM

C code :

#include

int main () { int array[] = {9, 7, 1, 6, 13, 3, 12, 2, 11, 15, 10, 14, 5, 16, 8, 4}; int i, row, rowcounter = 1, columncounter = 1, nrOfcolumns = 4, nrOfrows = 4, result = 0; for( i = 0; i 4) columncounter = 1; // Calculate row if(array[i] == 16) { if(rowcounter

Example of another working assembly program for P3 Simulator. Try to keep the same code configuration

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; EP1A1 (Example 1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Function EP1A1(N) ; res = 0 ; For i=1 To N ; res=res+i ; Next ; EP1A1=res ; End Function ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 1. Arguments in memory, away from the start of the program ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORIG 1000h

_N WORD 10

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; If the program reaches 1000h, overlaps ; the memory value of _N, that at the moment is ; 10. ; As it's a small program, the risk of that happening ; is very small. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 2. Allocate the program in the beggining fof the memory ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; the returned value stays at R1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORIG 0000h

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 3. Inititate R1 that is res with value 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

EP1A1: MOV R1,R0 ; R1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 4. Initiate R2 that is the iterator variable i ; with the value 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MOV R2,R0 ; R2

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 5. for each step of the cicle, increase the variable ;iterator value ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Cicle: INC R2

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 6. Add the iterator variable i (R2) ; to the result res (R1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ADD R1, R2

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 7. Check if iterator variable i (R2) ; have reached the limit that we are interested in _N ; Note that the access to _N is M[_N] as we are interested ; in having the value of _N, and not the memory ; position of _N, that is 1000h ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CMP R2,M[_N] ; i!=_N

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 8. If the limit is not being reached, ; continue to the next cycle ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

BR.NZ Cicle

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 9. The limit has been reached ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

End: JMP End ; End of program

Arithmetic Logic Movement Control Pseudo Transfer Generic ORIG NEG COM SHR BR MOV NOP EQU BR. cond INC AND SHL MVBH ENI SHRA WORD DEC OR JMP MVBL DSI STR JMP. cond ADD XOR SHLA XCH STC TAB TEST ROR CALL PUSH ADDC CLC CALL. cond ROL SUB POP CMC SUBB RORC RET CMP ROLC RETN MUL RTI DIV INT

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Machine Learning And Knowledge Discovery In Databases European Conference Ecml Pkdd 2016 Riva Del Garda Italy September 19 23 2016 Proceedings Part 1 Lnai 9851

Authors: Paolo Frasconi ,Niels Landwehr ,Giuseppe Manco ,Jilles Vreeken

1st Edition

3319461273, 978-3319461274

More Books

Students also viewed these Databases questions

Question

=+Is the sex appropriate for the organization?

Answered: 1 week ago