Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

ASSEMBLY LANGUAGE Write assembly code segments for the following: 1) if (x > 17)

ID: 3811108 • Letter: A

Question

ASSEMBLY LANGUAGE

Write assembly code segments for the following:

1) if (x > 17)
      y=12;
   else
      y=0;


2) if (x <= y)
     z= 25;
   else
    z=50;

3) if (x==4) and (y>0)
         z=10;
   else
         z=5;

4) if (x==4) or (y>0)
       z=10;
   else
       z=5;

Part II.
5) What is the output of the following assembly code segment? How would the code be written in a higher-level language?

       mov x, 25
       mov y, 3
       mov ax, x
       cmp ax, y
       je One
       cmp y, 0
       jnl Two
       jmp Next
One: imul y
        jmp Next
Two: mov Num, 10
        imul Num
Next: call PutDec

6)   What is the output of the following assembly code segment?  How would the code be written in a higher-level language?

mov x, 5
mov y, 5
mov ax, x
cmp ax, y
je One
cmp y, 0
jnl Two
jmp Next
One: imul y
jmp Next
Two: mov Num, 10
imul Num
Next: call PutDec

Explanation / Answer

1)
   Suppose a is in register BL, b is in register CL.
   And y is in register DL.
  
           CMP BL, CL
           JG greaterThan
           MOV DL, 0
           JMP Down
greaterThan:MOV DL, 12
Down:      

2)
   Suppose x is in register BL, y is in register CL.
   And z is in register DL.

           CMP BL, CL
           JLE lessThan
           MOV DL, 50
           JMP Down
lessThan:   MOV DL, 25
Down:

3)
   Suppose x is in register BL, y is in register CL.
   And z is in register DL.
  
           CMP BL, 4
           JNE next
           CMP CL, 0
           JL next
           MOV DL, 10
           JMP Down
   next:   MOV DL, 5
   Down:
  
4)
   Suppose x is in register BL, y is in register CL.
   And z is in register DL.
  
           CMP BL, 4
           JE next
           CMP CL, 0
           JL elsePart
   next:   MOV DL, 10
           JMP Down
elsePart:   MOV DL, 5
   Down: