Ajeenkya DY Patil School of
Engineering (Charholi)Via Lohegaon,
Pune-412 105
Department of Computer
Engineering 2023-24[4th
Sem]
Micro-project Report
of Microprocessor
(MIC) On
Assembly Language Program of Conversion of The
String And Reversal Of The Given String
Submitted by:
Roll no. Name of the Student Enrollment no.
05 Diksha Pawar 2216490137
08 Om Bhintade 2216490140
Under the Guidance of
Mrs. Urmila Burde
AJEENKYA DY PATIL SCHOOL OF ENGINEEERING
(CHARHOLI)
Department of Computer
Engineering SEMESTER- 2023-24
CERTIFICATE
This is to certify that Project report entitled Assembly Language Program of 8086 of
Conversion of the String And Finding Reverse of The String is submitted in the partial
fulfillment of requirement for the award of the Diploma in Compute Engineering by
Maharashtra State Board of Technical Education as record of students' own work carried
out by them under the guidance and supervision at Ajeenkya DY Patil School Of
Engineering (Charholi), during the academic year 2023-24.
Roll no. Name of the Student Enrollment no.
05 Diksha Pawar 2216490137
08 Om Bhintade 2216490140
Place: Charholi (Bk)
Date: / /2024.
Mrs. Urmila Burde Mrs. Priyanka Kasar
Guide Head of Computer Department
ACKNOWLEDGEMEMT
It is with profoundly sense of gratitude that we acknowledge from our guide
Mrs. Urmila Burde. She has been guiding in the true sense of word, a guide who
satisfaction from our word & progress.
We are highly obliged to Mrs. Priyanka Kasare Head of Computer
Department for aberrance & good co-operation given to us for bringing this project
to almost standard.
We are grateful to our principal Dr. Nagesh Shelke for proceeding
acknowledgement to using the connection of this project concluding. We
appreciate the assistance of all staff that helps us in for their sincere & obliging
help to make our project successfully.
Micro Project
Proposal Part A
Assembly Language Program Conversion of The String And
Finding Reverse of The string
1. Brief Introduction:
8086 Microprocessor is an enhanced version of 8085 Microprocessor that was designed by
Intel in 1976. It is a 16-bit Microprocessor having 20 address lines and16 data lines that
provides up to 1MB storage. It consists of powerful instruction set, which provides
operations like multiplication and division easily.
o It supports two modes of operation, i.e., Maximum mode and Minimum mode.
Maximum mode is suitable for system having multiple processors and
Minimum mode is suitable for system having a single processor.
o The 8086 microprocessor is a 16-bit, N-channel, HMOS microprocessor. Where
the HMOS is used for "High-speed Metal Oxide Semiconductor".
o Intel 8086 is built on a single semiconductor chip and packaged in a 40-pin IC
package. The type of package is DIP (Dual Inline Package).
o Intel 8086 uses 20 address lines and 16 data- lines. It can directly address up to 220
= 1 Mbyte of memory.
o It consists of a powerful instruction set, which provides operation like division
and multiplication very quickly.
o 8086 is designed to operate in two modes, i.e., Minimum and Maximum mode. tasks.
2. Aim Of the Micro Project:
The aim of a micro project is to delve into the fundamentals of assembly language
programming on thr Intel 8086 microprocessor using GUI Turbo Assembler (TASM)
And Emu8086 Emulator. The project focuses on two algorithms : string conversion
From Lower case to Upper case and reverse of The String
3. Key objectives of the project include:
I. Understanding Assembly Language Concepts: Participants will learn the
basics of assembly language programming, including syntax, data
representation, and control flow structures. They will gain insight into how low-
level instructions map to machine operations, facilitating a deeper
understanding of computer architecture.
II. Lowercase to Uppercase Conversion: Implement an algorithm that iterates
through each character of the string. Identify lowercase characters (ASCII
codes between 97 and 122).Convert lowercase characters to their
uppercase
equivalents by subtracting 32 from the ASCII code. Update the string with the
converted characters. Display the converted string on the screen.
III. String Reversal: Implement an algorithm to reverse the order of characters
in the string. Consider two approaches:
a Loop-Based Approch : Use a loop to iterate from the end of the string to the
beginning, copying characters to a temporary buffer and then back to the
original string.
b Stack-Based Approch: Use a stack to push characters onto the stack, then
pop them back onto the string in reverse order. Display the reversed string
on the screen.
IV. Error Handling and User Feedback : Implement robust error handling and
provide feedback to users. integrate error checks within the assembly code to
handle invalid inputs or unexpected conditions. Ensure that the GUI displays
informative messages to guide users in case of errors.
V. Testing within the Tasm Environment: Verify the functionality of the GUI
and assembly code using TASM's emulator. Conduct thorough testing within
the TASM environment to identify and address any issues with the GUI
components and the associated assembly code, ensuring a smooth user
experience.
VI. Testing and Debugging: Participants will learn to test and debug their
assembly language programs using GUI Turbo Assembler (TASM) tools. They
will practice identifying and fixing errors in their code, gaining proficiency in
troubleshooting techniques and improving the reliability of their programs.
VII. Documentation and Presentation: Participants will document their code,
explaining the logic behind their implementations and any optimizations
applied. They will present their work, discussing their approach, challenges
faced, and lessons learned during the project, fostering communication skills
and knowledge sharing within the group.
4. Action Plan:
Sr.no Details of activity
Planned start Planned end Name of responsible
date date group members
1. Searching for the topic
2. Confirmed the topic we
searched for the micro
project
4. Collecting information
Diksha Pawar
5. Making proposal
Om Bhintade
6. Testing and analysis of
test result
7. Preparation of final
project report
8. Final submission of the
project
5. Resources Required:
Sr. No. Specification
Name of
resources/Material
1.
16GB RAM
HARRDWARE 512GB SSD
GUI Turbo Assembler ,Emu8086
2. SOFTWARE Emulator
3.
DATA Google Chrome
3. Name Of Team Members:
Roll no. Name of the student Enrollment no.
05 Diksha Pawar 2216490137
08 Om Bhintade 2216490140
Mrs. Urmila Burde
(Micro-project Guide)
Program:
The program is designed to Covert the String From Lower Case To Upper Case
.MODEL SMALL
.STACK 200
.DATA
MSG DB 'ENTER A STRING IN SMALL LETTER: ','$'
MSG1 DB 'OUTPUT STRING: ','$'
STRING DB 20, 22 DUP('?')
CRLF DB 0DH,0AH, '$' ; NEW LINE CODE.
.CODE
.STARTUP
LEA DX, MSG
MOV AH, 09H
INT 21H
LEA DX, STRING
MOV AH, 0AH
INT 21H
MOV BX, DX
MOV AH, 0
MOV AL, DS:[BX+1]
ADD BX, AX ; POINT TO END OF STRING.
MOV BYTE PTR [BX+2], '$'
LEA DX, CRLF ;NEW LINE
MOV AH, 09H
INT 21H
LEA BX, STRING
MOV CH, 0
MOV CL, [BX+1]
ADD BX, 2
UPPER_CASE:
AND BYTE PTR [BX], 11011111B
INC BX ; INCREMENT
LOOP UPPER_CASE
LEA DX, MSG1
MOV AH, 09H
INT 21H
LEA DX, STRING+2
MOV AH, 09H
INT 21H
RET
Output 1:
Program:
The program is designed to Reverse The String
ORG 100H
.MODEL SMALL
.STACK 100H
.DATA
STRING DB 'MICROPROCESSOR', '$'
.CODE
MAIN PROC FAR
MOV AX,@DATA
MOV DS,AX
CALL REVERSE
LEA DX,STRING
MOV AH, 09H
INT 21H
MOV AH, 4CH
INT 21H
MAIN ENDP
REVERSE PROC
MOV SI, OFFSET STRING
MOV CX, 0H
LOOP1:
MOV AX, [SI]
CMP AL, '$'
JE LABEL1
PUSH [SI]
INC SI
INC CX
JMP LOOP1
LABEL1:
MOV SI, OFFSET STRING
LOOP2:
JE EXIT
POP DX
XOR DH, DH
MOV [SI], DX
INC SI
DEC CX
JMP LOOP2
EXIT:
MOV [SI],'$ '
RET
REVERSE ENDP
END MAIN
RET
OUTPUT:
Skill Development:
i Low-Level Programming Skills: Working with assembly language enhances
participants' proficiency in low-level programming. They learn to write code
that directly interacts with the hardware, gaining insights into memory
management, register usage, and instruction execution.
ii Problem-Solving Skills: Implementing algorithms like factorial calculation and
Fibonacci series in assembly language requires participants to break down
complex problems into smaller, manageable tasks. This cultivates their problem-
solving skills and ability to devise efficient solutions.
iii Understanding Computer Architecture: By programming for the Intel 8086
microprocessor, participants gain a deeper understanding of computer architecture.
They learn about processor registers, memory organization, instruction sets, and
the execution pipeline, which is valuable knowledge for understanding how
computers work at a fundamental level.
iv Algorithmic Thinking: Developing algorithms in assembly language requires
participants to think algorithmically, considering factors such as time
complexity, space complexity, and optimization techniques. This cultivates their
ability to analyse problems and design efficient algorithms.
v Debugging Proficiency: Debugging assembly language code can be
challenging due to its low-level nature. Participants learn to use tools like
debuggers, simulators, and manual inspection of memory and registers to
identify and fix errors in their code. This enhances their debugging proficiency
and attention to detail.
vi Optimization Techniques: Writing efficient assembly code involves
optimizing for both speed and space. Participants learn optimization techniques
such as loop unrolling, register allocation, and minimizing memory accesses to
improve the performance of their code.
vii Critical Thinking and Analytical Skills: Analysing the performance of assembly
code requires participants to critically evaluate different approaches and make
informed decisions based on their understanding of the underlying hardware. This
enhances their critical thinking and analytical skills.
viii Documentation and Communication: Documenting assembly language
programs requires clear and concise explanations of the code's functionality,
algorithms used, and any optimizations applied. Participants develop skills in
documenting their work effectively, facilitating communication with others and
aiding in knowledge transfer.
ix Attention to Detail: Writing assembly language code demands meticulous
attention to detail, as even small errors can lead to significant issues in
program execution. Participants learn to be thorough in their coding practices,
ensuring correctness and reliability in their programs.
Conclusion:
project focused on string conversion and reverse string operations using the 8086
microprocessor in GUI Turbo Assembler has provided valuable insights into low-level
programming and assembly language. By leveraging the capabilities of the 8086
microprocessor, we were able to develop efficient routines for converting strings and
reversing their order.
The project demonstrated the importance of understanding the intricacies of assembly
language and the architecture of the 8086 microprocessor. Working with GUI Turbo
Assembler added a graphical interface to our project, enhancing the user experience and
making the application more accessible.
Through this microproject, we gained hands-on experience in manipulating strings at the
assembly language level, honed our skills in using GUI Turbo Assembler for visual
representation, and deepened our understanding of the underlying hardware architecture.
This microproject serves as a stepping stone for further exploration and application of
assembly language programming, providing a solid foundation for future endeavour’s in
microprocessor-based development.
In conclusion, the successful implementation of string conversion and reverse string
operations using the 8086 microprocessor in GUI Turbo Assembler reflects the synergy
between hardware-level programming and graphical user interface design. This
microproject not only achieves its intended functionality but also serves as a testament to
the power and versatility of assembly language in microprocessor programming.
Mrs.Urmila Burde
(Guide of Project)