What is lst file?- This file is also called as list file.
- It lists the opcodes ,addresses and errors detected by the assembler.
- List file is produced only when indicated by the user.
- It can be accessed by an editor and displayedon monitor screen or printed.
- Progammer uses this file to find the syntax errors and later fix them.
How is a program executed’ bit by bit’ or’ byte by byte’?EXAMPLE:
|1 0000||ORG 0H|
|2 0000||7D25||MOV R5,#25H|
|3 0002||7F34||MOV R7,#34H|
|4 0004||2D||ADD A, R5|
- A program is always executed byte by byte.
- Firstly,1st opcode 7D is fetched from location 0000 and then the value 25 is fetched from 0001 .
- 25 is then placed in the register R5 and program counter is incremented to point 0002.
- On execution of opcode 7F, value 34 is copied to register R7.
- Then addition of contents of R5 and accumulater takes place.
- Here all the opcodes are 8 bit forming a byte.
Explain DB.- DB is called as define byte used as a directive in the assembler.
- It is used to define the 8 bit data in binary ,hexadecimal or decimal formats.
- It is the only directive that can be used to define ASCII strings larger than two characters.
- DB is also used to allocate memory in byte sized chunks.
- The assembler always converts the numbers lnto hexadecimal.
What is EQU?- EQU is the equate assmbler directive used to define a constant without occupying a memory location.
- It associates a constant value with data label .
- Whenever the label appears in the program ,constant value is subsituted for label.
- Advantage: The constant value occuring at various positions in a program can be changed at once using this directive.
- Syntax: label EQU constant value
How are labels named in assembly language?- Label name should be unique and must contain alphabetic letters in both uppercase and lowercase.
- 1st letter should always be an alphabetic letter.
- It can also use digits and special characters ?,.,@,_,$.
- Label should not be one of the reserved words in assembly language.
- These labels make the program much easier to read and maintain.
Are all the bits of flag register used in 8051?- The flag register also called as the program status word uses only 6 bits.
- The two unused bits are user defineable flags.
- Carry, auxillary carry, parity and overflow flags are the conditional flags used in it.
- PSW.1 is a user definable bit and PSW.5 can be used as general purpose bit.
- Rest all flags indicate some or the other condition of an arithmetic operation.
Which bit of the flag register is set when output overflows to the sign bit?- The 2nd bit of the flag register is set when output flows to the sign bit.
- This flag is also called as the overflow flag.
- Here the output of the signed number operation is too large to be accomodated in 7 bits.
- For signed numbers the MSB is used to indicate the whether the number is positive or negative.
- It is only used to detect errors in signed number operations.
Which register bank is used if we use the following instructions.- Statement A sets 3rd bit of flag register.
SETB PSW.3 A
SETB PSW.4 B
- Statement B sets 4th bit of flag register.
- Therefore register bank 3 is initiated .
- It uses memory location 18H to 1FH.
- The register bank is also called as R3.
Issues related to stack and bank 1.- Bank 1 uses the same RAM space as the stack.
- Stack pointer is incremented or decremented according to the push or pop instruction.
- If the stack pointer is decremented it uses locations 7,6,5… which belongs to register bank 0.
- If a given program uses R1 then stack is provided new memory location.
- The push instruction may also take stack to location 0 i.e.it will run out of space.
Explain JNC.- It is a command used to jump if no carry occurs after an arithematic operation.
- It is called as jump if no carry( conditional jump instruction).
- Here the carry flag bit in PSW register is used to make decision.
- The processor looks at the carry flag to see if it is raised or not.
- If carry flag is 0 ,CPU fetches instructions from the address of the label.
Can port 0 be used as input output port?- Yes, port 0 can be used as input output port.
- Port 0 is an open drain unlike ports 2,3,4.
- To use it as input or output the 10k ohm pull-up resisters are connected to it externally.
- To make port 0 as input port it must be programmed by writing 1 to all bits.
Which 2 ports combine to form the 16 bit address for external memory access?- Port0 and port2 together form the 16 bit address for external memory.
- Port0 uses pins 32 to 39 of 8051 to give the lower address bits(AD0-AD7)
- Port2 uses pins 21 to 28 of 8051 to give the higher address bits(A8-A15)
- This 16 bit address is used to access external memory if attached.
- When connected to external memory they cannot be used as input output ports.
Can single bit of a port be accessed in 8051?- Yes, 8051 has the capability of accessing only single bit of a port.
- Here only single bit is accessed and rest are unaltered.
Syntax: “SETB X. Y”.
- Here X is the port number and y is the desired bit.
Example: SETB P1.2
Here the second bit of port 1 is set to 1.
Other than SETB ,CLR are there any single bit instructions?- There are total 6 single-bit instructions.
- CPL bit : complement the bit (bit= NOT bit).
- JB bit,target: Jump to target if bit equal to 1.
- JNB bit,target: Jump to target if bit is equal to 0.
- JCB bit,target: Jump to target if bit is equal to 1 and then clear bit.