You are on page 1of 2

Name Ubaid Ur Rehman

Reg No FA18-BEE-121-E
LAB #1
This Lab has been designed to familiarize with the Software
EMU8086.
Objectives
To identify the use of 8086-88 CPU Assembly Language Syntax and display program output on EMU8086
Software
Methodology
This Lab consists of software named EMU8086 that deals with the programming of the microprocessor
8086 using Assembly Language. Assembly Language is known as a low-level language that is used to
program microprocessors and other programmable devices. This Lab consisted of a Pre-Lab, a Lab task and
a Post-Lab task. The Pre-Lab consisted of reading the manual. It had information regarding the assembly
language syntax, representation of numbers and characters in assembly language, defining of Variables,
Arrays or Strings and Constants. Different terminology regarding different registers and low and high
spaces were discussed. The EMU8086 as well as the first basic command ‘MOV’ was introduced. The Lab
task was to run the provided code in the emulator and analyze the output. It was also advised to use the
built-in Binary, Octal and Hexadecimal numbers for assistance. The code provided was to be run and
observed on the two output screens. The task also included the familiarization with the RUN, Single Step
and Reload buttons. The code provided in the manual was to be traced step by step in order to observe and
analyze the shifting of data across different registers. The post lab included the familiarization with the
software by experimenting, understanding and practicing.
Conclusion
All Lab Tasks were completed. The Pre-lab was read and understood and then implemented in EMU8086
and importance of manipulation of bytes was understood. Importance of registers were acknowledged.
Basic use of the software EMU8086 was understood. Both the output screens were analyzed, and the code
was observed step by step for further understanding of memory and data.
LAB TASK
MOV AX,4566H
AH=45, AL=66
MOV BX,0ABCDH
BH=AB,AL=CD
MOV AX,BX
AH=AB, AL=CD
MOV SI,BX
SI=ABCD

b)
As it is visible from code, first a hexadecimal number 4566 is stored in general purpose register
“AX”, then, a character is saved in “BX”. Then, value stored in “BX” is transferred to “AX”, as
move command copies and pastes the value or number so “BX” has still its value stored in it
which is also transferred to memory “SI”.

You might also like