Write an assembly code segment


1. Code Segment Writing.

a) Write an assembly code segment that calls the subroutine New Function  if bits 5 and 6 of PORTD equal 1.

b) Write  the  same  code  segment  in  part  (a)  using  structured assembly constructs.

c) Write  an  assembly  code  segment  to  toggle  bit4  of FORMBYTE, leaving the remaining bits unchanged.

d) Write an assembly code segment to form from the value of the char  variable  TEMPB  a  new  value  of  TEMPB  of  the  form 000øbbbl2  where  bbbb  represents  the  original  four  most significant bits of TEMPB.

e)  Assume  that  WREG  contains  a  number  of  the  form 00000b2b1b0.  Using  a  sequence  of  the  three  instruction-   xorwf, andlw,  xorwf  – ‚  update  the  lower  three  bits  of  PORTB  with  the b2bb0  bits  in  WREG,  while  leaving,  the  upper  fiv e  bits  of PORTB unchanged.

2. LCD Control and Display.

a)  What  is  the  cursor – position  code,  expressed  as  a  hex  number, that  you  would  employ  in  a  display  string  to  center  a  two – character message in the top row of your 8×2 character display?

b) Write a code segment that displays the two character message “Hi” starting  at  the  position  you  identified  in   part  (a).  Assume  that  the character  string  is  residing  in  program  memory  and  that  the  PIC microcontroller is initialized for a 4- bit interface LCD. (Accurate code is not required, rather, identify the required instruction steps.

4.

a) Analyze the following assembly code segment:

MOVLF 60,COUNT
REPEAT_
btg PORTA,RA4
decf COUINT, F
UNTIL _.Z.

b)  Assurning  that  the  internal  clock  rate  of  the  microcontroller  is 2.5MHz. What should the Bignum value for the LoopTime subroutine be to make it count with a scale of 2,500 cyclesto generate precisely a millisecond delay between every rollover of TMROIF?

Request for Solution File

Ask an Expert for Answer!!
Basic Computer Science: Write an assembly code segment
Reference No:- TGS01430174

Expected delivery within 24 Hours