Given the byte array source write an asm procedure which


1.(20pts) Following is the C/C++ code for comparing two integers:

if (x > y) result = 0;

else result = 1;

Convert the code above to its assembler equivalent, preserving the same functionality of the code.

2. Given the BYTE array "source", write an ASM procedure which reverses the string source and places the result into BYTE "destination". Pay attention to the difference in string sizes vs. individual character locations.

.DATA

source BYTE "Here I am looking for a letter A",0

destination BYTE SIZEOF source DUP (0)

.CODE

3. Consider the following variables in the .DATA section, then follow the code execution to populate the stack allocation.

.DATA

Var1 WORD 1234h, 5678h

Var2 BYTE 0D4h, 0B3h

.CODE

MOV AX, Var1

PUSH AX

MOV EBX, Var3 + 4

PUSH EBX

MOV CX, WORD PTR [Var3+2]

PUSH CX

PUSH Var3

ADDR

VALUE

0E

 

0D

 

0C

 

0B

 

0A

 

09

 

08

 

07

 

06

 

05

 

04

 

03

 

02

 

01

 

00

 

 

 

Var3 DWORD 0DEADBEEFh, 0F00FDEEDh

4. Assuming that data allocations for this program begin at 0x00401000h what will be the values of AX, ECX and EDI registers at the indicated locations?

.data

intarray WORD 100h,200h,300h,400h

.code

mov edi,OFFSET intarray                                    EDI:_________________________

mov ecx,LENGTHOF intarray                               ECX:_________________________

mov ax,0     

L1:

add ax,[edi]

 add edi,TYPE intarray    

loop L1         

                                                                         EDI:_________________________

                                                                         ECX:_________________________

                                                                         AX:__________________________

5. Convert the following compound expressions to assembly code:

a) if (al >= bl) AND (bl < cl)

     X = 1;

b) if (al >= bl) OR (al > cl)

     X = 1;

6. a) Write code that jumps to label L1 if either bit 1, 5, or 7 is set in the BL register.

Write code that jumps to label L1 if bits 2, 3, and 4 are all set in the BL register.

Write code that jumps to label L3 if EAX is negative.

Write code that jumps to label L4 if the expression (EBX - ECX) is greater than zero.

Request for Solution File

Ask an Expert for Answer!!
Basic Computer Science: Given the byte array source write an asm procedure which
Reference No:- TGS01037122

Expected delivery within 24 Hours